Cutting Optimizer
Solve the rebar cutting problem — given a list of bars to cut + length of stock bars, output an optimized cutting plan (least waste).
Use cases: rebar estimation for construction projects, sheet metal cutoff, plywood, plastic pipes, lumber, etc.
Open dialog
DVD Cons → group Cutting → click Cut Optimizer.
Workflow
Step 1 — Open template
DVD Cons → group Cutting → Cutting Template (opens RebarCutOptimizer.xlsx).
The template has:
- Sheet Input — list of bars to cut + stock configuration.
- Sheet Output — cutting result after running.
- Sheet Summary — total waste, efficiency.
Step 2 — Fill the Input table
Table 1: Bars to cut
| Code | Length (m) | Quantity | Group |
|---|---|---|---|
| D16-A | 3.2 | 50 | A |
| D16-B | 2.8 | 30 | A |
| D16-C | 1.5 | 100 | A |
| D20-A | 4.5 | 20 | B |
| ... | ... | ... | ... |
- Code: bar segment name (e.g. beam axis 1, column floor 2).
- Length: bar length needed (m or mm — must be consistent).
- Quantity: how many bars of that size.
- Group: same group = same diameter / same stock bar.
Table 2: Stock bar configuration
| Group | Stock length (m) | Cut kerf (mm) | End trim (mm) |
|---|---|---|---|
| A | 11.7 | 3 | 0 |
| B | 11.7 | 3 | 0 |
- Stock length: typically 11.7m for rolled rebar in Vietnam.
- Cut kerf: usually 1-3mm (saw blade).
- End trim: if you must cut off both ends (rust, bent).
Step 3 — Run Cut Optimizer
DVD Cons → Cut Optimizer → dialog opens:
- Input bars range — select Table 1.
- Stock config range — select Table 2.
- Output sheet — sheet to write results.
- Algorithm:
- First-Fit Decreasing (default, fast) — sort bars descending, place into the first stock with room.
- Best-Fit Decreasing — choose stock with the smallest leftover.
- Genetic Algorithm (slow, more optimal) — runs 1000 generations.
- Goal: minimize waste / minimize stock bars used.
- Min reusable scrap (default 1m) — scrap ≥ this length is kept for next cutting (saved to virtual stock).
Click Calculate.
Step 4 — Read the result
Sheet Output:
| Stock # | Cut 1 | Cut 2 | Cut 3 | Waste (m) |
|---|---|---|---|---|
| Stock 1 | D16-A (3.2) | D16-A (3.2) | D16-B (2.8) | 2.5 |
| Stock 2 | D16-A (3.2) | D16-B (2.8) | D16-C (1.5) × 3 | 0.7 |
| ... | ... | ... | ... | ... |
Sheet Summary:
- Total stock bars needed.
- Total waste (m).
- Efficiency (%) = (sum cut lengths) / (sum stock lengths).
- Waste distribution by length (histogram showing how much can be reused).
Advanced options
Mix groups in same stock
Allow bars from different groups in the same stock (if same diameter). Default Off — keeps beam/column/floor segments separated.
Prioritize long bars first
Default On — sort bars longest first. Usually produces better results than the reverse.
Use scrap from inventory
If the inventory has leftover scrap (e.g. 50 segments of 3.5m), add it to a table:
| Inventory Code | Length (m) | Quantity |
|---|---|---|
| INV-3.5m | 3.5 | 50 |
| INV-2.8m | 2.8 | 12 |
Tick Use scrap inventory in the dialog → algorithm prioritizes cutting from inventory before using fresh stock.
Typical workflow
- Open Cutting Template.
- Paste bar list from Project / Revit / BIM tool into Input sheet.
- Set stock length = 11.7m, kerf = 3mm.
- Click Cut Optimizer.
- Print Output sheet for the on-site crew (one stock = one cutting slip).
- Save Summary sheet to report to project leadership.
Troubleshooting
"No bars found to cut"
- Input table "Length" or "Quantity" column empty/wrong format.
- Bar length > stock length → unsolvable (would need splicing — not supported).
Different results between runs
- Genetic Algorithm has randomness — re-running may differ. That's normal.
- With First-Fit / Best-Fit, results are deterministic.
Very low efficiency (< 80%)
- Some bars longer than 50% of stock length → hard to combine with others.
- Try Genetic Algorithm (slower but 5-15% better).
- Or allow mixing groups.
License gating
Cut Optimizer requires an active license (Activated or Trial). Template (open template) is free.
Related
- Cutting Template — open template.
- Gantt Chart — manage cutting schedule by phase.