deploy fixed MRR drift and webservice CylindroidHolder buckle branch update issue.

This commit is contained in:
2026-05-28 19:42:05 +08:00
parent d7836db45f
commit 95b5790622
140 changed files with 8079 additions and 14099 deletions
@@ -194,6 +194,81 @@ Motion is handled by <a class="xref" href="Hi.NcParsers.LogicSyntaxs.LinearMotio
</dd></dl>
<h2 id="Hi_NcParsers_LogicSyntaxs_G53p1RotaryPositionSyntax_examples">Examples</h2>
<p>No-kinematics dep-guard early-return: standalone <code>G53.1</code> with
no <a class="xref" href="Hi.Numerical.Xyzabc.IMachineKinematics.html">IMachineKinematics</a> dep in the list — the syntax
detects the flag, finds no kinematics, and silently consumes the
flag via <code>ConsumeFlag</code>. Empty <code>Parsing</code> is then removed
by <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.text.json.nodes.jsonobject">CleanupParsing(JsonObject)</a>, so the post-Build block
is empty:
#BeforeBuild:</p>
<pre><code class="lang-csharp">{ "Parsing": { "Flags": ["G53.1"] } }</code></pre>
<p>#AfterBuild:</p>
<pre><code class="lang-csharp">{}</code></pre>
<p>IK happy path — <code>G53.1</code> with active G68.2 tilt on
<code>#Previous:</code>, real <a class="xref" href="Hi.Numerical.Xyzabc.XyzabcSolver.html">XyzabcSolver</a>
(table-A / head-B 5-axis), and a
<code>TestDeps.AxisConfig(A=Rotary, B=Rotary)</code> dep. The syntax
reads the previous block's tilt Mat4d, solves
<code>OrientationToMcAbc(tiltMat.AxialNormal)</code> for the rotary ABC,
converts radians → degrees, writes <code>MachineCoordinateState</code>
with both rotary axes (XYZ inherited from <code>prevMc = Vec3d.Zero</code>
when no previous MC exists), and stamps <code>ProgramXyz</code>:
#Previous:</p>
<pre><code class="lang-csharp">{
"TiltTransform": { "Term": "G68.2", "X": 0, "Y": 0, "Z": 0, "I": 0, "J": 30, "K": 0 },
"ProgramToMcTransform": [
{
"Source": "TiltTransform",
"Kind": "Static",
"Mat4d": [
1, 0, 0, 0,
0, 0.8660254037844388, 0.5, 0,
0, -0.5, 0.8660254037844388, 0,
0, 0, 0, 1
]
}
]
}</code></pre>
<p>#BeforeBuild:</p>
<pre><code class="lang-csharp">{ "Parsing": { "Flags": ["G53.1"] } }</code></pre>
<p>#AfterBuild:</p>
<pre><code class="lang-csharp">{
"MachineCoordinateState": { "X": 0, "Y": 0, "Z": 0, "A": 29.942194198514308, "B": 0 },
"ProgramXyz": { "X": 0, "Y": 0, "Z": 0 }
}</code></pre>
<p>Explicit ABC override — <code>G53.1 A0 B45</code> on top of the same
G68.2 tilt + kinematics + axis-config set up. The IK still solves,
but the explicit <code>A=0</code> and <code>B=45</code> overrides what IK
returned for those axes; C stays at the IK-solved value (C-axis
is not present in the table-A/head-B layout, so the rotaryAxes
loop only writes A and B):
#Previous:</p>
<pre><code class="lang-csharp">{
"TiltTransform": { "Term": "G68.2", "X": 0, "Y": 0, "Z": 0, "I": 0, "J": 30, "K": 0 },
"ProgramToMcTransform": [
{
"Source": "TiltTransform",
"Kind": "Static",
"Mat4d": [
1, 0, 0, 0,
0, 0.8660254037844388, 0.5, 0,
0, -0.5, 0.8660254037844388, 0,
0, 0, 0, 1
]
}
]
}</code></pre>
<p>#BeforeBuild:</p>
<pre><code class="lang-csharp">{
"Parsing": { "Flags": ["G53.1"], "A": 0, "B": 45 }
}</code></pre>
<p>#AfterBuild:</p>
<pre><code class="lang-csharp">{
"MachineCoordinateState": { "X": 0, "Y": 0, "Z": 0, "A": 0, "B": 45 },
"ProgramXyz": { "X": 0, "Y": 0, "Z": 0 }
}</code></pre>
<h2 id="Hi_NcParsers_LogicSyntaxs_G53p1RotaryPositionSyntax_remarks">Remarks</h2>
<div class="markdown level0 remarks"><p>