deploy webservice static-file routing for docsite folder URLs, per-instance step-cache db, and constant-height panel title bars.

This commit is contained in:
2026-08-27 14:51:37 +08:00
parent 1fc510af5e
commit 2a98ae7556
1468 changed files with 182837 additions and 18888 deletions
@@ -6,7 +6,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Class UnitModeSyntax | HiAPI-C# 2025 ">
<meta name="description" content="Detects the unit-system code (ISO Group 06: G20 inch / G21 metric) from and writes a section (, ). Modal — absence of an explicit flag inherits the previous block&#39;s unit, defaulting to at program start. The HiNC pipeline works exclusively in millimetres. When is detected this syntax emits an Unit--InchNotSupported Unsupported Error so upstream callers are forced to pre-convert the NC program to metric. is accepted as a no-op confirmation of the default.">
<meta name="description" content="Detects the unit-system code (ISO Group 06: G20 inch / G21 metric) from and writes a section (, ). Modal — absence of an explicit flag inherits the previous block&#39;s unit, defaulting to at program start. The code vocabulary is configurable per brand: / default to ISO G20 / G21; the Siemens preset uses G70+G700 / G710+G71 instead (G70/G71 switch geometry-word interpretation only, G700/G710 also switch feedrate interpretation — a distinction preserved via the verbatim but irrelevant to this record-only syntax; both inch variants warn identically). The first entry doubles as the program-start default Term. Note Siemens G70/G71 must never be added to ISO/Fanuc presets — on Fanuc lathes the same codes are finishing/roughing cycles (same collision family as the documented Siemens G74 exclusion). The HiNC pipeline works exclusively in millimetres. When an inch code is detected this syntax emits an Unit--InchNotSupported Unsupported Error so upstream callers are forced to pre-convert the NC program to metric — while still recording what the program said. Metric codes are accepted as no-op confirmations of the default.">
<link rel="icon" href="../img/HiAPI.favicon.ico">
<link rel="stylesheet" href="../public/docfx.min.css">
<link rel="stylesheet" href="../public/main.css">
@@ -103,12 +103,24 @@ section (<a class="xref" href="Hi.NcParsers.Keywords.IUnitDef.html#Hi_NcParsers_
Modal — absence of an explicit flag inherits the previous block's
unit, defaulting to <a class="xref" href="Hi.NcParsers.Keywords.Unit.html#Hi_NcParsers_Keywords_Unit_Metric">Metric</a> at program start.</p>
<p>
The HiNC pipeline works exclusively in millimetres. When
<a class="xref" href="Hi.NcParsers.Keywords.Generic.IsoKeywords.html#Hi_NcParsers_Keywords_Generic_IsoKeywords_G20">G20</a> is detected this syntax emits an
<code>Unit--InchNotSupported</code> Unsupported Error so upstream callers
are forced to pre-convert the NC program to metric.
<a class="xref" href="Hi.NcParsers.Keywords.Generic.IsoKeywords.html#Hi_NcParsers_Keywords_Generic_IsoKeywords_G21">G21</a> is accepted as a no-op confirmation of
the default.
The code vocabulary is configurable per brand: <a class="xref" href="Hi.NcParsers.LogicSyntaxs.UnitModeSyntax.html#Hi_NcParsers_LogicSyntaxs_UnitModeSyntax_InchCodes">InchCodes</a>
/ <a class="xref" href="Hi.NcParsers.LogicSyntaxs.UnitModeSyntax.html#Hi_NcParsers_LogicSyntaxs_UnitModeSyntax_MetricCodes">MetricCodes</a> default to ISO G20 / G21; the Siemens
preset uses G70+G700 / G710+G71 instead (G70/G71 switch geometry-word
interpretation only, G700/G710 also switch feedrate interpretation —
a distinction preserved via the verbatim <a class="xref" href="Hi.NcParsers.Keywords.IUnitDef.html#Hi_NcParsers_Keywords_IUnitDef_Term">Term</a>
but irrelevant to this record-only syntax; both inch variants warn
identically). The first <a class="xref" href="Hi.NcParsers.LogicSyntaxs.UnitModeSyntax.html#Hi_NcParsers_LogicSyntaxs_UnitModeSyntax_MetricCodes">MetricCodes</a> entry doubles as the
program-start default <code>Term</code>. Note Siemens G70/G71 must never be
added to ISO/Fanuc presets — on Fanuc lathes the same codes are
finishing/roughing cycles (same collision family as the documented
Siemens G74 exclusion).
</p>
<p>
The HiNC pipeline works exclusively in millimetres. When an inch code
is detected this syntax emits an <code>Unit--InchNotSupported</code>
Unsupported Error so upstream callers are forced to pre-convert the
NC program to metric — while still recording what the program said.
Metric codes are accepted as no-op confirmations of the default.
</p>
</div>
<div class="markdown conceptual"></div>
@@ -209,6 +221,37 @@ the default.
"Parsing": { "Flags": ["M03"] },
"Unit": { "Term": "G21", "System": "Metric" }
}</code></pre>
<p>Siemens metric confirmation (SUT configured with
<code>InchCodes = [&ldquo;G70&rdquo;, &ldquo;G700&rdquo;]</code>,
<code>MetricCodes = [&ldquo;G710&rdquo;, &ldquo;G71&rdquo;]</code>) — corpus header shape
<code>N1 G40 G17 G710 G94 G90 G64</code> reduced to the unit flag; the
verbatim code is recorded as <code>Term</code>, unrelated flags stay:
#BeforeBuild:</p>
<pre><code class="lang-csharp">{ "Parsing": { "Flags": ["G40", "G710", "G90"] } }</code></pre>
<p>#AfterBuild:</p>
<pre><code class="lang-csharp">{
"Parsing": { "Flags": ["G40", "G90"] },
"Unit": { "Term": "G710", "System": "Metric" }
}</code></pre>
<p>Siemens inch code — recorded faithfully as <code>Inch</code> despite the
<code>Unit&ndash;InchNotSupported</code> diagnostic (record what the program
said, warn, don't silently coerce):
#BeforeBuild:</p>
<pre><code class="lang-csharp">{ "Parsing": { "Flags": ["G700"] } }</code></pre>
<p>#AfterBuild:</p>
<pre><code class="lang-csharp">{ "Unit": { "Term": "G700", "System": "Inch" } }</code></pre>
<p>Siemens no-flag block — modal inherit from the previous block's
section; program-start default would be the first
<a class="xref" href="Hi.NcParsers.LogicSyntaxs.UnitModeSyntax.html#Hi_NcParsers_LogicSyntaxs_UnitModeSyntax_MetricCodes">MetricCodes</a> entry:
#Previous:</p>
<pre><code class="lang-csharp">{ "Unit": { "Term": "G710", "System": "Metric" } }</code></pre>
<p>#BeforeBuild:</p>
<pre><code class="lang-csharp">{ "Parsing": { "X": 10 } }</code></pre>
<p>#AfterBuild:</p>
<pre><code class="lang-csharp">{
"Parsing": { "X": 10 },
"Unit": { "Term": "G710", "System": "Metric" }
}</code></pre>
@@ -313,6 +356,74 @@ the default.
<a id="Hi_NcParsers_LogicSyntaxs_UnitModeSyntax_InchCodes_" data-uid="Hi.NcParsers.LogicSyntaxs.UnitModeSyntax.InchCodes*"></a>
<h3 id="Hi_NcParsers_LogicSyntaxs_UnitModeSyntax_InchCodes" data-uid="Hi.NcParsers.LogicSyntaxs.UnitModeSyntax.InchCodes">
InchCodes
</h3>
<div class="markdown level1 summary"><p>Codes that select the inch input system; each detection emits
<code>Unit&ndash;InchNotSupported</code>. Defaults to ISO G20; the Siemens
preset uses G70 + G700.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public List&lt;string&gt; InchCodes { 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_LogicSyntaxs_UnitModeSyntax_MetricCodes_" data-uid="Hi.NcParsers.LogicSyntaxs.UnitModeSyntax.MetricCodes*"></a>
<h3 id="Hi_NcParsers_LogicSyntaxs_UnitModeSyntax_MetricCodes" data-uid="Hi.NcParsers.LogicSyntaxs.UnitModeSyntax.MetricCodes">
MetricCodes
</h3>
<div class="markdown level1 summary"><p>Codes that select the metric input system. Defaults to ISO G21; the
Siemens preset uses G710 + G71. The first entry doubles as the
program-start default <a class="xref" href="Hi.NcParsers.Keywords.IUnitDef.html#Hi_NcParsers_Keywords_IUnitDef_Term">Term</a>.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public List&lt;string&gt; MetricCodes { 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_LogicSyntaxs_UnitModeSyntax_Name_" data-uid="Hi.NcParsers.LogicSyntaxs.UnitModeSyntax.Name*"></a>
<h3 id="Hi_NcParsers_LogicSyntaxs_UnitModeSyntax_Name" data-uid="Hi.NcParsers.LogicSyntaxs.UnitModeSyntax.Name">