← back to pin list

7c. Floor packet — the laser operator's paper/PDF program sheet

kerfmaster pin list · UI / workflow decisions

rulingA decision by Aristide or Jordan. True because it was decided; it can be superseded, but it cannot be stale.

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

Contract — deliver stage

This contract states a decision, not an implementation.

takes

makes

fails if Building floor-operator screens into cadmaster; treating the packet as optional.

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

Ruled by Aristide 2026-08-19 (sitting answers, /design/answers/): the floor works from a printed or PDF packet per program answering 'what does it look like?' and 'how much material am I using?' — nest preview, material, program number, material usage, optionally time estimates. The laser operator loads our G-code into the machine's own control and makes execution-side modifications there (reruns, machine tweaks); layout and cut order stay cadmaster decisions. Generation of the packet is an emit-stage deliverable alongside the NC and the slug report; nothing about it is built yet. The existing slug report CSV (numbered shop feedback) remains its own artifact.

Record (2026-08-19) — built. floor_packet.py <build_dir> <O-number> computes packet/packet.json (the dataset) and renders packet/index.html from it (--render-only re-renders without recompute) — generator separate from presentation, per the build rule. The sheet shows: big O-number, material in plain words derived from tables.material() (never typed in the script), sheet size and count, part count + interior holes, the pipeline's own nest SVG (viewBox injected so it scales to print; geometry untouched), a parts table grouped by identical size, and material usage with its measure stated verbatim on the sheet: sum of part outer-outline areas (holes NOT subtracted) ÷ full sheet area, plus nest footprint and full-height clear remnant strip in X. Honest gaps printed, not hidden: time estimate reads pending (no estimator exists); a bold banner says PROGRAM NOT YET POSTED until a posted .nc sits in the build, at which point the generator picks up its O-number and M98 pierce-call count (branch proven against build 066's NC). The four split60 builds (100/101/106/107) carry packets at builds/<build>/packet/, O0086/O0087/O0092/O0093. Two schema drifts found and worked around: builds 101/106 lack nest_extent_in in stats.json (extent measured from the nest DXF instead, source labelled on the sheet), and O-numbers exist nowhere in build data (passed on the command line).

Nest summary carries the part numbers (Jordan, 2026-08-31 — ruling, on the ISV-H recall): 'Make sure to put the associated part #'s on the nest summary sheet, i.e.: part 001 is BNM78655.' The 2026-08-26 never-'part 1' rule extended to the nest cover: every nest summary maps placement id to customer part number. Mechanism: the deliver script writes parts/part_names.json (verified against the nest's own grouping — a mapping that cannot be proven refuses to label rather than mislabel); make_prints reads it for the cover table and the per-part print titles. First applied: build 152 (ISV-H recall prototype).