OpenNest - 2D Polyline Packing for fabrication such as laser or CNC cutting.
OpenNest is Free. Free as "Free speech", not as "Free coffee". OpenNest can be supported: link. Developing and maintaining software takes time and resources (no magic here). If you can't, at least send an email and say thanks ;-)
Use Rhino 7 and Package Manager (Windows and Mac) or press first link below.
Download the second (Windows) or third (mac) zipped files and place them in libraries folder You can open this folder when you open Grasshopper->File->Special Folder->Component Folder
Windows Users: Please unblock the files if necessary and turn off Coff Settings.
Mac Users: OpenNest employs C++ library .dylib and you need to validate this file before use if you get security error. Follow this instruction: link
Post all questions on McNeel forum under OpenNest category or write me an email with attached files.
The library is based on Boost 1.62 that is used to compute NFP - No Fit Polygon. The plug-in is located in Grasshopper: Params tab -> Nest Categary. I recommend to decrease tolerance to 0.01 in the main nesting component to achieve precise nesting output even it takes longer to compute. Also it is faster to nest low resolution polylines, and then apply transformation "T" output to moved detailed objects such as curves to nested shapes.
Implementation: translation from C++ to C# of a centroid for a closed polyline with or without holes: mapbox/polylabel: A fast algorithm for finding the pole of inaccessibility of a polygon (github.com).