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 SpindleSpeedSyntax | HiAPI-C# 2025 ">
<meta name="description" content="Consumes S (spindle speed) and M03/M04/M05 (spindle direction) from . Both are modal — persist across blocks via backward node lookback. Writes resolved state to a section. Direction is converted from ISO M-codes to the conventional enum at this layer.">
<meta name="description" content="Consumes S (spindle speed) and spindle direction M-codes from . Both are modal — persist across blocks via backward node lookback. Writes resolved state to a section. Direction is converted from M-codes to the conventional enum at this layer. Direction M-codes: the ISO defaults M03 (CW) / M04 (CCW) / M05 (STOP) always apply; a machine that starts/stops its spindle with custom M-codes (e.g., ultrasonic M203/M205) declares them on an dependency (), which this syntax consults first — mapped flags are consumed like the ISO ones. Fallback: an S &amp;gt; 0 with no direction ever issued is contradictory (physics would silently never run). The build assumes CW and emits a one-shot SpindleDirection--AssumedCw validation warning — once is structural, not stateful: the stamped CW propagates modally, so later blocks no longer lack a direction. An explicit M05 (STOP) is a real direction and never triggers the fallback.">
<link rel="icon" href="../img/HiAPI.favicon.ico">
<link rel="stylesheet" href="../public/docfx.min.css">
<link rel="stylesheet" href="../public/main.css">
@@ -97,12 +97,28 @@ Class SpindleSpeedSyntax
<dl><dt>Assembly</dt><dd>HiMech.dll</dd></dl>
</div>
<div class="markdown summary"><p>Consumes S (spindle speed) and M03/M04/M05 (spindle direction)
<div class="markdown summary"><p>Consumes S (spindle speed) and spindle direction M-codes
from <a class="xref" href="Hi.NcParsers.Keywords.IParsingDef.html#Hi_NcParsers_Keywords_IParsingDef_Parsing">Parsing</a>.
Both are modal — persist across blocks via backward node lookback.
Writes resolved state to a <a class="xref" href="Hi.NcParsers.Keywords.ISpindleSpeedDef.html">ISpindleSpeedDef</a> section.
Direction is converted from ISO M-codes to the conventional
Direction is converted from M-codes to the conventional
<a class="xref" href="Hi.Numerical.SpindleDirection.html">SpindleDirection</a> enum at this layer.</p>
<p>
Direction M-codes: the ISO defaults M03 (CW) / M04 (CCW) / M05 (STOP)
always apply; a machine that starts/stops its spindle with custom
M-codes (e.g., ultrasonic <code>M203</code>/<code>M205</code>) declares them on an
<a class="xref" href="Hi.NcParsers.Dependencys.ISpindleControlConfig.html">ISpindleControlConfig</a> dependency
(<a class="xref" href="Hi.NcParsers.Dependencys.ControllerParameterTableBase.html">ControllerParameterTableBase</a>), which this
syntax consults first — mapped flags are consumed like the ISO ones.
</p>
<p>
Fallback: an S &gt; 0 with no direction ever issued is contradictory
(physics would silently never run). The build assumes CW and emits a
one-shot <code>SpindleDirection--AssumedCw</code> validation warning — once is
structural, not stateful: the stamped CW propagates modally, so later
blocks no longer lack a direction. An explicit M05 (STOP) is a real
direction and never triggers the fallback.
</p>
</div>
<div class="markdown conceptual"></div>
@@ -208,6 +224,24 @@ bidirectional round-tripping; downstream consumers gate on
<pre><code class="lang-csharp">{ "Parsing": { "Flags": ["M05"] } }</code></pre>
<p>#AfterBuild:</p>
<pre><code class="lang-csharp">{ "SpindleSpeed": { "SpindleSpeed_rpm": 1500, "Direction": "STOP" } }</code></pre>
<p>Custom direction M-code (test hardcodes an
<a class="xref" href="Hi.NcParsers.Dependencys.ISpindleControlConfig.html">ISpindleControlConfig</a> dependency mapping M203 → CW) —
the mapped flag is consumed exactly like an ISO one:
#BeforeBuild:</p>
<pre><code class="lang-csharp">{ "Parsing": { "Flags": ["M203"], "S": 1670 } }</code></pre>
<p>#AfterBuild:</p>
<pre><code class="lang-csharp">{ "SpindleSpeed": { "SpindleSpeed_rpm": 1670, "Direction": "CW" } }</code></pre>
<p>S with no direction ever issued — fallback assumes CW (and emits the
one-shot <code>SpindleDirection&ndash;AssumedCw</code> validation warning):
#BeforeBuild:</p>
<pre><code class="lang-csharp">{ "Parsing": { "S": 1670 } }</code></pre>
<p>#AfterBuild:</p>
<pre><code class="lang-csharp">{ "SpindleSpeed": { "SpindleSpeed_rpm": 1670, "Direction": "CW" } }</code></pre>
<p>Explicit M05 alongside S — a real direction, fallback must not fire:
#BeforeBuild:</p>
<pre><code class="lang-csharp">{ "Parsing": { "Flags": ["M05"], "S": 500 } }</code></pre>
<p>#AfterBuild:</p>
<pre><code class="lang-csharp">{ "SpindleSpeed": { "SpindleSpeed_rpm": 500, "Direction": "STOP" } }</code></pre>