← back to pin list

Machine condition tables — Jordan's Rev2 workbook is the MASTER (Jordan 2026-08-24)

kerfmaster pin list · Big capabilities

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

Content last changed 2026-09-06 — computed from the item itself, not typed.

Ruling (Jordan, 2026-08-24, answering the eight numbered questions on his KerfMaster Table Rev2.xlsx): quotes in the hook. Record: the workbook is ingested to machine_tables.json via ingest_machine_table.py (re-runnable; blank cells = TBD = null). 71 GX 10K rows across Mild Steel(16)/Galv(7)/Stainless(15)/Aluminum(14)/Copper(7)/Brass(12, thick rows metric C2801); master machine list GX 10K ($350/hr) and EX 4.5K ($200/hr), both 60x120, acceleration TBD. Spot-verified against the workbook (0.080 mild: feed 235, offset .004, slug .018 between 1 and 5, part tab .030, gap .2).

Gaps this opens (recorded, not built): (1) code still posts a single comp register (machine.json comp_register=7) and gates comp-interference on materials.json beam_comp .007 -- Rev2's per-class D1/D2/D3 with #106/#107/#108 and the .004 offsets must be wired through tables.py/emit before the ISV-H programs O105-109 post; (2) envelope checks still assume 80x160 (emit.MACHINE_DEFAULT) -- must become per-machine (GX/EX are 60x120); (3) small-contour classification (smallest-dimension test on inside contours vs Small Threshold) does not exist in the post; (4) EX 4.5K sheet and etch condition/feedrate columns still to come from Jordan; (5) variant M100 columns carry names only -- estimate numbers per gas variant undefined (acceptable: time-only). Intent: form-type per-machine sheets editable by clients; master + per-client override copies.

Record (Jordan's EDIT_TOOLING_0.JPG, same day): MetaCam's Laser Cut tooling dialog shows the CONDITION NUMBERS as full recipes living machine-side -- Power/Frequency/Duty/Feedrate/Color per condition. Read from the screenshot: #108 4000W/1300Hz/80%/feed 160; #107 3500W/1300Hz/80%/140; #106 3000W/1300Hz/80%/120; #105 1800W/1300Hz/50%/80; #103 350W/20Hz/12%/10; #102 350W/300Hz/25%/150. Power and feed descend 108->107->106 exactly matching Profile/Inside/Small -- the physics behind the per-class registers. CONFIRMS the posting model: our NC selects a condition NUMBER (#10x) and the laser supplies the recipe, which is why Rev2's feedrate/time columns are estimate-only mirrors. Dialog also carries 'No Beam-offset' (the G40 text/art case), Approach/Escape settings (lead-in/out -- ours replaces these), and a display color per condition (ties to the stroke-color cut/etch signal). Roles of #105/#103/#102 not yet stated by Jordan (103 slow+low and 102 fast+low look like etch/mark candidates -- awaiting his etch columns).

Record (Jordan's EDIT_TOOLING_3.JPG, same day): MetaCam's Escape (lead-out) dialog on the same circle tooling: Condition 107 (the escape carries its OWN condition number), Escape geometry Length 0 / Radius 0 / Angle 90 (no lead-out -- matches the corpus programs), Gap width 0, After cut: None. 'Gap width' is MetaCam's uncut-span field on the escape side -- the mechanism their tabs post through (our tab-as-gap model is the same move). Lead-in visible entering the circle horizontally at the right side. Not yet confirmed by Jordan: that Gap width is where 33199's 0.030 part tabs were set.

Record (Jordan's EDIT_TOOLING_2.JPG, same day): MetaCam's Approach (lead-in) dialog, same circle: Condition 107 (approach owns a condition number too), Approach Geometry Length 0.187 / Radius 0 / Angle 90 (straight perpendicular lead-in, no arc), Pierce dropdown 'Hi-Speed(9011)' with Dwell 0 greyed. CONFIRMS two Rev2 column mappings: Approach Length = the Rev2 'Lead-in' column (0.187 is exactly the 3/16 mild row's lead-in), and the Pierce dropdown = the 'Default Pierce'/'Etch Pierce' columns -- Hi-Speed(9011) posts as the corpus M98 P9011 call. Their lead is a fixed per-tooling length/angle; our chooser replaces it with clear-air scoring. Dwell appears tied to pierce type (greyed on Hi-Speed).

Record (Jordan's EDIT_TOOLING_1.JPG, same day): MetaCam's main Laser Cut tooling dialog: Condition 107, 'Constant power' checked, Direction dropdown CCW (per-contour direction control -- CCW matching the holes-CCW shop norm), 'Before: None' (function not yet stated), 'No Beam-offset' unchecked (comp on/off is PER CONTOUR in MetaCam, not only per job), then Approach settings / Escape settings / Delete this tooling. Completes the tooling-dialog series (0=condition table, 1=main, 2=approach, 3=escape).

Ruling additions (Jordan, 2026-08-24, answering the dialog questions): (1) Conditions 105/103/102 are 'just other options that exist, and that the operator may or may not decide to use' -- power settings in the screenshot not to be relied on. (2) CONFIRMED: 33199's 0.030 part tabs were set via the escape Gap width -- 'we manually added those by selecting all the shapes that needed a tab, and then applied this setting.' Their tab = our tab-as-gap model, hand-applied where ours is rule-driven. (3) CONFIRMED: lead-ins and lead-outs may run a different condition number than the cut -- 'a beneficial tool for the operator.' (4) After-cut semantics DECODED: None = M199 only (evade); Head up = M199 + G0G28Z0; Stop = M00. So M199 in the corpus = the evade move -- feed this to nc_audit's M-code model. (5) 'Before:' is effectively nothing -- 'just an interface ambiguity', NOT a cut-order constraint. (6) Pierce dwell real numbers live in the laser controller and never affect our G-code. OWED BY JORDAN (his standing edit list, remind him): 1. etch condition + feedrate — ANSWERED 2026-09-06: 'All etches use #111 with a feedrate of 100 in/min' — rides as the shop-wide etch_default in machine_tables.json (written by ingest_machine_table.py so a re-ingest keeps it; tables.etch() serves it; a row's own etch columns WIN when the workbook grows them, both-or-neither, per the seed rule; test_etch.py 9 controls); 2. alternative pierces added to the table, easily operator-overridable; 3. the EX 4.5K sheet.