2D Panel Cutting
2D Panel Cutting is CutOptim’s primary mode. It solves the classic rectangle bin-packing problem: given a set of large rectangular sheets and a set of smaller rectangular pieces, find the arrangement that uses the fewest sheets with the least waste.
This mode is used for sheet materials including plywood, MDF, particleboard, melamine, glass, aluminium composite panel, steel sheet, foam board, and any other material that comes in flat rectangular stock.
How 2D Optimization Works
CutOptim models your cutting job as a bin-packing problem:
- Bins are your stock sheets — large rectangles you are cutting from
- Items are your demand pieces — smaller rectangles you need to produce
The algorithm places items into bins one at a time, choosing the position that minimizes wasted space. It can try two strategies:
- Guillotine mode — Every cut goes edge to edge across the sheet. This mirrors how a panel saw or table saw works. It is slightly less space-efficient but produces cut sequences that are practical for manual and semi-automatic cutting.
- Nested mode — Items can be placed in any available free rectangle. This gives better yield and is the correct mode for CNC routing, but the resulting cuts cannot always be replicated on a table saw.
CutOptim also respects kerf width — the material lost as sawdust in every cut. A 3 mm kerf on a 100-piece job can add up to losing an entire sheet. Always enter your kerf accurately. See Settings & Kerf.
Adding Stock Sheets
Stock sheets represent the raw material you have available to cut from. Each stock row defines one size and quantity of sheet.
| Feature | Type | Description |
|---|---|---|
| Width | number | Sheet width in the active unit (mm or cm). This is the horizontal dimension on the canvas. |
| Height | number | Sheet height in the active unit. This is the vertical dimension on the canvas. |
| Quantity | integer | Number of sheets of this size available. The optimizer will use as many as needed, up to this limit. |
| Price | number | Cost per sheet. Used to calculate total material cost in the results summary and quotation export. Leave blank if pricing is not needed. |
| Label | text | Optional name for this stock size, e.g. '2400×1200 Structural Ply'. Appears in the PDF legend. |
Best practices for stock sheets:
- Enter the actual usable dimensions of your sheet, not the nominal size. A sheet sold as 2440×1220 mm may actually be 2438×1218 mm after factory edge trimming — measure your sheets.
- If you have a mix of full sheets and partial offcuts from a previous job, add them as separate stock rows with their actual dimensions and a quantity of 1.
- Use the price field even for internal jobs. Seeing the cost breakdown helps identify whether a job is priced correctly.
Adding Demand Pieces
Demand pieces are the rectangular pieces you need the optimization to produce from your stock.
| Feature | Type | Description |
|---|---|---|
| Width | number | Required piece width in the active unit. |
| Height | number | Required piece height in the active unit. |
| Quantity | integer | Number of identical pieces required. |
| Label | text | Descriptive name for this piece, e.g. 'Door Panel LH' or 'Shelf 600'. Printed on the cut diagram and in the CSV export. |
| Lock Rotation | boolean | When enabled, the piece cannot be rotated 90°. Use this when grain direction, print orientation, or material face must be preserved. |
Tips for entering demand pieces:
- Always enter a label for each piece. On a complex job with 50+ pieces, unlabelled rectangles on the cut diagram are impossible to identify.
- If you have many identical pieces, enter them once with the correct quantity rather than as separate rows.
- To add trim allowance (for pieces that need to be cut slightly oversize then trimmed to final size), add the trim amount to the width and height. For example, if you need a finished 400×800 mm piece with 5 mm trim on each face, enter 410×810.
CSV Import for Demand Pieces
If your cut list already exists in a spreadsheet, you can import it directly:
- Click the Import CSV button above the Demand table
- Your CSV must have columns:
label,width,height,qty(in that order, or with matching headers) - Preview the import and confirm
Export a blank template CSV from the import dialog to get the correct column format.
Cut Types: Guillotine vs Nested
The cut type is set in Settings and affects the entire optimization.
Guillotine Cutting
In guillotine mode, every cut is a straight line that runs from one edge of the (remaining) sheet to the opposite edge. This mirrors the physical operation of a panel saw, table saw, or beam saw.
Use guillotine when:
- You are cutting on a table saw, panel saw, or track saw
- You need to hand the cut sequence to an operator with a straightforward cut list
- Your material needs to be flipped or moved between cuts
Typical yield: 85–93% for typical cabinet or joinery piece sets.
Nested Cutting
In nested mode, pieces can be placed in any rectangular free space on the sheet, not just aligned to guillotine cut lines. This allows more pieces to be packed per sheet.
Use nested when:
- You are cutting on a CNC router or automated nesting machine
- You are generating DXF or SVG output to drive a cutting machine
- Maximum material utilization is the priority
Typical yield: 88–97% for the same piece sets.
Nested cut layouts cannot generally be reproduced on a manual table saw. If operators will be cutting by hand, always use Guillotine mode.
Running the Optimization
Once stock and demand are entered, click Run Optimization or press Ctrl+Enter. The optimization typically completes in under 2 seconds for jobs with fewer than 500 pieces. For larger jobs, a progress bar appears.
Validation checks before running:
- Every demand piece must fit within at least one stock sheet dimension (accounting for kerf)
- Quantity fields must be positive integers
- At least one stock sheet and one demand piece must be present
If any check fails, the Run button shows a yellow warning icon. Hover over it to see the specific issue.
Reading Your Results
After a successful run, the canvas shows the layout and the results panel updates:
Sheet Navigator
Use the arrow buttons or sheet tabs at the bottom of the canvas to step through each sheet used. Each sheet shows:
- Colored rectangles for each placed piece with label and dimensions
- Hatched grey areas for offcuts (pieces larger than minimum offcut size)
- Solid grey areas for waste (pieces smaller than minimum offcut size)
Yield and Waste
| Metric | Formula | Target |
|---|---|---|
| Yield % | (Total demand area) / (Total used sheet area) × 100 | > 88% |
| Waste % | (Unusable scrap area) / (Total used sheet area) × 100 | < 10% |
| Offcut % | (Saved offcut area) / (Total used sheet area) × 100 | Variable |
Improving a Low-Yield Result
If yield is below 80%, try these approaches in order:
- Check kerf width — An incorrect (too large) kerf wastes space on every cut
- Allow rotation — Make sure Lock Rotation is not enabled on pieces where grain does not matter
- Switch cut type — Change from Guillotine to Nested for better packing
- Batch more pieces — Add remaining pieces from future jobs to fill the sheets now
- Add smaller stock — If you have offcuts from previous jobs, add them to the stock table
Stock Priority (★)
Each row in the Stock table has a star (★) icon on the left. Starring a stock row tells the optimizer to use that sheet first — before drawing from unstarred stock.
When to use it:
- You have a partial sheet left over from a previous job and want to use it up before opening new stock
- You have expensive or hard-to-source sheets that you want to prioritize
- You want to clear old stock before it warps or deteriorates
How to use:
- Click the ★ icon on any stock row — it turns yellow/gold
- Run the optimization — the starred sheet is used first
- Click again to remove the priority
Star all your offcut stock rows before running a job. CutOptim will consume the offcuts first, only opening new full sheets when the offcuts are exhausted. This is the most effective way to keep your offcut inventory manageable.
Edge Banding Pro
Edge banding information can be recorded per piece in the EB column of the Demand table. This marks which sides of a finished panel require edge banding, and the information appears on the cutting plan and in PDF exports.
Edge banding is a metadata/reference feature — it does not affect the optimization algorithm. It simply records which sides need banding so the information is printed on the cut sheet and labels alongside the piece.
Marking edge banding:
- Click the button in the EB column of any demand piece row
- An edge banding dialog opens with four sides: Top, Right, Bottom, Left
- Check each side that requires edge banding
- A visual preview shows the selected sides as a yellow stripe around the piece outline
- Click OK — the EB column updates to show an abbreviation of the selected sides
EB column abbreviations:
| Display | Meaning |
|---|---|
— | No edge banding |
T | Top only |
TR | Top + Right |
TRBL | All four sides |
BL | Bottom + Left |
Edge banding data is saved with the project and appears in:
- The PDF cut plan (printed on the piece label within the layout diagram)
- The Panel Labels export (one label per piece, showing selected sides)
- The CSV export (as an
edge_bandingcolumn)
For cabinet carcasses, a common configuration is BL (Bottom + Left) or TR (Top + Right) depending on whether the panel is a side, top, or shelf. Entering this once at the demand stage avoids having to figure it out again at the bench.