Settings — kerf, trim, tolerance & cost
Every setting in CutOptim lives in the Settings panel of the left sidebar — it is always visible on desktop, and available from the Settings tab on mobile. There is no separate settings modal; what you see in the sidebar is the full configuration surface for the active project.
Settings split into two groups:
- Basic (always visible): kerf width, minimum offcut.
- Advanced (collapse arrow): minimum offcut size (W×H), kerf tolerance, start / end trim, cost per cut, first cut direction, currency, optimization goal, detailed cost entry, grain matching.
All values are saved on the project — when you open the project again, every setting comes back exactly as you left it.
Kerf width
Kerf is the width of material removed by each saw cut. Every pass converts a thin strip into sawdust, and over a few dozen cuts that loss adds up. Getting kerf right is the difference between a cut plan that fits and one that runs over.
Why kerf matters
Cut a 2440 mm sheet into 600 mm pieces:
- Without kerf: 4 × 600 = 2400 mm → fits with 40 mm spare.
- With 3 mm kerf: 4 × 600 + 3 × 3 = 2409 mm → still fits, but only 31 mm spare.
- Five pieces: 5 × 600 + 4 × 3 = 3012 mm → does not fit. The optimizer needs a second sheet.
If kerf is set too low the planner will produce a layout the saw physically can’t make. If it’s set too high it wastes material defensively.
Reference values
| Tool | Material | Typical kerf |
|---|---|---|
| Table saw — full kerf | Wood, sheet goods | 3.0–3.2 mm |
| Table saw — thin kerf | Wood, sheet goods | 2.4–2.6 mm |
| Track saw / circular saw | Wood, sheet goods | 2.6–3.2 mm |
| Panel saw / beam saw | Wood, sheet goods | 3.2–4.0 mm |
| Angle grinder 1 mm disc | Steel, aluminium | 1.0–1.5 mm |
| Cold saw | Steel, aluminium | 1.5–3.0 mm |
| Laser cutter | Steel, acrylic, wood | 0.1–0.5 mm |
| CNC router (straight bit) | Wood, aluminium, acrylic | 3.0–8.0 mm |
| Water jet | Steel, stone, glass | 0.8–1.2 mm |
| Glass cutter wheel | Float glass | 0.5–1.5 mm |
| Band saw | Wood, metal | 1.5–3.5 mm |
Always measure, don’t assume. Blade wear, material hardness, feed speed and even temperature all shift the actual kerf. Make a cut in scrap, push the halves together and read the gap with a dial calliper — that’s your real kerf for today.
Minimum offcut
The minimum offcut value is the threshold below which a leftover piece is treated as waste rather than a reusable offcut. Pieces above the threshold go into the offcut inventory; smaller pieces disappear.
The basic field is a single number used for both width and height. Advanced Settings exposes a finer-grained control:
| Feature | Type | Description |
|---|---|---|
| Minimum offcut (basic) | number (mm) | Single threshold applied to both width and height (2D) or to length (1D / Wood). Default 100 mm. |
| Minimum offcut width (Advanced) | number (mm) | Overrides the basic threshold for the width dimension in 2D mode. Only used when set above 0. |
| Minimum offcut height (Advanced) | number (mm) | Overrides the basic threshold for the height dimension in 2D mode. Only used when set above 0. |
| Minimum offcut length (Advanced) | number (mm) | Overrides the basic threshold for length in 1D and Wood modes. Only used when set above 0. |
If both the basic and advanced fields have values, the larger of the two wins. That keeps the basic field as a floor — you can never accidentally collect offcuts smaller than the basic number.
Recommended starting values
| Trade | 2D recommendation | Reasoning |
|---|---|---|
| Cabinet making | 200 × 200 mm | Drawer fronts, shelf tabs, panel offcuts |
| Glass cutting | 300 × 300 mm | Smaller pieces are unsafe to handle |
| Sheet metal | 150 × 150 mm | Bracket / patch usable |
| Signage / display | 100 × 100 mm | Letters, mounts |
For 1D and Wood, 200–500 mm is the typical range — a 150 mm steel offcut is rarely worth storing; a 500 mm timber offcut often is.
Too low and your offcut inventory fills with tiny scraps you’ll never use. Too high and useful pieces vanish into waste. Review the inventory once a month and prune what hasn’t moved.
Advanced settings
The ▸ Advanced Settings arrow in the sidebar expands the rest of the controls. They are collapsed by default to keep the everyday interface clean.
Kerf tolerance New
Kerf tolerance lets you accept pieces that overshoot the bar or sheet by up to a small amount — useful when the saw’s effective kerf isn’t perfectly stable. The optimizer always prefers an exact fit; tolerance is only consulted when an exact fit fails.
Default value: 0 (tolerance disabled). Range: 0–20 mm. Typical values: 1–3 mm.
When a tolerated fit is accepted, the result page shows a “Within tolerance” stat counting how many pieces fitted only because of the relaxation. That count is your audit trail — it tells you how many cuts will be running tight to the limit on the shop floor.
For a deep dive — when to use it, how to measure it, when to leave it alone — see the Kerf tolerance guide.
Tolerance is not free yield: every tolerated cut is a piece that physically wouldn’t have fitted without bending the rules. Keep it below 5 mm in production, and only when your saw measurement supports it.
Start trim / End trim New
Many bars and sheets need a clean-up cut at one or both ends before parts can be cut from them:
- Start trim — removes a fixed length from the start of every bar / sheet. Use it to discard a damaged factory edge, paint overspray, or a defaced sticker zone.
- End trim — removes a fixed length from the end. Use it for the clamp / waste-end on bandsaws and cold saws.
Both values count as waste, not offcut — the trimmed strip is gone for good, it isn’t stored in the inventory. The result page shows the trim as part of the total waste stat (mm or m²).
Defaults: 0 / 0 (no trim). Where it applies: all three modes — 2D, 1D linear, 1D Wood.
In 2D mode the trim takes effect from both the left/top edges (start trim) and the right/bottom edges (end trim) of every sheet — the working rectangle shrinks inward by the trim amount. This matches the practical case where a panel saw needs an edge dressing pass on both ends.
Cost per cut Pro
Adds a per-cut charge to the cost summary. Useful when one of these is a real expense:
- CNC machine time billed per cut.
- Blade wear amortised across cuts.
- A per-cut fee from your subcontractor cutting service.
How CutOptim counts cuts:
- 1D mode — one cut per placed piece.
- 2D mode — approximately 2 guillotine cuts per piece (one to free it from the parent strip, one to size it). This is conservative for very large pieces that share a free edge but matches typical shop quoting.
Cut cost shows in the results as a dedicated stat alongside material cost. The total is also stored in the project and surfaces in the Quotation PDF export (Business plan).
Default: 0 (no cut cost added).
Don’t pad cost per cut with overhead — keep this value clean (saw blade depreciation, electricity, per-cut tooling). Overhead and labour belong in a higher-level project markup, not on every cut.
First cut direction
The first cut direction controls which axis is cut first on a 2D sheet. It has no effect in 1D or Wood modes (there’s only one axis there).
| Feature | Type | Description |
|---|---|---|
| Auto ⚡ | option | The optimizer tries both directions per sheet and picks whichever yields the most. Default and recommended. |
| Horizontal ↔ | option | Every sheet's first cut runs left-to-right. Use this when your panel saw has a fixed-height fence (the panel must fit between the fence rails). |
| Vertical ↕ | option | Every sheet's first cut runs top-to-bottom. Use when your machine has a maximum horizontal travel constraint. |
Leave on Auto unless you have a real machine constraint. Locking the direction typically costs 1–3% yield.
Currency
The currency selector sets the symbol used in the cost summary, the Quotation PDF, and any cost-related output. Available currencies: EUR (€), USD ($), GBP (£), HUF (Ft), RON (lei), PLN (zł), CZK (Kč), CHF (Fr).
Currency is stored per project. Changing it does not convert any entered prices — it only changes the symbol displayed next to the values.
Optimization goal Pro
The goal selector decides how CutOptim orders the available stock when packing pieces.
| Feature | Type | Description |
|---|---|---|
| Minimize waste 📉 | option | Default. Stock is used in the order you entered it, modified by any priority stars. Yield is maximised for the available stock. |
| Minimize cost 💰 | option | Stock with prices is sorted cheapest first, so cheaper sheets/bars fill before more expensive ones. Priority stars still override price. Useful when you have stock at meaningfully different unit prices. |
Minimize cost only matters if you have entered per-item prices in the stock table. Enable Detailed Cost Entry (below) to surface those price inputs. Without prices, both goals produce identical results.
Detailed cost entry Pro
Detailed Cost Entry is a checkbox that toggles a price (💰) column on the Stock and Demand tables. When on:
- Stock table gets a price-per-sheet (or per-bar) input.
- Demand table gets a price-per-piece input (for quoting).
- Both feed the cost summary on the results page and the Quotation PDF.
Off by default to keep tables clean. The toggle state is saved per project.
Grain matching Business
Grain matching tells the optimizer that some pieces must come from the same parent panel — for visual continuity on book-matched cabinet doors, drawer fronts, or wall panels. Groups are defined per project. See the 2D Panel Cutting guide for the workshop background.
Where settings live
All settings are stored on the project record (projects.settings JSONB). When you reopen a project, every setting reloads with it. There is no global “save as my default” UI in the current build — per-user default presets are on the roadmap; the database is already prepared (profiles.default_kerf_tolerance, default_start_trim, default_end_trim, default_cost_per_cut).
Until that ships, the practical workaround is to keep a “template project” with your shop’s standard kerf, trim, cost-per-cut and currency, and duplicate it as the starting point for new work.
What’s coming next
Two phantom controls were removed from the sidebar in this update because they were never wired to anything:
- Cut type “Nested” — true nested (free-form) cutting will come back as part of the upcoming Maximum-efficiency optimization mode (Pro / Business, roadmap).
- Unit selector mm/cm — currently everything is millimetres; cm and imperial units are tracked for a future release.
If either of these is a workflow blocker for you, tell us — feature priority is shaped directly by user requests.