True-shape nesting
The 2D, 1D and Wood modes cut rectangles with a guillotine (edge-to-edge) saw. Many jobs are not rectangles: a steel bracket, a triangular gusset, a plastic gasket, a plywood profile with a cut-out. Packing those by their bounding box throws away the empty air inside each shape. Nesting mode packs parts by their real outline — arbitrary polygons interlock into each other’s concave pockets — so that air is reclaimed. It is the mode for laser, plasma and waterjet cutting.
It runs a different engine from the rectangular modes (a geometric collision engine, not the guillotine packer), so the 2D/1D/Wood plans are unchanged.
The honest metric for nesting is sheet count on the same parts, not a fill percentage. A rectangular packer counts each part’s bounding box as solid and reads a higher density for a worse result — on a representative 272-part job the true-shape nest used 6 sheets where the same parts by bounding box need 9.
Getting started
In 2D mode, switch to the Nesting sub-tab (next to Panel). Nesting is a sub-mode of 2D — the top bar has two tabs, 2D and 1D, and each reveals its own sub-tabs (2D → Panel / Nesting, 1D → Linear / Wood).
- 1
Add your parts
Click Import SVG/DXF and pick your outline files, or click Demo to load a sample job. Each imported outline becomes a part; a file with several outlines adds several parts, and concentric outlines become holes. You don't need a CAD file for simple shapes — add a rectangle, circle, ellipse, triangle, regular polygon, L-shape, or a fully custom polygon (enter its x,y points), or paste a list of rectangles from Excel / import a CSV (name, width, height, qty), just like the 2D panel-cutting table. On each stock sheet you can add one or more exclusion zones (a region kept clear of parts — a defect, knot or clamp footprint) with an editable X/Y/W/H.
- 2
Add stock sheets
Add one or more sheet sizes (name, width × height × quantity) — type them or paste from Excel. With several sizes the nest compares them and may mix them, for example a smaller last sheet. On any sheet you can add an Exclusion zone — a region the engine keeps every part off, for a defect, a knot or a clamp area.
- 3
Set the options
Give each part a rotation rule (Free, 90°, or None) and, if needed, a minimum separation for the kerf or beam width and an Edge clearance for the distance to the sheet edge (leave it empty to keep the separation there too). Then press Run.
- 4
Read and export the nest
The results read like the 2D panel-cutting results: a yield/density summary, a 'how it was optimized' box, one diagram per sheet, a placement list and a material-requirements table. Use Downloads for SVG, DXF, PDF, Excel or CSV. On Pro or Workshop, you can Save the nest as a project like any other cut.
Parts are polygons, not rectangles
A nesting part is an outline: a closed polygon of [x, y] points, optionally with interior holes. That is why parts have no width/height fields — the shape is the part. The importer builds these outlines for you:
| Feature | Type | Description |
|---|---|---|
| DXF | file | LWPOLYLINE and POLYLINE outlines (arcs from bulges), plus LINE / ARC / CIRCLE / ELLIPSE segments chained into closed loops. A drawing that declares its unit ($INSUNITS — inches or mm) is converted to your working unit, and the message after the import says so; a drawing without a unit is read in your working unit. |
| SVG | file | path (with béziers and elliptical arcs flattened), polygon, polyline, rect, circle and ellipse. Concentric outlines become holes. |
| Demo | button | Loads a sample job — four brackets and four gussets on one sheet with a corner exclusion zone — so you can see the whole flow without a file. |
Curves (arcs, béziers) are flattened to line segments at a fixed tolerance, so the same file always imports to the same part — a nest of imported outlines is reproducible. An SVG whose root <svg> gives its width and height in a physical unit (mm, cm, in, pt, pc or Q) is converted to your working unit through its viewBox (without a viewBox, one SVG unit is 1/96 in), and the message after the import says so — a 100 × 50 mm part drawn on an A4 page comes in as 100 × 50 mm; an SVG without a physical size (unitless or px width and height, or none) is read in your working unit. transform attributes on shapes and on their enclosing groups (matrix, translate, scale, rotate, skewX, skewY) are applied, so parts come in where and as large as they are drawn; shapes inside <defs>, <symbol>, <clipPath>, <mask>, <pattern> or <marker>, or hidden with display:none, are not imported, and <use> clones are not expanded (a warning says so). An import warning is shown in the message after the import even when parts were imported.
Rectangular plates get an exact grid. Besides packing the outlines, the nest also tries the parts at right angles and packs their bounding rectangles with an exact rectangle packer, then keeps whichever plan uses fewer sheets (and, on a tie, fills the sheets front to back). So plates that tile a sheet exactly — three 500 mm parts across a 1500 mm sheet with zero spacing — come back as a clean grid instead of slightly turned parts on an extra sheet.
Exclusion zones
A real sheet is not always perfect. On any stock row, Exclusion zone marks a region the engine treats as a no-go area — every part is kept clear of it. Use it for a board defect, a knot, a clamp footprint, or a pre-printed area. The zones are drawn on the layout so you can see what the nest worked around. This is a capability the rectangular modes have no way to express.
The result
The viewer shows each sheet with every placed part in its own colour, and the summary reports:
- Sheets — how many stock sheets the nest used.
- Density — the placed polygon area over the used sheet area. This is the honest fill; the concave pockets inside irregular parts count as empty.
- Placed — how many part copies were placed out of the total requested. Anything that did not fit is listed.
- Cut length — the summed perimeter of every placed part’s outline and holes (in metres, or feet in inch mode), with the number of pierces — one per closed contour. Each sheet’s header shows its own cut length. It is the geometric contour: common-line cutting, lead-ins and micro-joints are left to your machine’s CAM.
- Used area — each sheet’s header shows the width × height from the sheet corner that its placed parts reach: the bounding box a partial-sheet quote charges. The nest compacts its least-filled sheet toward that corner: it re-packs the same parts, also with fewer rotations than you allowed (never more), and keeps the tightest layout. Sheet count and placed parts do not change.
- Material requirements — one row per stock size used: how many sheets, their fill, their total used area and, when the row has a price, their price. With several sizes the nest may use more than one — for example two large sheets and a smaller last one.
Do not read density as a 2D-panel yield. They are not comparable — a bounding-box packer counts the notch-air inside a shape as used, so its “yield” reads higher for a worse layout. To compare two nesting results, compare sheet count on the same parts.
Exports
Nesting mode exports the achieved layout in the formats a workshop and a CAM tool need. All are under Downloads:
- SVG — a self-contained drawing of the nest (one titled band per sheet, parts as filled polygons, exclusion zones hatched).
- DXF — an R12 drawing with the outlines on STOCK / PARTS / HOLES / ZONES layers, ready for a laser/plasma/waterjet CAM tool.
- PDF — a printable report: the layout drawn to scale per sheet, plus a placement list (part, sheet, x, y, rotation, material).
- Excel — a workbook with an Overview sheet (sheets, density, placed, separation, edge clearance, cut length, pierces and the used area — in total and per sheet) and a Placement sheet.
The layout is deterministic: the same parts and sheets always produce the same nest, so a quote or a cut program built from a nest can be reproduced exactly for a repeat order.
For developers
The same true-shape engine is available over HTTP on the Engine API at POST /v1/optimize/nest, so an ERP, a CAD/CAM tool or a quoting system can nest without a browser. See the Engine API reference for the request and response shape.
Plans and the nesting allowance
Nesting is the one mode that is solved on our servers, so it has its own allowance. On Free, a nesting run is one of your monthly optimizations. Pro includes 10 nesting runs a month — the counter sits under the nesting options; past that, a run uses one pay-as-you-go credit if you have any. Workshop has unlimited nesting. The sample-data preview never counts.
One nesting run takes up to 2,000 parts (quantities counted); the rectangular modes have no such limit.