Skip to main content
On this page

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

Rather than filling in a single greedy pass, the optimizer runs several packing strategies over your whole job — different shelf and column layouts, sort orders and rotations — and keeps the best-scoring result (fewest sheets, least waste). Every strategy uses a guillotine cutting model:

  • Guillotine cutting — Every cut goes edge to edge across the sheet. This mirrors how a panel saw, table saw, or beam saw works, so the resulting cut sequence is practical for manual and semi-automatic cutting. It is the 2D Panel mode’s cutting model; for true-shape (free-form) nesting of irregular parts — for CNC routers, laser, plasma or waterjet — use the separate Nesting mode.

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 sheet size.

Sheet supply — the toggle above the table — decides how the quantities are read. In Unlimited (the default) the optimizer buys as many of each size as the plan needs, so a feasible job never fails for want of a board; the per-row quantity plays no part and its column is hidden. Switch to Limited only when you have a fixed number of boards on hand: each row’s quantity then becomes a hard cap, the optimizer combines your sizes to make everything fit, and the result names any pieces it could not cut. If a plan you know is possible comes back short, check that you are not in Limited mode with too few boards entered.

The stock sheet table showing rows with width, height, price fields, and — in Limited supply mode — a quantity field
Stock table with three different sheet sizes entered.
FeatureTypeDescription
WidthnumberSheet width in the active unit (mm or cm). This is the horizontal dimension on the canvas.
HeightnumberSheet height in the active unit. This is the vertical dimension on the canvas.
QuantityintegerHow many sheets of this size you have. Shown and used only when Sheet supply is set to Limited, where it is a hard cap; in Unlimited (the default) the field is hidden and the optimizer uses as many sheets as needed.
PricenumberCost per sheet. Used to calculate total material cost in the results summary and quotation export. Leave blank if pricing is not needed.
NametextOptional material name for this stock size, e.g. '18mm MDF' or '2400×1200 Structural Ply'. It labels the sheet on the plan and carries into the PDF and Excel exports, so the cut sheet says which board to fetch. Loading from the Material inventory or an offcut fills it in for you.

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 Parts

Parts are the rectangular pieces you need the optimization to produce from your stock. They go in the Parts (2D) table.

FeatureTypeDescription
WidthnumberRequired piece width in the active unit.
HeightnumberRequired piece height in the active unit.
QuantityintegerNumber of identical pieces required.
LabeltextDescriptive name for this piece, e.g. 'Door Panel LH' or 'Shelf 600'. Printed on the cut diagram and in the CSV export.
Rot.checkboxTicked (the default) lets the optimizer turn the piece 90° to save material. Untick it and the piece keeps the orientation you entered — use that when grain direction, print orientation, or material face must be preserved. Available on every plan.

Tips for entering parts:

  • 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 Parts

If your cut list already exists in a spreadsheet, you can import it directly:

  1. Open the CSV ⌄ dropdown in the Parts section header (2D, 1D, or Wood) and choose Import CSV
  2. Choose your .csv file — columns are read by position: name, width, height, qty (an optional header row is detected and skipped)
  3. The parts are added to the Parts table straight away

Not sure of the column order? Click the Template button next to the CSV import to download a ready-made CSV with the correct columns and an example row. See Importing data for the full reference.


How CutOptim Cuts: Guillotine

CutOptim’s 2D optimizer is guillotine-only — there is no cut-type toggle in Settings. Every cut is a straight line that runs from one edge of the (remaining) sheet to the opposite edge, mirroring the physical operation of a panel saw, table saw, or beam saw.

Why guillotine:

  • The cut sequence can be handed to an operator as a straightforward cut list — or stepped through on screen with the Cutting Sequence player
  • Works on a table saw, panel saw, track saw, or beam saw — no CNC required
  • Cuts remain reproducible when material is flipped or moved between passes

Comparing against other tools: a free-nesting optimizer — one that drops pieces anywhere on the sheet — will usually report a higher yield than a guillotine optimizer on the same list. That gap is the price of cuts you can actually make on a panel saw, not a defect. Compare like with like before judging a number.

