On this page

1D Linear Cutting

1D Linear Cutting optimizes any material that comes in lengths: steel bars, aluminium extrusions, copper pipe, timber battens, plastic tube, cable, threaded rod, and any other linear stock. You supply the available bar lengths and the required cut lengths — CutOptim finds the combination that uses the fewest bars with the least offcut waste.


How 1D Optimization Works

The 1D problem is simpler than 2D: every item has only one dimension (length), and every bin (stock bar) also has only one dimension. The algorithm assigns lengths to bars so that:

  • Every required length is assigned to exactly one bar
  • No bar is over-filled (all lengths assigned to a bar fit within the bar’s length, accounting for kerf)
  • The total number of bars used is minimized

This is a variant of the bin-packing problem for one dimension. CutOptim uses a first-fit-decreasing heuristic with local improvement to find near-optimal solutions quickly even for hundreds of demand lengths.

For linear materials where length is the only relevant dimension — pipe, rod, bar, cable — use 1D mode. For materials like flat bar or angle where you might need to track width as well, consider using 2D mode with height set to the material width.


Adding Stock Bars

Stock bars represent your available raw lengths. Enter each bar size as a separate row.

Feature Type Description
Length number Full length of the stock bar in the active unit (mm or cm).
Quantity integer Number of bars of this length available. The optimizer will use up to this many.
Price number Cost per bar. Used in the cost summary and quotation export.
Label text Optional description, e.g. '6m EN10210 CHS 60.3×4mm'. Appears in the PDF and CSV exports.

Example: structural steel job

LabelLength (mm)QtyPrice
RHS 50×50×3 — 600060001242.00
RHS 50×50×3 — 30003000422.50

In this example, CutOptim will draw from both the 6 m and 3 m lengths to fill the demand most efficiently.


Adding Demand Lengths

Demand lengths are the cut pieces you need to produce. Each row in the Demand table represents one type of cut.

Feature Type Description
Length number Required cut length in the active unit.
Quantity integer Number of pieces of this length required.
Label text Piece name or reference, e.g. 'Rafter A' or 'Handrail section'. Printed in the cut diagram and export.

Example: aluminium handrail job

LabelLength (mm)Qty
Top rail24006
Infill bar100024
Post cap extension15012
Return end3004

Running a 1D Optimization

  1. 1

    Enter stock bars

    In the Stock table, add each bar length with quantity and optional price. If you are buying material for the job (rather than drawing from existing stock), set a high quantity — the optimizer will only use as many as needed.

  2. 2

    Enter demand lengths

    Add every required cut length with its quantity and label. If you have an existing cut list in a spreadsheet, use CSV import (Import button above the Demand table).

  3. 3

    Set kerf width

    Open Settings and confirm your kerf width. For a standard chop saw or angle grinder with a 3 mm disc, enter 3 mm. For a thin-kerf saw blade, enter 2 mm.

  4. 4

    Run the optimization

    Click Run Optimization or press Ctrl+Enter. Results appear immediately.

  5. 5

    Review bar diagrams

    Each bar is shown as a horizontal rectangle in the canvas. Coloured segments represent demand pieces; grey segments are offcuts. Use the bar navigator to step through all bars.

  6. 6

    Export your cut list

    Click Export and choose CSV for a spreadsheet cut list or PDF for a printable bar-by-bar diagram.


Reading the Bar Layout Results

1D bar layout showing 3 bars with colour-coded cut segments and grey offcut sections
Three stock bars after 1D optimization. Each bar shows its cut sequence from left to right.

The canvas for 1D mode shows each bar as a horizontal strip divided into segments:

Segment typeVisualDescription
Demand pieceColoured block with labelA required cut length placed on this bar
KerfThin dark lineMaterial lost between each cut
OffcutHatched greyRemaining length, larger than minimum offcut size
WasteSolid greyRemaining length, smaller than minimum offcut size

Cut Sequence

The cut sequence is shown left to right on each bar diagram. Cuts are sorted by length (longest first) to minimize offcuts. The PDF export lists the sequence as numbered steps:

