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
@@ -192,6 +192,88 @@ replaced with a <a class="xref" href="Hi.NcParsers.Keywords.CompoundMotion.html"
</dd></dl>
<h2 id="Hi_NcParsers_PostLogicSyntaxs_RadiusCompensationSyntax_examples">Examples</h2>
<p>Cartesian G41 begin block (tool radius 5 via the D1 offset row): no
intersection — the position offsets perpendicular to the segment,
left of travel (+X move → +Y), and the compensated machine
coordinate plus the motion-section MotionProgramXyz are written:
#Previous:</p>
<pre><code class="lang-csharp">{ "MachineCoordinateState": { "X": 0, "Y": 0, "Z": 0 } }</code></pre>
<p>#BeforeBuild:</p>
<pre><code class="lang-csharp">{
"Parsing": { "G41": { "D": 1 } },
"ProgramXyz": { "X": 10, "Y": 0, "Z": 0 },
"MotionEvent": { "Form": "McLinear" }
}</code></pre>
<p>#AfterBuild:</p>
<pre><code class="lang-csharp">{
"ProgramXyz": { "X": 10, "Y": 0, "Z": 0 },
"MotionEvent": { "Form": "McLinear", "MotionProgramXyz": { "X": 10, "Y": 5, "Z": 0 } },
"RadiusCompensation": { "Side": "Left", "Term": "G41", "OffsetId": 1, "Radius_mm": 5 },
"MachineCoordinateState": { "X": 10, "Y": 5, "Z": 0 }
}</code></pre>
<p>Polar continuation with parallel rays (the G12.1 branch): the
compensated central position offsets left of the +C travel
(−5 on the radius axis), <code>ProgramPolarRxcz</code> stays NOMINAL, and
the machine coordinate is re-derived from the compensated central —
radius √(35²+20²), C chained from the previous (compensated) angle:
#Previous:</p>
<pre><code class="lang-csharp">{
"PolarInterpolationState": { "Dir": "XC", "InitRxcz": { "X": 0, "Y": 0, "Z": 0 } },
"ProgramPolarRxcz": { "X": 40, "Y": 10, "Z": 0 },
"RadiusCompensation": { "Side": "Left", "Term": "G41", "OffsetId": 1, "Radius_mm": 5 },
"CompensatedCentral": { "X": 35, "Y": 10, "Z": 0 },
"MachineCoordinateState": { "C": 15.945395900922854, "X": 36.40054944640259, "Y": 0, "Z": 0 }
}</code></pre>
<p>#BeforeBuild:</p>
<pre><code class="lang-csharp">{
"PolarInterpolationState": { "Dir": "XC", "InitRxcz": { "X": 0, "Y": 0, "Z": 0 } },
"ProgramPolarRxcz": { "X": 40, "Y": 20, "Z": 0 },
"ProgramXyz": { "X": 44.721359549995796, "Y": 0, "Z": 0 },
"MachineCoordinateState": { "C": 26.565051177077986, "X": 44.721359549995796, "Y": 0, "Z": 0 },
"MotionState": { "Term": "G01" },
"MotionEvent": { "Form": "McPolarLinear" }
}</code></pre>
<p>#AfterBuild:</p>
<pre><code class="lang-csharp">{
"PolarInterpolationState": { "Dir": "XC", "InitRxcz": { "X": 0, "Y": 0, "Z": 0 } },
"ProgramPolarRxcz": { "X": 40, "Y": 20, "Z": 0 },
"ProgramXyz": { "X": 44.721359549995796, "Y": 0, "Z": 0 },
"MachineCoordinateState": { "C": 29.744881296942225, "X": 40.311288741492746, "Y": 0, "Z": 0 },
"MotionState": { "Term": "G01" },
"MotionEvent": { "Form": "McPolarLinear" },
"RadiusCompensation": { "Side": "Left", "Term": "G41", "OffsetId": 1, "Radius_mm": 5 },
"CompensatedCentral": { "X": 35, "Y": 20, "Z": 0 }
}</code></pre>
<p>A bare G40 inside polar mode inherits the previous block's
(compensated) machine coordinate — the Cartesian McLinear on it is
the modal fallthrough, not real motion, so it counts as bare:
#Previous:</p>
<pre><code class="lang-csharp">{
"PolarInterpolationState": { "Dir": "XC", "InitRxcz": { "X": 0, "Y": 0, "Z": 0 } },
"ProgramPolarRxcz": { "X": 40, "Y": 20, "Z": 0 },
"RadiusCompensation": { "Side": "Left", "Term": "G41", "OffsetId": 1, "Radius_mm": 5 },
"MachineCoordinateState": { "C": 29.744881296942225, "X": 40.311288741492746, "Y": 0, "Z": 0 }
}</code></pre>
<p>#BeforeBuild:</p>
<pre><code class="lang-csharp">{
"Parsing": { "Flags": ["G40"] },
"PolarInterpolationState": { "Dir": "XC", "InitRxcz": { "X": 0, "Y": 0, "Z": 0 } },
"ProgramPolarRxcz": { "X": 40, "Y": 20, "Z": 0 },
"MachineCoordinateState": { "C": 26.565051177077986, "X": 44.721359549995796, "Y": 0, "Z": 0 },
"MotionState": { "Term": "G01" },
"MotionEvent": { "Form": "McLinear" }
}</code></pre>
<p>#AfterBuild:</p>
<pre><code class="lang-csharp">{
"PolarInterpolationState": { "Dir": "XC", "InitRxcz": { "X": 0, "Y": 0, "Z": 0 } },
"ProgramPolarRxcz": { "X": 40, "Y": 20, "Z": 0 },
"MachineCoordinateState": { "C": 29.744881296942225, "X": 40.311288741492746, "Y": 0, "Z": 0 },
"MotionState": { "Term": "G01" },
"MotionEvent": { "Form": "McLinear" },
"RadiusCompensation": { "Side": "None", "Term": "G40", "OffsetId": 1 }
}</code></pre>