True nested (free-form) cutting — where pieces are placed anywhere on the sheet to squeeze out a few extra percent of yield on a CNC router — is not a cut-type toggle inside 2D Panel mode. For irregular polygons (and free-placed rectangles) use the separate Nesting mode; a rectangular free-nesting balanced engine is also available through the Engine API.


Cutting on a Panel Saw

A guillotine plan is only as good as the machine it is cut on, so five controls in Advanced Settings describe the saw rather than the material:

Control What it does Modes Plan
Trim per side Dresses each edge of the board separately — left, right, top, bottom 2D only (1D and Wood get the start / end trim pair instead) Every plan, guests included
First cut direction Forces the first cut on every sheet to run horizontally or vertically 2D only Every plan
Calibration cut Skims a strip off one edge first, so you can measure it and correct the fence before cutting a part Every mode — only the four-side picker is 2D, since a bar has one head Every plan
Max. cutting stages Caps how many times the material is turned — panel saws are specified as 2-, 3- or 4-stage 2D only Workshop
Minimise rotation Prefers layouts that turn fewer parts, but only when that costs no extra sheet 2D only Workshop

Each one is documented in full on the Settings page. The finished order of cuts is then available as the Cutting Sequence, which steps through the plan one fence setting at a time — in every mode, not only here.

CutOptim does not produce machine-specific files — there is no .opt or G-code export, and DXF carries geometry only. What it produces is the plan, the numbers behind it and an order you can follow at the saw.


Running the Optimization

Once stock and parts are entered, click Run optimizer at the bottom of the left sidebar, or press Ctrl+Enter. The optimization typically completes in under 2 seconds for jobs with fewer than 500 pieces. Larger jobs take longer, and the page stays unresponsive until the calculation finishes.

What CutOptim checks before running: exactly one thing — that the active mode has at least one stock row and at least one part row. If either table is empty, a short message appears and nothing runs, so an empty run never costs you an optimization from your quota.

There is no other pre-flight validation, and nothing blocks the Run button. In particular, a piece too large for any of your stock will not stop the run: the optimizer simply cannot place it, and tells you afterwards — in limited-stock mode the result summary names every piece that did not fit. Quantity fields accept whole numbers from 1 upward and fall back to 1 if you clear them.


Reading Your Results

After a successful run, the canvas shows the layout and the results panel updates:

Results panel showing yield 92.4%, waste 7.6%, 4 sheets used, 3 offcuts
Results summary after a 2D panel optimization.

The sheet diagrams

Every sheet used is drawn one after another down the results panel, each under its own header showing the sheet number, the material name, the size, how many pieces it carries and how much of it is used. Placed pieces are coloured rectangles carrying their label and dimensions; the leftover material is listed under the diagrams rather than drawn on them, split into reusable offcuts and waste by your minimum offcut threshold.

The sawing plan on the results page

The results page adds two views of the order the cuts should be made in:

  • The Cutting Sequence bar sits directly above the sheet diagrams it steps through — after the legend, before the first board — so the control and the boards it drives are in the same place on screen. It carries ◀ Previous, the step readout, ▶ Next, ⏮ Restart and ▶ Play.
  • Further down, below the cut list, the whole plan is listed as a Cutting Sequence table: one row per fence setting, with the columns Order, Sheet, First cut direction (horizontal or vertical, plus · Calibration on the calibration step and · N× where one setting makes N parallel cuts) and Position. Clicking a row jumps the player to that step, and the active row is highlighted as you step through.

See Cutting Sequence for the full guide, including how the plan looks on a bar in 1D and Wood.

Cuts, saw passes and cut length

Alongside yield, waste, sheets and pieces, a 2D result reports what the plan costs the saw. These stats are shown on every plan, guests included:

