Sheet / Stock Material
mm
mm
USD
mm
Unusable border around edges
Piece / Project
mm
mm
mm
Kerf + safety gap. Typical for CO2: 0.15–0.40mm kerf + 1mm gap.
Production
Total pieces for this order or batch run
Nesting Results

Fill in the fields and click
Calculate to see results

Pieces Per Sheet
0
Layout -
Arrangement -
Sheets needed -
Total sheet cost -
Cost per piece -
Material utilization -
Waste -
Leftover area -

Nesting Preview

How nesting works

Nesting is the process of arranging cut pieces on a material sheet to maximize usage and minimize waste. This calculator uses guillotine-cut nesting, which is the most practical approach for laser cutting. In guillotine nesting, all cuts go from one edge of the sheet to the other (like slicing with a paper cutter), producing clean rows and columns. This method is standard because laser cutters typically work in grid-like patterns, and the resulting scrap pieces are regular rectangles that can be reused.

The calculator tests multiple layout strategies: pieces in their normal orientation, rotated 90 degrees, and a mixed layout where the main area uses one orientation and the leftover strip uses the other. It picks whichever arrangement fits the most pieces.

Understanding kerf

When a laser cuts through material, the beam itself has a width. This width of material that gets vaporized is called the kerf. It varies by laser type:

Your spacing between pieces should be at least the kerf width plus a safety margin (typically 1–2mm) to ensure pieces do not fuse together or have rough edges where cuts overlap. The calculator's default 2mm spacing works well for most CO2 and diode setups.

Tips for reducing waste

The nesting formulas

// Usable area after removing edge margins
usable_W = sheet_width - 2 × edge_margin
usable_H = sheet_height - 2 × edge_margin

// Layout A: normal piece orientation
cols_A = floor((usable_W + spacing) / (piece_W + spacing))
rows_A = floor((usable_H + spacing) / (piece_H + spacing))
pieces_A = cols_A × rows_A

// Layout B: piece rotated 90°
cols_B = floor((usable_W + spacing) / (piece_H + spacing))
rows_B = floor((usable_H + spacing) / (piece_W + spacing))
pieces_B = cols_B × rows_B

// Mixed layout: normal rows + rotated strip (or vice versa)
leftover_H = usable_H - rows_A × (piece_H + spacing) + spacing - spacing
strip_pieces = floor((usable_W + k) / (piece_H + k)) × floor((leftover_H + k) / (piece_W + k))
mixed = pieces_A + strip_pieces

// Best fit
pieces_per_sheet = max(pieces_A, pieces_B, mixed_variants...)

// Cost
sheets_needed = ceil(total_pieces / pieces_per_sheet)
cost_per_piece = (sheets_needed × sheet_cost) / total_pieces
Note: Real-world nesting may differ slightly from these calculations. Irregularly shaped pieces, material defects, and machine-specific constraints (like bed clamps or hold-down tabs) can reduce the number of usable pieces per sheet. This calculator provides an optimistic but practical estimate for rectangular pieces with guillotine-cut layouts.