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
@@ -246,7 +246,8 @@ its own for the rest — see <a href="#siemens-sinumerik">Siemens SINUMERIK</a>.
</table>
<p>Radius compensation is resolved against the blocks that actually travel in the compensation plane. A
block whose own words command no movement in that plane — a bare <code>G41</code> / <code>G42</code>, a comment, an empty
line, a Z-only plunge — takes no offset of its own and no part in a corner:</p>
line, a plunge along the plane normal (Z under G17) — takes no offset of its own and no part in a
corner:</p>
<ul>
<li><strong>Start-up waits for motion.</strong> A <code>G41</code> or <code>G42</code> block that does not move in the plane does not
start the offset; the first block that travels in the plane is the start-up block and takes the
@@ -254,8 +255,15 @@ perpendicular (type A) offset. The blocks between them carry the previous block'
so nothing moves on their account.</li>
<li><strong>Corners are resolved between travelling blocks.</strong> Wordless blocks sitting between two moves are
passed over, and the corner is the intersection of the two real segments. Running axes are the
in-plane part of each displacement, so a ramping move keeps its full offset and a Z-only plunge
stays on the offset line.</li>
in-plane part of each displacement, so a ramping move keeps its full offset and a plunge along
the plane normal stays on the offset line.</li>
<li><strong>The plane cannot change inside a region.</strong> <code>G17</code> / <code>G18</code> / <code>G19</code> selects the
compensation plane, and it may only be selected while compensation is cancelled. A plane
code that resolves to a different plane while <code>G41</code> / <code>G42</code> is active — including one
sharing its block with the <code>G40</code> that cancels the region — is reported as
<code>RadiusComp--PlaneChangeInRegion</code>, because the corner spanning the change would be built
from one running axis per plane. A control alarms there (Fanuc PS0037 CAN NOT CHANGE
PLANE IN CRC). Re-selecting the plane already in force is not a change and is accepted.</li>
<li><strong>A bare <code>G40</code> closes the region.</strong> The last compensated block ends on its own perpendicular
offset rather than turning toward the first uncompensated move after the cancel. A <code>G40</code> that
carries motion is the last corner's partner instead, and the compensated path meets the cancel