FeatureTypeDescription
CutsstatFence settings. Collinear cuts at the same coordinate made in the same machine pass count once, because that is one setup on the saw. This is the operator-facing number, and it is also the number of steps in the Cutting Sequence.
saw passessub-lineShown under the Cuts figure when the two differ: every strip crossed separately. This is the number Cost per cut is charged on.
Cut lengthstatThe total distance sawn — metres in mm mode, feet in inch mode.
Edge banding lengthstatTotal running length of edge banding the parts list needs, shown only when at least one part has edges marked. Top and bottom edges run along the part's width, left and right along its height. It is exact geometry with no waste allowance — add your own margin for overlap and trimming — and it is broken down by banding type (a line per type plus an order total). Also printed in the PDF material requirement section and on the Materials tab of the Excel export, with a dedicated 'Edge banding by piece' page in the PDF and a dedicated Edge Banding tab in the Excel export — but never on the layout-diagram piece labels.

The two counts are not alternatives and neither is wrong; they answer different questions. How many times do I set the fence? is the first. How many times does the blade go through material? is the second. On the standard 40-part demo job (2440×1220, kerf 3), the plan takes 30 cuts, 52 saw passes and 32.88 m of sawing across 2 sheets at 83.3% yield.

Cut length is the same figure under either counting convention, so it needs no qualifier. The search already prefers the shortest-cut plan among the layouts that use the same boards, which is why the demo comes out at 30 cuts by default. If your saw limits how many times the material can be turned, cap the Max. cutting stages (Workshop) — CutOptim keeps the plan within that limit where the job allows and warns you where it cannot, rather than handing back a plan the saw can’t execute (the demo job itself needs 3 stages).

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:

  1. Check kerf width — An incorrect (too large) kerf wastes space on every cut
  2. Allow rotation — Make sure the Rot. checkbox stays ticked on pieces where grain direction does not matter
  3. Batch more pieces — Add remaining pieces from future jobs to fill the sheets now
  4. Add smaller stock — If you have offcuts from previous jobs, add them to the stock table and star them so they fill first

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:

  1. Click the ★ icon on any stock row — it turns yellow/gold
  2. Run the optimization — the starred sheet is used first
  3. 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

Edge banding is recorded per piece in the EB column of the Parts table: which sides of a finished panel are banded, and with which banding type. From that, CutOptim totals the linear metres of banding the job consumes, broken down by type.

Edge banding is a metadata/reference feature — it does not affect the optimization algorithm. It records which sides are banded and with which type, then reports the running metres so you can order the right amount of each banding.

Marking edge banding:

  1. Click the button in the EB column of any demand piece row.
  2. The edge banding dialog opens with four sides: Top, Right, Bottom, Left.
  3. For each side, pick from the dropdown: None (not banded), No type (banded, no specific type), or one of your saved banding types.
  4. A visual preview shows the banded sides as a yellow stripe around the piece outline.
  5. Click OK — the EB column shows an abbreviation of the banded sides (T / R / B / L).

EB column abbreviations:

Display Meaning
No edge banding
T Top banded
TR Top + Right banded
TRBL All four sides banded
BL Bottom + Left banded

Banding types (library)

Click Manage types in the edge banding dialog to open your banding-type library. Each type carries a name (the reference you order by, e.g. ABS oak 22×1), a thickness, a price per metre and a colour — picked from a colour swatch, and used to draw that type’s edges in the per-piece banding diagram. Your types are stored to your account and sync across devices; assign them per edge from the dropdowns.

How the metres are reported

CutOptim measures the banded length exactly — top and bottom edges run the piece width, left and right run the piece height, multiplied by the quantity — with no waste margin (add your own overage at the bench). The per-type total appears in three places:

  • The optimization summary — one figure per banding type.
  • The PDF, in the material-requirement section, as a line per type plus an order total.
  • The Excel export, on the Materials tab, as a row per type plus a total.

Beyond the totals, the banding is shown per piece in two places: the PDF has a dedicated Edge banding by piece page — each banded piece drawn with every edge in its banding-type colour and its length labelled, followed by a per-piece table of the material and length of each edge — and the Excel export has a dedicated Edge Banding tab with the same per-piece table plus a banding-layout picture.

