This commit is contained in:
2026-09-15 01:12:50 +08:00
parent 2db889ad89
commit 1a75503105
99 changed files with 4168 additions and 726 deletions
@@ -1082,6 +1082,58 @@ runner. No-op when <code class="paramref">targetDeps</code> has no matching tabl
<a id="Hi_NcParsers_SoftNcRunner_PopulateLegacyStrokeLimitsWhereUnset_" data-uid="Hi.NcParsers.SoftNcRunner.PopulateLegacyStrokeLimitsWhereUnset*"></a>
<h3 id="Hi_NcParsers_SoftNcRunner_PopulateLegacyStrokeLimitsWhereUnset_System_Xml_Linq_XElement_System_Collections_Generic_List_Hi_NcParsers_Dependencys_INcDependency__" data-uid="Hi.NcParsers.SoftNcRunner.PopulateLegacyStrokeLimitsWhereUnset(System.Xml.Linq.XElement,System.Collections.Generic.List{Hi.NcParsers.Dependencys.INcDependency})">
PopulateLegacyStrokeLimitsWhereUnset(XElement, List&lt;INcDependency&gt;)
</h3>
<div class="markdown level1 summary"><p>Fills the stroke limits a proxy-era project never wrote onto its
parameter table from the legacy <code>HardNcEnv</code> boxes
(<code>StrokeLimitXyz_mm</code> / <code>StrokeLimitAbc_deg</code>), one axis at a
time and only where the table carries neither end. The boxes are what
the machine-limits editor and the <code>stroke-limit-*</code> endpoints
wrote until 2026-09-14, while every SoftNc reader — the per-block
<a class="xref" href="Hi.NcParsers.Semantics.StrokeLimitCheckSemantic.html">StrokeLimitCheckSemantic</a>, the per-step check
and the tilt solves' travel preference — reads the table: a project
rebuilt through that API (CHEM20180926) declared its travel and had
no check at all. Non-finite ends are skipped (unbounded). Explicit
table rows always win. No-op without a table or a legacy element.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static List&lt;string&gt; PopulateLegacyStrokeLimitsWhereUnset(XElement ncEnvXml, List&lt;INcDependency&gt; targetDeps)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>ncEnvXml</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.xml.linq.xelement">XElement</a></dt>
<dd><p>The inner XML element of the legacy <code>HardNcEnv</code>.</p>
</dd>
<dt><code>targetDeps</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.generic.list-1">List</a>&lt;<a class="xref" href="Hi.NcParsers.Dependencys.INcDependency.html">INcDependency</a>&gt;</dt>
<dd><p>The proxy-resolved dependency list holding the parameter table.</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.generic.list-1">List</a>&lt;<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a>&gt;</dt>
<dd><p>The axes that were filled, in X…C order; empty when nothing changed.</p>
</dd>
</dl>
<a id="Hi_NcParsers_SoftNcRunner_Reg_" data-uid="Hi.NcParsers.SoftNcRunner.Reg*"></a>
<h3 id="Hi_NcParsers_SoftNcRunner_Reg_Hi_Common_XmlUtils_XFactory_" data-uid="Hi.NcParsers.SoftNcRunner.Reg(Hi.Common.XmlUtils.XFactory)">