New Nesting Plug-in focusing on waste minimization (using filler parts)

Dear Rhino community,

we are working on a new nesting plugin for Rhino and would highly appreciate your help to test and improve it. We extended the regular nesting approach by so-called filler part nesting . Through filling up remaining space with filler parts you can reduce scrap by 50% (further explanations).

Download & Installation (compatible with Rhino 6.22 and later):

  • Open link rhino://package/search?name=normcut (for installation without package manager check out the manual below)
  • Rhino opens and shows the plug-in (you have to check “include pre-releases”)
  • Click install & restart Rhino

You can find detailed installation instructions (including installation on Rhino 6) here .

Usage:

  • Run NormcutNest command
  • Select the part geometries you want to nest, enter
  • Select the sheet curve you want to nest the parts into, enter
  • Configure nesting parameters like minimum distances, when ready press „Start nesting“ button (detailed explanation of settings)
  • Nesting will be created within the selected sheet
  • (after running the command a couple of times you will be prompted to create a (free) account, takes only one minute and is necessary for our system to work properly, see Background)

Here you can find detailed usage instructions including a walkthrough video.

Something went wrong?

This is an early alpha version so chances are something does not work as expected. In order to improve the plug-in we are looking for your help: If there’s a bug please reply in this thread including a short description, a screenshot, any related output of the command window and your opened 3DM file.

A WIP FAQ can be found here.

For Background or why we do this check here.

Questions we would very much appreciate to get your Feedback on are here.

Thank you very much and enjoy Nesting!

Best,

Normcut

13 Likes

Dear Lukas,
Thanks for uploading your plugin to the package manager. I’ve been testing it today and I found it very interesting and easy to use. The information is very clear.
Here are some comments on what I have been able to try out:

  • Bugs: See attached file
    1. Some parts are grouped after nesting with CopyParts: On
    2. Groups are not working as I would expect, for example, it is not possible to group a part and some letters
  • Cutting tool settings
    1. Configure different options by default or save them if I create a new one
    2. What are the differences between the options and how does the size of the tool affect nesting?
  • Options:
    1. Fill the sheet repeating the same parts instead of filler parts
    2. Enable/Disable filler parts (showing the list on Rhino)
    3. Allow changing active filler parts settings (name, count, material, etc.)
      Normcut testing.3dm (983.2 KB)

Hey Guillermo,

thank you so much for taking the time for testing and providing valuable feedback! We will look into the bugs you’ve found and provide a new build fixing the grouping behavior ASAP.

Regarding your other remarks I’ve got a few further questions for clarification:

Configure different options by default or save them if I create a new one

I’m understanding you would like to be able to set default values for the settings shown in the nesting settings dialog, is that correct?

What are the differences between the options and how does the size of the tool affect nesting?

The tool size setting will help us in the future to pick proper defaults for nesting constraints (like safety and minimum distances that depend on the tool you use for cutting). At the moment it does not affect the nesting. Here we’ve added detailed explanation of all settings.

  • Options:
    1. Fill the sheet repeating the same parts instead of filler parts
    2. Enable/Disable filler parts (showing the list on Rhino)
    3. Allow changing active filler parts settings (name, count, material, etc.)

I understand these would be options you would like to see as part of the plugin? (1) is possible by simply copying your parts. The plugin is considering every selected curve as a possible part input (after doing some merging logic to detect which curves belong to a single part). For us, simply copying the parts as often as you like to nest them seemed like the most intuitive approach but how would another workflow look like, do you have any other suggestions?

I’m not completely sure what list you are referring to in (2), is it about the parts list you can export? Would you like the option to see them in Rhino?

Editing active filler parts (3) is on the roadmap for the demand portal (demand.normcut.com) and will be implemented, until then the easiest way to change them is to delete and recreate.

Best,
Lukas

Hi Lukas,

  • About the cutting tools:
    I didn’t understand how it works, but if for now it doesn’t affect the nesting, it’s not a problem.
    I mean I can change the default settings and write a new name and size, for example “Laser” and “0.5”, I would like to have these settings available the next time I run the nesting without having to configure them again.

  • About the options:

  1. I agree that it is possible to do this by simply copying the parts, but I would like to have the option to fill the sheet with the same parts designed in Rhino automatically instead of the loaded fill parts.
  2. I am referring to the list of active filler parts that I have uploaded to demand.normcut.com, so that I can have many options uploaded and select only the ones I want to use in a particular nesting.

Hey @Guillermo_Varela,

Having a look at your file we were wondering which were the parts you want to cut out. You drew a large rectangle containing curves forming two letters, did you want to

  • A cut the rectangle as one part having two letter shaped cutouts (or engravings) or
  • B nest two letter shaped parts?

In the first case we could reproduce a bug where the plugin detected the inner cutouts as separate parts, if you had option B in mind it did work for us (you mustn’t select the outer rectangle when selecting the parts though).

Regarding your request to

have the option to fill the sheet with the same parts designed in Rhino automatically instead of the loaded fill parts.

we have two ways to understand this:

  1. You want to select one part and have it nested in the sheet as many times as possible?
  2. You want to select a set of parts you need to cut for a specific project/job and want the leftover space filled up with some or all the parts of this set?

Did you mean one of these two options or are we not getting it? :slight_smile:

Once again, thanks for your time and effort!

Hi @Lukas_Fritzsche ,

I would like to like option A, cut the rectangle and have the annotations on it to engrave or cut depending on its layer/colour. Perhaps the rectangle is not clear, so I made this example part:


So I would have the black line for the outer cut, the red layer for the inner cut, and the blue layer for recording the annotations. That means I would like to make a group with this part and nest it with all its annotations.

On the other request, your questions made me realise that it would have too many options and would be difficult to handle and I’m not sure it would be useful.

Thank you!

Hey @Guillermo_Varela,

we’ve just uploaded a new build (version 0.1.3) to the package manager addressing a couple of your requests:

  • parts using groups: Using groups as part input should now work as you requested (details), all curves which are part of a certain group will be placed now.
  • save nesting settings: settings will be saved and filled in automatically on next nesting run

I hope these changes improve the usability for you – let me know what you think!

Great, thank you! I’ve tried it and it works as expected. Congratulations!
I’ll let you know if I have any more feedback after I test it further.
Regards,

1 Like

Hi Lukas,
THANK YOU for making this happen. It’s working for me for the most part. But recently I keep getting this error:

  1. System.IndexOutOfRangeException: Index was outside the bounds of the array.
    at (wrapper stelemref) System.Object.virt_stelemref_complex(intptr,object)
    at OpenNest.OpenNestFullComponentCleanUp.GooToOutlines (System.Collections.Generic.List`1[T] geo_) [0x001ee] in <9c5ebc4b8d96445da2b7ecaa9c939d48>:0
    at OpenNest.OpenNestFullComponentCleanUp.SolveInstance (Grasshopper.Kernel.IGH_DataAccess DA) [0x001d4] in <9c5ebc4b8d96445da2b7ecaa9c939d48>:0

What did I do wrong?