← back to pin listSheet-edge margin DERIVES from the Rev2 min_gap column — and the operator may shrink both (Jordan 2026-08-27)
kerfmaster pin list · The spec — what we build to
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-27 — computed from the item itself, not typed.
Ruling (Jordan, 2026-08-27), verbatim: 'The 0.5 margin is not a rule, this should be derived from the "minimum gap" column of the tables we provided. In this case it should be set to 0.25 (.125" aluminum, cell 51 U), which would actually make your layout almost correct. As the operator I might opt to make the decision to slightly shrink that gap on a case by case basis, and this should be easy to do in the interface. For the sake of material preservation, I would love for you to recognize that if you would have picked .23 instead of .25 (only a .020" difference) we saved over 5" in X. You should give the operator both options and they can pick.'
- The rule: sheet-edge margin is not its own number — it equals the Rev2 min_gap for the material row. One value governs part-to-part spacing AND part-to-edge clearance. LS1156258 uses the Aluminum .125 row (cell U51 = 0.25) per Jordan's own citation, though the stock is 2.38 mm (.0937).
- Operator override: a per-job input, to be easy in the interface (record intent — phase rule). An override of the gap moves the margin with it unless the margin is overridden separately. Every build records the ruled value AND the value that ran (stats.spacing_rule), so an override is visible, never silent.
- The worked example, verified: at 0.25, 31 rows/col → 384 pcs needs 13 columns, right edge 64.67. At 0.23, 32 rows/col → 12 columns exactly, right edge 59.45. Saving 5.21in of X for 0.020 of gap. Both delivered: build 148 (ruled) and 149 (operator option).
- In the codeset (his instruction — 'it should be in the codeset'): tables.nest_gap(material, machine) reads the Rev2 min_gap (blank cell raises, TBD is never zero); tables.sheet_margin returns the same value by derivation; nest_rules.py holds resolve_spacing + the fill-Y-first packer. Deliver scripts call these — no nest script carries its own margin literal again.
- Applied to 3A76 the same day (build 150): Stainless .125 min_gap 0.2 becomes the margin (build 147 tiled at the assumed 0.5 — 0.3 lost per side). Same double-lattice cells re-tiled in the wider window (retile_lat_3a76_m02.py, no new angle search): 300 pcs, audited 0.2003 pairwise, superseding 147's 288. Shop NC 24384 runs 312 on the same sheet, so their true gap still looks tighter than the ruled 0.2 — open question with Jordan.
- History: the 0.5 margin was an unruled assumption from build 137 through 146; it is what capped LS columns at 31 rows and hid the 32nd row Jordan's NC 28585 runs.