Bar 1 (6000 mm): Cut 1 — 2400 mm (Top rail) | Cut 2 — 2400 mm (Top rail) | Offcut — 1194 mm

Summary Metrics

MetricMeaning
Bars usedNumber of stock bars consumed
Total cut lengthSum of all demand piece lengths
Yield %Total demand length / total used bar length × 100
Waste %Unusable scrap / total bar length × 100
OffcutsRemaining usable lengths saved to inventory

Stock Priority (★)

Each row in the Stock table has a star (★) icon on the left. Starring a stock row tells the optimizer to use those bars first — before any unstarred stock.

When to use it in 1D mode:

  • You have a partial bar from a previous job and want to use it before cutting new stock
  • You have bars in a less convenient location (different rack, another site) that you want to defer
  • You want to clear old stock of a certain size before it corrodes or warps

Click the ★ icon to toggle it yellow/gold (prioritized) or grey (normal). The setting is saved per cut.

When adding inventory offcuts as stock, star them all. This tells the optimizer to exhaust your existing offcuts before opening new full-length bars — the most effective way to reduce material spend over time.


Importing Demand Lengths

For jobs with many cut lengths already in a spreadsheet or design program export, use the import tools above the Demand table instead of typing each row manually. CutOptim supports paste from Excel/Google Sheets and CSV file import. See Importing Data for full instructions and column formats.


CSV Export for 1D Results

The CSV export for 1D mode contains one row per demand piece with the following columns:

ColumnDescription
bar_indexWhich stock bar this piece was cut from (1-based)
bar_labelLabel of the stock bar
piece_labelLabel of the demand piece
piece_lengthCut length
position_from_endDistance from the left end of the bar where this cut starts
qtyQuantity (always 1 per row; multiple identical pieces appear as multiple rows)

Sort the CSV by bar_index then position_from_end to get a sequential cut list for each bar — exactly the order you would make cuts at the chop saw.


Practical Example: Steel Frame Substructure

Job: Wall-mounted steel subframe for a commercial fit-out. 12 vertical uprights at 2700 mm, 18 horizontal rails at 1200 mm, 6 diagonal braces at 890 mm.

Stock available: 20 × 6000 mm lengths of 50×50×3 RHS at $41 each.

Settings: Kerf 3 mm, units mm, Guillotine mode (not applicable to 1D, but kerf matters).

Result: 9 bars used (instead of 12 if cut naively), yield 92.3%, estimated saving of 3 bars = $123 in material.

BarCuts
Bar 12700, 2700, 597 (offcut)
Bar 22700, 2700, 597 (offcut)
Bar 32700, 1200, 1200, 897 (offcut)
Bar 41200, 1200, 1200, 1200, 1200 (waste 194)
Bar 51200, 1200, 890, 890, 817 (offcut)

The three 597 mm offcuts can be saved to inventory and used for future small pieces.

FAQ

What is the difference between 1D and 2D mode?
1D mode optimizes linear stock — material measured only by length, such as pipes, rods, bars, and profiles. 2D mode handles sheet material with both width and height. In 1D mode, piece width is ignored; only length matters.
Can I mix different stock lengths in one optimization?
Yes. Add multiple rows to the Stock table with different lengths. CutOptim will use the combination that minimizes total material usage.
Does 1D mode support kerf width?
Yes. The kerf setting in Settings applies to 1D mode. Each cut consumes the kerf width from the remaining bar length.
How do I export my 1D cut list for a workshop?
Use CSV export for a spreadsheet-compatible cut list, or PDF export for a printable bar diagram with cut sequence. Both are available from the Export button.
Can I lock a piece so it is always cut from a specific stock bar?
Not directly, but you can achieve this by creating a separate cut (within the same project) with only that stock bar and the pieces that must come from it.
What is the maximum number of bars or demand lengths I can enter?
On the free plan, up to 3 stock bars and 20 demand lengths. On Pro, unlimited.

Last updated: April 1, 2026