This commit is contained in:
2026-09-09 18:06:21 +08:00
parent 161af68fe3
commit 45b9f9ed5d
79 changed files with 1167 additions and 1532 deletions
@@ -353,6 +353,36 @@ flag (no parameter object to hang an H on):
}
]
}</code></pre>
The first block after a program end — <code>#Previous:</code> carries the
<code>ProgramEnd</code> section next to the still-active G43.4, and the
block itself swings a rotary axis (as a post-M02 <code>G0 A90.</code> does
when a CAM file chains several programs). This is the reset edge
(<a class="xref" href="Hi.NcParsers.LogicSyntaxs.ProgramEndSyntax.html">ProgramEndSyntax</a>): the controller's reset cancels
tool-center-point control, so the modal is <b>not</b> carried, no
<code>Dynamic</code> entry is written (the swing stays a plain McLinear
rotary move instead of pinning the tool tip), and the block gets the
G49 sentinel with the identity Mat4d — <a class="xref" href="Hi.NcParsers.LogicSyntaxs.ToolHeightOffsetSyntax.html">ToolHeightOffsetSyntax</a>
skipped this block because the previous term was not ISO:
#Previous:
<pre><code class="lang-csharp">{
"ProgramEnd": { "Term": "M02" },
"MachineCoordinateState": { "X": 0, "Y": 0, "Z": 0, "A": 0, "B": 0 },
"ToolHeightCompensation": { "Offset_mm": 10, "Term": "G43.4", "OffsetId": 1 }
}</code></pre>
#BeforeBuild:
<pre><code class="lang-csharp">{ "MachineCoordinateState": { "A": 90, "B": 0 } }</code></pre>
#AfterBuild:
<pre><code class="lang-csharp">{
"MachineCoordinateState": { "A": 90, "B": 0 },
"ToolHeightCompensation": { "Offset_mm": 0, "Term": "G49", "OffsetId": 0 },
"ProgramToMcTransform": [
{
"Source": "ToolHeightCompensation",
"Kind": "Static",
"Mat4d": [1,0,0,0, 0,1,0,0, 0,0,1,0, 0,0,0,1]
}
]
}</code></pre>