OpenNest - Rhino Freeze

Open nest causes Rhino to freeze for like 5-6 minutes on this script. There are only 30 pieces to assemble which are not much.

I have the following specs of my laptop.

Intel core i7 - 8750H @2.20 Ghz processor
250GB SSD (NVMe) on which Windows, Rhino and all other software are installed.

Is this normal or am I doing something wrong?

waffle, nest (66.1 KB)

Create a 2d convex hull from polyline points.

It freezes because for every polyline OpenNest draws previously nested polyline. Which in essence is a problem of n factorial which is optimized by internal genetic solver. So the number of point per each polyline increase computation time not linearly.

I think I answered such question before in other posts. If you have issues with making a realively low poly outline from your shapes let me know.

These are a few images from the other case I helped with, that looks similar to yours:


I’m really sorry. I don’t understand what is a convex hull. It has been a very frequently used term here on forums but I never understood its meaning. I tried to read the basic here.

But the words used in the definition are more complicated than the definition itself. :no_mouth:

What are the two components you have used in the first screenshot?

In the second screenshot, in the beginning there are three sets of curves.

The top one is the sheet rectangle which I can figure out. What are the two lower sets of curves? A script file will be useful as I have zero clue what exactly is going on.

Yes I don’t know how to create low poly outline. Please share the method. Correct me if I am wrong. I am making a guess here.

Low poly outlines just have lesser number of points. A straight line requires only two points. That’s a low poly line. If I place more points on it, then it becomes high poly outline.

Control Points → fit plane → Convex hull → orient from fit plane to default xy plane

The second curve is used to reorient after opennest transformation
The third one is for text and other tags i.e. engraving

Upload your geometry I ll try to make a definition for your case.

1 Like

Please assign your new messages to the appropriate category so the right people are more likely to see it.


1 Like

Dear @John_Brock ,
Would it be possible to add to OpenNest category?

1 Like

The waffles are there in the original post. Here is the script with the original geometry which is to be waffled. I am only learning the process. This is not any project. So I just made any blobby kind of geometry to try waffling and testing open nest.

The waffling process requires Bowerbird plugin to run.


You can see that the difference between approximation a high res stuff is quite close: (90.4 KB)

For sure this would work mostly for convex cases, which is fine in your case.
Else you can just divide the outline of the curve into polyline with fixed number of points.

1 Like

Done. I did not know there was a specific category for it.

1 Like

Thank you :wink:

1 Like

Thanks a ton. It works so smooth!.

How did you manage to place text of tags so nicely without letting them enter in the area of the grooves? In my script, text overlaps the grooves.

Probably there are better ways but one way I know is:

  1. Compute Minimal BoundingBox using PCA component, that gives you orientation of text by plane.

  2. Then You need to get somehow proper position, in my case I trianguled polyline and took the largest mesh face (NGon component Mesh From Polylines (Right click minTriangulation)): (77.9 KB)

For triangulation I use NGon:

It convert closed polylines to mesh faces:


Amazing! Finding the largest triangle in a series of network to tell Grasshopper about the emptiest spot! Thanks a lot!

Although after fabrication it won’t matter, why are some name tags mirrored in your script? I thought it had to do with the location of the base geometry with relation to the x and y axis but even when I move the main blob geometry, the mirrored tags are still there.

Rebuild the text plane from Origin, XAxis, YAxis, to Origin, XAxis, Vecto3(0,0,1)
Will do the job.

1 Like

How to do that? Can’t find rebuild plane component.

I just think Petras propose you to use Construct Plane or more simple Plane Normal. The last is more simple as you just have to put a position and a direction Unit Z

1 Like

Yup, just deconstruct and construct plane, I think you might still need to keep X-Axis:

1 Like

Okay I see. Before seeing your post, I just fiddled with the script. I wonder why is the PCA component required?

It actually messes with the orientation. I directly connected the centroids of the triangles in the location for text and it comes out fine without getting mirrored.

On the other hand, this happens when using PCA.

Why does the text gets flipped ?

In your case PCA is not needed because your text is short.
If you have longer text and small elements this would become an issue.

If you are not using pca that is also fine :wink:

1 Like