Nesting is the process of placing patterns on a piece of material to give the best use of the material and the minimum waste. Nesting is used on everything from cutting pieces out of a sheet of steel to making clothes from a roll of fabric. We're looking for a developer to write us a great objective-C class or routine for nesting.
In some cases, the patterns are simple rectangles which is quite easy but in other cases the patterns may be triangular or irregular. Where patterns are U or C shaped, smaller patterns can be fitted into the open area.
Patterns need to be placed on the material with a small gap between each piece to allow for cutting. It may be possible to rotate patterns or they may have to remain fixed in rotation.
The patterns will be held in an dictionary array of objects composed of NSBezier paths. The material width and nesting gap is passed along with the array. Your routine will optimise the placing of these patterns onto a piece of material of a given width width to minimise the length of material used and minimise the waste and pass back a transformed array or the origin coordinates and rotation angle of the patterns. Although the patterns may contain internal information, the outside polygon is all that the nesting routine is required to work with.
Patterns are not allowed to overlap and the gap between the patterns will have to not be not closer than the specified gap. Where permitted, your routine may rotat patterns. Where the material has a grain (like timber or woven fabric) rotation may be only possible by 90º, 180º or by a set angle.
In some cases, patterns may have to be fitted into set lengths of fabric and use the minimum number of lengths. At some later stage, the routine may be altered to nest patterns into a irregular outline instead of a rectangle of unlimited length.
The routine may take some time to run and the best routines will no only be fast but they will result in a good efficiency… minimum material used and minimum waste.
You'll need a good head for maths and an understanding of polygon geometry and you'll need to be familiar with working in cocoa/Objective-C.