← back to pin list

4d. Start points & lead geometry

kerfmaster pin list · Big capabilities

recordmixedd3d5d6d7closed d18States what the code does today. Auditable against the code — this is the only type that can go stale.

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

Contract — Starts & leads stage

This contract describes the code as it runs today.

takes healed-geometrytopologymachine-profile

makes boundaries-with-starts

fails if A start at a sharp point of the design; a start chosen before its lead, so the boundary ends up pierced with no lead; a corner inside the tab span, unreported.

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

⚠ Known defects

This item's subject has known defects in the code. Recorded and deliberately NOT fixed — recording a defect is not a licence to fix it. Source: cadmaster/defects.jsoncadmaster/KNOWN_DEFECTS.md, not this page — the text below is generated from the register so the two can never disagree.

Status: OPEN. Jordan, 2026-07-29: "We're going to have to agree on an interface in the software that will enable the operator to define these." So this is part of the pick surface in item 4b, but the rules themselves are still undecided.

What we measured from the shop's novi program

What we cannot read off one file

  1. What picks the start point on a contour in the first place.
  2. The shortening rule when the nominal will not fit — what it fits against, and the minimum acceptable lead before the feature is treated differently.
  3. What sets the angle, given it is clearly not perpendicular.
  4. Lead-out — whether there is one at all, separate from the slug-retention tab.

One rule we already hold

A lead or pierce must never land inside a bridge, a tab or a slug-retention tab. All three are deliberately narrow spans of material, and piercing into one destroys the thing it was sized to do. This constrains start-point choice regardless of how the rest is decided.

ANSWERED 2026-07-30 (Aristide and Jordan) — question 1, the start point

"The starting point for the laser, where it creates the drop retention tab, can never be at a sharp point in a design. So never in a corner, always on a flat, or if it's a circle, 90°."

Note what this rule really governs. The start point is the tab location — the tab is the span left uncut immediately before the contour closes, so it sits at the start — and the pierce sits there too. One choice therefore fixes three things at once: where the tab lands, where the pierce mark lands, and where comp switches on.

Why a corner is wrong. Material folded around a corner tears rather than snapping, so the tab breaks out ragged instead of on one clean line; and the leftover nub then sits on the most visible feature of the shape, which is exactly where the eye goes. A flat gives the break a single straight line.

How cadmaster implements it

Measured effect on the novi sign

Checked by parsing the posted NC back and measuring the turn angle across each tab span — a tab straddling a corner shows up as a large turn.

The before/after numbers are the control for the checker as well as the result: a measurement that reported zero on both files would have proved nothing.

Re-measured 2026-08-02 at HEAD 0ded91a, and the "after" has moved. Method, so it is reproducible: post the novi sign with start_rule=True, parse the program back with compare_nc.parse, and take the angle between the direction arriving at the last cut move and the direction leaving the first — the turn the tab span straddles. The control is the same post with start_rule=False, and it reproduces the pinned "before" exactly (53 of 70, median 71.15°, worst 155.77°), so the checker is the same checker and the change is real.

The one failure, and its mechanism. BND 70 is a shape whose longest primitives are two 0.1794" radius arcs — under the FLAT_ARC_R gate, so it has no flat to offer and the last-resort branch takes the longest primitive. A 0.033" tab there straddles a 10.58° turn. It is not reported: stats["start_compromised"] comes back empty, because clean is only False when the longest primitive is shorter than the span, and a tight arc is long enough to pass. So the rule’s own "report it if a corner still falls inside the span" never fires for the case it exists for. Recorded as a known limit; not fixed.

Still open on this item

Questions 2, 3 and 4 above are untouched — the lead shortening rule, what sets the lead angle (clearly not perpendicular in the shop's program), and whether there is a lead-out distinct from the slug tab.

src — Aristide and Jordan, 2026-07-30. Implementation, ranking and the lead-aware coupling are cadmaster's.

The start/stop point is now a SAFETY decision — 2026-08-04

This item has always been about three things landing together: where the tab sits, where the pierce goes, and where the cut begins. A fourth has joined them, and it is the one with a machine behind it.

Measured across all four programs we hold, the dominant hazard is a rapid leaving a boundary and crossing the piece it has just cut — 30 of our 36 crossings, 76% of our risk, and 90–96% of the risk in the shop's own reordered files. That move is fixed by the end point of one boundary and the start point of the next, not by the cut order, so it belongs here. Jordan's ruling puts this lever first: optimise the start/stop point, and only detour the rapid (item 4e) where no safe start/stop point exists.

So the choice is now tab-aware, lead-aware AND exit-aware. The existing rule already tries flats in rank order and takes the first whose lead lands in scrap; the new term is whether the departure from that point can reach the next boundary without crossing the slug just made. Not built. Recorded here so the requirement is not discovered again later.

Can the tight pierces be eliminated? Measured, 2026-08-04

Jordan asked directly whether better routing could take the tight pierces to zero, and said the shop's own read is that on this file it cannot. That is answerable rather than debatable, so it was answered: pierce_headroom.py computes, for every boundary, the best clearance any start point could possibly get — the largest circle that fits in the scrap the pierce has to live in — and compares it with what the posted program actually achieves.

Of the 90 non-outer boundaries on the novi part, against the 0.150″ rule:

So Jordan is right, and now it is a number rather than an opinion: 100% elimination is impossible on this file. The part does not contain the room. That is not a defect in our routing and no amount of cleverness recovers it.

But 13 of those 46 we are making worse than we need to. On boundaries that can never reach 0.150 we still leave 10 to 25 thou of available clearance unused — BND55 and BND76 take 85.1 thou where 110.1 was there for the taking. CLAUDE.md already says what to do here: "take the point in the scrap furthest from any edge and list it in the report". We do neither. Taking the furthest point is a real improvement on 13 boundaries, and the reporting half is defect D5.

Method and caveat, so this can be re-run and argued with: headroom is the inscribed-circle radius of the boundary's interior, computed coarse-to-fine, assuming the pierce for every non-outer boundary sits inside it. It is an upper bound — it does not check that a lead can reach that point without crossing anything. So the impossible count of 46 is if anything an under-estimate. The outer profile pierces outside itself and is reported separately, not guessed at. python3 pierce_headroom.py <posted.nc> [target].

Superseded as a threshold (Jordan, 2026-08-28 — ruling): “If your .300 is coming from a rule rather than the table we gave you, then you need to drop the .300 and use the table moving forward.” The 0.300" figure was his worked example of where clear-air fails, never a constant — the governing numbers are the Rev2 row’s own columns (lead_in; Small Threshold for small inside contours). Clear-air remains the physical placement rule. No 0.300 literal exists in code (verified same day).