This commit is contained in:
2026-09-09 17:35:23 +08:00
parent 2a98ae7556
commit 161af68fe3
1271 changed files with 58251 additions and 98639 deletions
@@ -6,7 +6,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Class FanucPathSmoothingSyntax | HiAPI-C# 2025 ">
<meta name="description" content="Consumes Fanuc G05.1 (high-precision contour / AICC II / Nano Smoothing) and records the modal state in the JSON section using the schema. Q1 enables, Q0 disables; the optional R{n} precision-level is preserved as . The simulation does not alter the tool path — this is a controller-internal interpolation black box; the captured state exists for bidirectional NC-text reconstruction. Modal carry to subsequent blocks is handled by , which already tracks the PathSmoothing section key and deep-clones it forward.">
<meta name="description" content="Consumes Fanuc G05.1 (high-precision contour / AICC II / Nano Smoothing) and records the modal state in the JSON section using the schema. Q1 enables, Q0 disables; the optional R{n} precision-level is preserved as . The simulation does not alter the tool path — this is a controller-internal interpolation black box; the captured state exists for bidirectional NC-text reconstruction. Modal carry to subsequent blocks is handled by , which already tracks the PathSmoothing section key and deep-clones it forward. Also consumes the bare G05 P{n} HPCC family (captured by ) into the block-local section — recognized, intentionally not simulated (the pattern). Ignoring P10000/P0 is safe offline; an ignored high-speed cycle machining call (P10001–P10999) means the simulation misses that machining, surfaced as a Warning. See for the P function-selection semantics. The section is deliberately separate from the modal PathSmoothing section and is not modal-carried.">
<link rel="icon" href="../img/HiAPI.favicon.ico">
<link rel="stylesheet" href="../public/docfx.min.css">
<link rel="stylesheet" href="../public/main.css">
@@ -109,6 +109,18 @@ Modal carry to subsequent blocks is handled by
<a class="xref" href="Hi.NcParsers.PostLogicSyntaxs.ModalCarrySyntax.html">ModalCarrySyntax</a>, which already tracks the
<code>PathSmoothing</code> section key and deep-clones it forward.
</p>
<p>
Also consumes the bare <code>G05 P{n}</code> HPCC family (captured by
<a class="xref" href="Hi.NcParsers.Syntaxs.FanucSyntaxUtil.html#Hi_NcParsers_Syntaxs_FanucSyntaxUtil_G05Syntax">G05Syntax</a>) into the block-local
<a class="xref" href="Hi.NcParsers.Keywords.FanucHpcc.html">FanucHpcc</a> section — recognized, intentionally not
simulated (the <a class="xref" href="Hi.NcParsers.LogicSyntaxs.Siemens.SiemensStopreSyntax.html">SiemensStopreSyntax</a> pattern).
Ignoring P10000/P0 is safe offline; an ignored high-speed cycle
machining call (P10001–P10999) means the simulation misses that
machining, surfaced as a Warning. See <a class="xref" href="Hi.NcParsers.Keywords.IFanucHpccDef.html">IFanucHpccDef</a> for
the P function-selection semantics. The section is deliberately
separate from the modal <code>PathSmoothing</code> section and is not
modal-carried.
</p>
</div>
<div class="markdown conceptual"></div>
@@ -220,6 +232,37 @@ when enabling):
<pre><code class="lang-csharp">{ "Parsing": { "G05.1": { "Q": 0 } } }</code></pre>
<p>#AfterBuild:</p>
<pre><code class="lang-csharp">{ "PathSmoothing": { "IsEnabled": false, "Term": "G05.1" } }</code></pre>
<p>Bare G05 P10000 — enters HPCC; consumed into the block-local
<code>FanucHpcc</code> section, the modal <code>PathSmoothing</code> section is
not touched:
#Previous:</p>
<pre><code class="lang-csharp">{ "PathSmoothing": { "IsEnabled": false, "Term": "G05.1" } }</code></pre>
<p>#BeforeBuild:</p>
<pre><code class="lang-csharp">{ "Parsing": { "G05": { "P": 10000 } } }</code></pre>
<p>#AfterBuild:</p>
<pre><code class="lang-csharp">{ "FanucHpcc": { "Term": "G05", "IsEnabled": true, "FunctionCode": 10000 } }</code></pre>
<p>G05 P0 — cancels HPCC; consumed silently (cancelling a no-op warrants
no message):
#Previous:</p>
<pre><code class="lang-csharp">{ "PathSmoothing": { "IsEnabled": false, "Term": "G05.1" } }</code></pre>
<p>#BeforeBuild:</p>
<pre><code class="lang-csharp">{ "Parsing": { "G05": { "P": 0 } } }</code></pre>
<p>#AfterBuild:</p>
<pre><code class="lang-csharp">{ "FanucHpcc": { "Term": "G05", "IsEnabled": false, "FunctionCode": 0 } }</code></pre>
<p>G5 spelling alias — <code>Term</code> keeps the source spelling:
#Previous:</p>
<pre><code class="lang-csharp">{ "PathSmoothing": { "IsEnabled": false, "Term": "G05.1" } }</code></pre>
<p>#BeforeBuild:</p>
<pre><code class="lang-csharp">{ "Parsing": { "G5": { "P": 10000 } } }</code></pre>
<p>#AfterBuild:</p>
<pre><code class="lang-csharp">{ "FanucHpcc": { "Term": "G5", "IsEnabled": true, "FunctionCode": 10000 } }</code></pre>
<p>G05 P10000 on the very first block (no <code>#Previous:</code>) — the HPCC
consumption runs ahead of the first-block early return, which then
still stamps the default disabled <code>PathSmoothing</code> section:
#BeforeBuild:</p>
<pre><code class="lang-csharp">{ "Parsing": { "G05": { "P": 10000 } } }</code></pre>
<p>#AfterBuild:</p>
<pre><code class="lang-csharp">{ "FanucHpcc": { "Term": "G05", "IsEnabled": true, "FunctionCode": 10000 }, "PathSmoothing": { "IsEnabled": false, "Term": "G05.1" } }</code></pre>