An algorithm based off 2D bin packing for both regular and irregular shapes. See [login to view URL] for example and possibly reference Google OR-Tools [login to view URL]
We are working with CAD files and will be working with full area (regular rectangles) for quick data and the true shape (irregular shapes) for more complicated algorithm placement. Bin packing becomes complicated when using irregular shapes, and that's what all the nesting software does is apply algorithms and CPU for problem solving and building the "best nest" possible. Our key requirements are:
1) Identifying a container rectangle and getting back the number of containers needed, per container efficiency/usage
- a simple fast approach to get rough calculations, ie pass in a bunch of small rectangles and use a rectangle container
- should be able to pass in 1-N containers of variable sizes
- here it's about speed, rough guess, and we want to know how many containers would be required and each one's utilization/wastage and efficiency
2) Supplying various containers (and their sizes) and "nesting" irregular shapes
- more complicated
- want it to be agnostic
- language is irrelevant as long as we can bridge into C# and run without our application
- eventually need a UI visualization of the result
- report of information of what happened, number of containers needed, which shapes went where
We are looking to use CadLib library in order to read in DXF files, output to image formats, get detailed information about the parts, and provide a GUI editor for the user to "correct" the part if necessary or break apart a DXF of multiple parts to separate dxf files manually. This solution doesn't need to be DXF dependent and can be agnostic. Using CadLib library we can pass in shape information and/or basic rectangle information like width/length. Containers in our case will always be some rectangle size. But this algorithm and job should be more focused on doing the math of the regular/irregular shapes 2D bin packing / nesting. Afterwards we can layer more complicated UI's/configuration on top but the most important thing is the business logic, since all CAD files just become lines/arcs/shapes anyway.
This should be a pure business layer implementation with a good interface for setting up the code, passing in information, choosing different optimizations, and producing an end result with the appropriate meta data we need.
Open to work hourly, fixed, need the right professionals to work on this. We are open to working with things that are already available as well regardless of platform, existing algorithms & software, but must integrate with our C# .NET solution somehow.