This commit is contained in:
2026-09-12 18:16:27 +08:00
parent b7f55aa631
commit 397a7a8cc4
96 changed files with 1167 additions and 1259 deletions
@@ -147,6 +147,14 @@ controller does with a table-side rotary program.</li>
<li><strong>The radius-compensation arc transient cache landed on the wrong block.</strong> Any non-motion line
between the corner and the arc orphaned the cache, so the arc lost its leading linear bridge and
began at the corner intersection instead of on the offset arc.</li>
<li><strong>Cutter radius compensation on G18 / G19 ran out of the plane.</strong> Both engines built the
perpendicular as <code>Z × axis</code> whatever plane was selected, so under G18 or G19 the whole offset went
one radius along the plane normal (a <code>G41</code> region in the ZX plane was displaced in Y), every arc of
the region reported <code>Arc-EndpointOffRadius</code>, and the <code>RadiusComp--Interference</code> gate could not fire
there. Both engines now take the perpendicular, the in-plane test for blocks without movement and
the interference gate from the selected plane: the offset lies in the plane, left/right is judged
looking down the plane's positive normal (the same convention that orients G02/G03), and the
diagnostics behave as on G17. G17 programs are unaffected.</li>
<li><strong>The G68.2 tool-axis IK fallback probed the mirrored tool axis.</strong> Both normal-only fallbacks in
<a class="xref" href="../../api/Hi.NcParsers.LogicSyntaxs.IsoG68p2TiltSyntax.html">IsoG68p2TiltSyntax</a> read the transposed third column instead of the
third row. On the no-hint path this only skewed a warning gate, but the explicit A/B/C path seeds