Edge banding is still not drawn on the piece labels inside the layout diagram (the sheet plan), and it is not part of the Panel Labels export — those show dimensions only. Banding appears as the per-type totals above, plus the dedicated Edge banding by piece page in the PDF and the dedicated Edge Banding tab in the Excel export.

CSV

The Parts CSV has an EB column. Two forms are accepted:

  • TRBL — those sides banded, no specific type (any order, any case).
  • T:ABS oak 22;L:ABS white 22 — each named side takes that library type by name. Separate pairs with ; (or quote the cell if you use commas). A name that matches no type still bands the edge (as No type), so nothing is lost.

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. Assigning the type once at the demand stage means the metre totals — and your order — are correct without re-checking at the bench.

FAQ

How does CutOptim cut the sheet — guillotine or nested?
CutOptim's 2D Panel optimizer is guillotine-only: every cut runs edge-to-edge across the remaining material, exactly as a table saw, panel saw, or beam saw would cut. There is no Nested cut type inside 2D Panel mode. For true-shape (free-form) nesting of irregular polygons — for laser, plasma or waterjet — use the separate Nesting mode instead.
Can I mix different sheet sizes in the same optimization?
Yes. Add as many stock sheet rows as you like, each with a different size, and CutOptim uses the most efficient combination to fulfil your demand. If you also need to keep different materials apart — say 18 mm from 12 mm, or oak from MDF — turn on Material-specific mode and tag each row; the optimizer then packs each material only onto stock of the same material, in one run.
Can demand pieces be rotated?
By default, CutOptim can rotate pieces 90 degrees to improve packing. To prevent rotation on a specific piece (for example, when grain direction matters), untick the Rot. checkbox on that row of the Parts (2D) table. It is available on every plan, guests included.
My sheet shows a large offcut in the corner. Can I split it into two pieces?
Offcuts are not split automatically. The offcut is the remaining material after all demand pieces are placed. You can save it to the Offcut Inventory and use it as stock in a future job.
How many demand pieces can I add on the free plan?
The free plan allows 3 optimizations per month, with any number of demand pieces in each one. Upgrade to Pro for unlimited runs.
Does CutOptim account for edge banding or trimming allowance?
Edge banding can be marked per side on each demand piece, and each side can carry a banding type. CutOptim reports the linear metres per type in the results summary, the PDF material-requirement section and the Excel Materials tab, and shows the banding per piece on a dedicated 'Edge banding by piece' page in the PDF and in a dedicated Edge Banding tab in the Excel export; it does not change dimensions and is not printed on the layout-diagram piece labels or the Panel Labels export. To dress the edges of the sheet itself, use Trim per side in Advanced Settings: separate left, right, top and bottom values, available on every plan. Allowance on an individual part is still added manually to that part's dimensions.
How many cuts does the plan need, and how far does the saw travel?
Both are shown in the results header after a 2D run, on every plan. The Cuts stat counts fence settings — collinear cuts made in the same pass count once — and the sub-line under it counts saw passes, every strip crossed separately. Cut length is the total distance sawn, in metres in mm mode and in feet in inch mode.
What does the star (★) next to a stock row do?
Starring a stock row marks it as priority material. The optimizer uses starred sheets first before drawing from unstarred stock. This is useful for using up offcuts or leftover sheets from previous jobs before opening new stock.
Can I mark which sides of a panel need edge banding?
Yes, on every plan. The EB column in the Parts table lets you select which sides (Top, Right, Bottom, Left) are banded and with which type. CutOptim then totals the linear metres per banding type in the results summary, the PDF material-requirement section and the Excel Materials tab, and shows the banding per piece on a dedicated 'Edge banding by piece' page in the PDF and in a dedicated Edge Banding tab in the Excel export. It does not affect the optimization layout, and it is not printed on the layout-diagram piece labels or in the Panel Labels export.

Last updated: August 24, 2026