woodshop/src/woodshop
rob 59fff1cb6d Phase 4: batch builds (quantity N)
Estimate N identical units, nesting all units together so offcuts carry across
units → realistic per-unit cost.

- build_cut_plan(quantity=N) / best_cut_plan(quantity=N) replicate CutItems
  (not Parts) with a `unit` field; reoptimize infers the batch size from the
  base plan and preserves it.
- project_estimate(quantity=N): materials from the N-unit plan; setup labor once
  per batch, per-op time + consumables ×N; reports per-unit cost & price.
- BOM window: "Build units" spinner in the header drives the active plan; layout
  labels pieces by unit ("U2 left leg"); cost tab shows total + per-unit.
- tests: replication + units, offcut sharing across units, per-unit estimate.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-30 19:14:23 -03:00
..
gui Phase 4: batch builds (quantity N) 2026-05-30 19:14:23 -03:00
__init__.py Add PoC core: scene model, operations, geometry, viewer 2026-05-29 01:15:01 -03:00
__main__.py Add PoC core: scene model, operations, geometry, viewer 2026-05-29 01:15:01 -03:00
cli.py Phase 1: material + finish fields + color resolver 2026-05-30 19:01:28 -03:00
colors.py Phase 1: material + finish fields + color resolver 2026-05-30 19:01:28 -03:00
cutlist.py BOM window: tabs + cut-layout nesting + print (phase 1 of shop output) 2026-05-30 13:07:49 -03:00
cutplan.py Phase 4: batch builds (quantity N) 2026-05-30 19:14:23 -03:00
driver.py Carry conversation history so "yes" / "do that" resolve 2026-05-30 15:42:33 -03:00
estimate.py Phase 4: batch builds (quantity N) 2026-05-30 19:14:23 -03:00
geometry.py Add auto-assembly (Make connection) + feature rotation 2026-05-29 17:15:51 -03:00
instructions.py Phase 1: material + finish fields + color resolver 2026-05-30 19:01:28 -03:00
jigs.py Address shop-packet review (consistency, determinism, validation, jigs) 2026-05-30 15:11:02 -03:00
layout.py Phase 0: CutPlan model (deterministic shop-output artifact) 2026-05-30 14:25:45 -03:00
lumber.py Phase 1: material + finish fields + color resolver 2026-05-30 19:01:28 -03:00
prices.py Add cost estimate (Cost tab) with editable Kent NB price book 2026-05-30 16:23:59 -03:00
scene.py Phase 1: material + finish fields + color resolver 2026-05-30 19:01:28 -03:00
units.py Add 3D orientation, richer operations, and cut list 2026-05-29 01:42:33 -03:00
viewer.py Phase 1: material + finish fields + color resolver 2026-05-30 19:01:28 -03:00