← back to pin list

7. Interface workflow

kerfmaster pin list · UI / workflow decisions

intentmixedWhat we want to build. Never claimed the present, so it cannot be stale — and must never be read as a description of the code.

Content last changed 2026-08-03 — computed from the item itself, not typed.

Contract — Cross-cutting stage

This contract describes a stage we intend to build — it is NOT a description of the code.

takes

makes

fails if An operator step with no way back; a fix accepted without being shown.

Contract last changed 2026-08-06 — computed, not typed. Dated separately from the text above, so neither date can speak for the other.

The operator’s path through cadmaster, start to finish.

The flow

  1. Load — drop a DXF, DWG or .ai/PDF; all three are read today (items 2a, 2c). Units are auto-detected and shown for DXF; an .ai carries no real size, so it is gated by item 14b instead.
  2. Heal — geometry cleaned; fidelity + jog count reported; original kept as the toggle base layer.
  3. QC — topology flags drawn; islands detected.
  4. Review the fix — operator accepts / edits / rejects the proposed QC_FIX and tab proposals.
  5. Leads + order — confirm / adjust leads, kerf side, cut order.
  6. Nest (if batching) — arrange copies on the sheet.
  7. Post — emit the Fanuc program; delivered on the comparison board.

Open

How much runs one-click-automatic vs. requires an operator confirmation at each gate — and where the human MUST sign off (tabs, QC fixes) vs. where it just flows.

Build state, 2026-08-03. Steps 1–3 and 7 run today, but as two one-shot scripts rather than a flow: build_board.py (DXF) and build_vec_board.py (.ai/PDF) each do load → heal-or-fit → QC → post → board in a single pass. Step 4 has no accept surface (QC step 2 is not built and there is no QC_FIX layer), step 5 has no confirm surface (leads, kerf side and cut order are chosen inside emit, with no operator input beyond the cut_critical declaration), and step 6 has no nester. The operator flow described above is the design, not the program.