fix bug of cubetree init SAT and triangles-tip-cube-corner margin case.

This commit is contained in:
2026-03-25 12:40:37 +08:00
parent ff2cfa6210
commit 8aa17a0280
58 changed files with 1123 additions and 986 deletions
@@ -184,8 +184,11 @@ Note that the <a class="xref" href="Hi.NcParsers.ParsingSyntaxs.ParameterizedFla
<h2 id="Hi_NcParsers_ParsingSyntaxs_ParameterizedFlagSyntax_remarks">Remarks</h2>
<div class="markdown level0 remarks"><p>Examples:</p>
<ul><li>G54.1P1 → {"G54.1": {"P": "1"}}</li><li>G10L2P1 → {"G10": {"L": "2", "P": "1"}}</li><li>G54.1P#1 → {"G54.1": {"P": "#1"}} (Fanuc variable)</li><li>G54.1PQ1 → {"G54.1": {"P": "Q1"}} (Heidenhain variable)</li></ul>
<div class="markdown level0 remarks"><p>Parameters can be stored as typed values via <a class="xref" href="Hi.NcParsers.ParsingSyntaxs.ParameterizedFlagSyntax.html#Hi_NcParsers_ParsingSyntaxs_ParameterizedFlagSyntax_FloatParamPrefixes">FloatParamPrefixes</a>
and <a class="xref" href="Hi.NcParsers.ParsingSyntaxs.ParameterizedFlagSyntax.html#Hi_NcParsers_ParsingSyntaxs_ParameterizedFlagSyntax_IntParamPrefixes">IntParamPrefixes</a> (set via property initializer):</p>
<ul><li><a class="xref" href="Hi.NcParsers.ParsingSyntaxs.ParameterizedFlagSyntax.html#Hi_NcParsers_ParsingSyntaxs_ParameterizedFlagSyntax_ParamPrefixes">ParamPrefixes</a> — stored as string (text, for variables like #1, Q2)</li><li><a class="xref" href="Hi.NcParsers.ParsingSyntaxs.ParameterizedFlagSyntax.html#Hi_NcParsers_ParsingSyntaxs_ParameterizedFlagSyntax_FloatParamPrefixes">FloatParamPrefixes</a> — stored as <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a> when parseable, string otherwise</li><li><a class="xref" href="Hi.NcParsers.ParsingSyntaxs.ParameterizedFlagSyntax.html#Hi_NcParsers_ParsingSyntaxs_ParameterizedFlagSyntax_IntParamPrefixes">IntParamPrefixes</a> — stored as <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int32">int</a> when parseable, string otherwise</li></ul>
Examples:
<ul><li>G54.1P1 → {"G54.1": {"P": "1"}} (text)</li><li>G68.2 X0 I180 → {"G68.2": {"X": 0.0, "I": 180.0}} (float via property initializer)</li><li>G54.1P#1 → {"G54.1": {"P": "#1"}} (Fanuc variable, kept as string)</li><li>G54.1PQ1 → {"G54.1": {"P": "Q1"}} (Heidenhain variable)</li></ul>
</div>
@@ -200,7 +203,9 @@ Note that the <a class="xref" href="Hi.NcParsers.ParsingSyntaxs.ParameterizedFla
</h3>
<div class="markdown level1 summary"><p>Creates a new ParameterizedFlagSyntax instance.</p>
<div class="markdown level1 summary"><p>Creates a new ParameterizedFlagSyntax instance.
Use property initializers for <a class="xref" href="Hi.NcParsers.ParsingSyntaxs.ParameterizedFlagSyntax.html#Hi_NcParsers_ParsingSyntaxs_ParameterizedFlagSyntax_FloatParamPrefixes">FloatParamPrefixes</a> and
<a class="xref" href="Hi.NcParsers.ParsingSyntaxs.ParameterizedFlagSyntax.html#Hi_NcParsers_ParsingSyntaxs_ParameterizedFlagSyntax_IntParamPrefixes">IntParamPrefixes</a> to enable typed parameter storage.</p>
</div>
<div class="markdown level1 conceptual"></div>
@@ -337,6 +342,74 @@ Note that the <a class="xref" href="Hi.NcParsers.ParsingSyntaxs.ParameterizedFla
<a id="Hi_NcParsers_ParsingSyntaxs_ParameterizedFlagSyntax_FloatParamPrefixes_" data-uid="Hi.NcParsers.ParsingSyntaxs.ParameterizedFlagSyntax.FloatParamPrefixes*"></a>
<h3 id="Hi_NcParsers_ParsingSyntaxs_ParameterizedFlagSyntax_FloatParamPrefixes" data-uid="Hi.NcParsers.ParsingSyntaxs.ParameterizedFlagSyntax.FloatParamPrefixes">
FloatParamPrefixes
</h3>
<div class="markdown level1 summary"><p>Parameter prefixes stored as <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a> when parseable,
string otherwise (for variable references).
Set via property initializer for typed G-code parameters.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public List&lt;string&gt; FloatParamPrefixes { 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.collections.generic.list-1">List</a>&lt;<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a>&gt;</dt>
<dd></dd>
</dl>
<a id="Hi_NcParsers_ParsingSyntaxs_ParameterizedFlagSyntax_IntParamPrefixes_" data-uid="Hi.NcParsers.ParsingSyntaxs.ParameterizedFlagSyntax.IntParamPrefixes*"></a>
<h3 id="Hi_NcParsers_ParsingSyntaxs_ParameterizedFlagSyntax_IntParamPrefixes" data-uid="Hi.NcParsers.ParsingSyntaxs.ParameterizedFlagSyntax.IntParamPrefixes">
IntParamPrefixes
</h3>
<div class="markdown level1 summary"><p>Parameter prefixes stored as <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int32">int</a> when parseable,
string otherwise (for variable references).
Set via property initializer for typed G-code parameters.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public List&lt;string&gt; IntParamPrefixes { 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.collections.generic.list-1">List</a>&lt;<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a>&gt;</dt>
<dd></dd>
</dl>
<a id="Hi_NcParsers_ParsingSyntaxs_ParameterizedFlagSyntax_Name_" data-uid="Hi.NcParsers.ParsingSyntaxs.ParameterizedFlagSyntax.Name*"></a>
<h3 id="Hi_NcParsers_ParsingSyntaxs_ParameterizedFlagSyntax_Name" data-uid="Hi.NcParsers.ParsingSyntaxs.ParameterizedFlagSyntax.Name">
@@ -375,7 +448,7 @@ Note that the <a class="xref" href="Hi.NcParsers.ParsingSyntaxs.ParameterizedFla
</h3>
<div class="markdown level1 summary"><p>Parameter prefixes to extract (e.g., [&ldquo;P&rdquo;, &ldquo;L&rdquo;, &ldquo;H&rdquo;]).
<div class="markdown level1 summary"><p>Parameter prefixes to extract as text string (e.g., [&ldquo;P&rdquo;, &ldquo;L&rdquo;, &ldquo;H&rdquo;]).
Multiple parameters can be attached to one code.</p>
</div>
<div class="markdown level1 conceptual"></div>