About This File
The heart of this Marionette example is the RectPack node. A node with over 2600 lines of code!
It supports dozens of packing algorithm to pack rectangles on another rectangular area in a space and time-saving way.
The right combination of packing and bin algo gives the ability to pack rectangles in a way you want to have them on your machines (as close as possible, always cut complete board, less cuts etc.)
Actually not even myself know, which packing algo ist right for which use case.
Also for professional use case, usually there is a machine dedicated software, which packs the port in a way which match best for the machine.
So I see the main use case to pack parts on a board for milling them on a cnc-machine as example for model-making. Workflows which uses a guillotine-workflow (always cut the whole board) often have special requirements which maybe could be reached with the choice of packing algorithm or maybe can not.
The Marionette Example based on foundational work:
http://www.secnot.com/ Python code for packing algorithm
Jukka Jylang - A Thousand Ways to Pack the Bin - A Practical Approach to Two-Dimensional Rectangle Bin Packing (2010)
Huang, E. Korf - Optimal Rectangle Packing: An Absolute Placement Approach (2013)
- Input of basic data like length and width
- Input of additional data
- object input (node detects if part input are objects and process them like rectangles)
- sort by material
- use a list of stock materials
Not all input combinations works at the moment. Recommended to use the existing examples to get correct input values.
What's New in Version 1.0.0 See changelog
Network Update for Input by Layer Example
1. Support for mixed layer plane and screen plane objects
2. Support for groups
Some limitations are related to the default move and rotate nodes. They not yet can separate every object type to be moved by vs.HMove or vs.Move3DObj. So i us just a custom move and rotate node (HMove and HRotate which do not work for 3D) the following limitations exist:
1. No Support for 3D Objects
2. No Support for pure 3D Symbols
3. No Support for Screen planed Symbols