fix SoftNcRunner GM code normalization.

This commit is contained in:
2026-05-06 13:21:19 +08:00
parent 0fe9497552
commit 2f57932000
1238 changed files with 69405 additions and 22511 deletions
@@ -151,51 +151,26 @@ Heidenhain equivalent: TOOL CALL / M128/M129 (handled by separate syntax).
<h2 id="Hi_NcParsers_Keywords_IToolHeightCompensationDef_examples">Examples</h2>
<pre><code class="lang-csharp">"ToolHeightCompensation": {
"Offset_mm": 99.98,
"Mode": "G43",
"Term": "G43",
"OffsetId": 1
}</code></pre>
<h2 id="Hi_NcParsers_Keywords_IToolHeightCompensationDef_remarks">Remarks</h2>
<div class="markdown level0 remarks"><p>RTCP-rotary-dynamic state (whether the per-step MC path is non-linear
while CL is commanded linearly) is signalled by a
<a class="xref" href="Hi.NcParsers.Syntaxs.TransformationUtil.html#Hi_NcParsers_Syntaxs_TransformationUtil_KindDynamic">KindDynamic</a> entry in the
<a class="xref" href="Hi.NcParsers.Keywords.ITransformationDef.html#Hi_NcParsers_Keywords_ITransformationDef_ProgramToMcTransform">ProgramToMcTransform</a> chain rather than
by a flag on this section, so consumers detect it via
<a class="xref" href="Hi.NcParsers.Syntaxs.TransformationUtil.html#Hi_NcParsers_Syntaxs_TransformationUtil_HasDynamicEntry_System_Text_Json_Nodes_JsonObject_">HasDynamicEntry(JsonObject)</a> without needing
brand-specific strings.</p>
</div>
<h2 class="section" id="properties">Properties
</h2>
<a id="Hi_NcParsers_Keywords_IToolHeightCompensationDef_Mode_" data-uid="Hi.NcParsers.Keywords.IToolHeightCompensationDef.Mode*"></a>
<h3 id="Hi_NcParsers_Keywords_IToolHeightCompensationDef_Mode" data-uid="Hi.NcParsers.Keywords.IToolHeightCompensationDef.Mode">
Mode
</h3>
<div class="markdown level1 summary"><p>Active G-code mode: &ldquo;G43&rdquo;, &ldquo;G43.4&rdquo;, &ldquo;G44&rdquo;, &ldquo;G49&rdquo;.
Brand-specific syntaxes may write equivalent mode strings
(e.g., &ldquo;TRAORI&rdquo; for Siemens, &ldquo;M128&rdquo; for Heidenhain).</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">string Mode { get; set; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd></dd>
</dl>
<a id="Hi_NcParsers_Keywords_IToolHeightCompensationDef_OffsetId_" data-uid="Hi.NcParsers.Keywords.IToolHeightCompensationDef.OffsetId*"></a>
<h3 id="Hi_NcParsers_Keywords_IToolHeightCompensationDef_OffsetId" data-uid="Hi.NcParsers.Keywords.IToolHeightCompensationDef.OffsetId">
@@ -238,10 +213,10 @@ see <a class="xref" href="Hi.NcParsers.Dependencys.Siemens.ISiemensToolOffsetCon
</h3>
<div class="markdown level1 summary"><p>Derived effective tool height compensation in mm.
Computed from <a class="xref" href="Hi.NcParsers.Keywords.IToolHeightCompensationDef.html#Hi_NcParsers_Keywords_IToolHeightCompensationDef_Mode">Mode</a> and <a class="xref" href="Hi.NcParsers.Keywords.IToolHeightCompensationDef.html#Hi_NcParsers_Keywords_IToolHeightCompensationDef_OffsetId">OffsetId</a>:
Computed from <a class="xref" href="Hi.NcParsers.Keywords.IToolHeightCompensationDef.html#Hi_NcParsers_Keywords_IToolHeightCompensationDef_Term">Term</a> and <a class="xref" href="Hi.NcParsers.Keywords.IToolHeightCompensationDef.html#Hi_NcParsers_Keywords_IToolHeightCompensationDef_OffsetId">OffsetId</a>:
looks up the offset table for <a class="xref" href="Hi.NcParsers.Keywords.IToolHeightCompensationDef.html#Hi_NcParsers_Keywords_IToolHeightCompensationDef_OffsetId">OffsetId</a>,
obtains the effective height (geometry minus wear),
then applies sign from <a class="xref" href="Hi.NcParsers.Keywords.IToolHeightCompensationDef.html#Hi_NcParsers_Keywords_IToolHeightCompensationDef_Mode">Mode</a>
then applies sign from <a class="xref" href="Hi.NcParsers.Keywords.IToolHeightCompensationDef.html#Hi_NcParsers_Keywords_IToolHeightCompensationDef_Term">Term</a>
(positive for G43/G43.4, negative for G44, zero for G49).</p>
</div>
<div class="markdown level1 conceptual"></div>
@@ -267,6 +242,40 @@ then applies sign from <a class="xref" href="Hi.NcParsers.Keywords.IToolHeightCo
<a id="Hi_NcParsers_Keywords_IToolHeightCompensationDef_Term_" data-uid="Hi.NcParsers.Keywords.IToolHeightCompensationDef.Term*"></a>
<h3 id="Hi_NcParsers_Keywords_IToolHeightCompensationDef_Term" data-uid="Hi.NcParsers.Keywords.IToolHeightCompensationDef.Term">
Term
</h3>
<div class="markdown level1 summary"><p>CNC term for tool height compensation: &ldquo;G43&rdquo;, &ldquo;G43.4&rdquo;, &ldquo;G44&rdquo;, &ldquo;G49&rdquo;.
Brand-specific syntaxes may write equivalent terms
(e.g., &ldquo;TRAORI&rdquo; for Siemens, &ldquo;M128&rdquo; for Heidenhain).</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">string Term { get; set; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd></dd>
</dl>
</article>