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
@@ -207,6 +207,97 @@ ToolHeightCompensation entry when RTCP is active) and <b>before</b>
</dd></dl>
<h2 id="Hi_NcParsers_LogicSyntaxs_G43p4RtcpSyntax_examples">Examples</h2>
<p>Explicit G43.4 H1 activation with no <a class="xref" href="Hi.Numerical.Xyzabc.IMachineKinematics.html">IMachineKinematics</a>
and no <a class="xref" href="Hi.NcParsers.Dependencys.IToolOffsetConfig.html">IToolOffsetConfig</a> in the dependency list —
exercises the activate path on its identity-matrix corner. The
section is written with <code>Offset_mm = 0</code> (no offset table
<code>rawHeight = 0</code>); the height-mat falls back to the
no-kinematics branch <code>new Mat4d { Trans = UnitZ * 0 }</code> which
collapses to identity; <code>abcChanged</code> is false (no current MC,
no previous block) so the entry is tagged <a class="xref" href="Hi.NcParsers.Syntaxs.TransformationUtil.html#Hi_NcParsers_Syntaxs_TransformationUtil_KindStatic">KindStatic</a>.
#BeforeBuild:</p>
<pre><code class="lang-csharp">{ "Parsing": { "G43.4": { "H": "1" } } }</code></pre>
<p>#AfterBuild:</p>
<pre><code class="lang-csharp">{
"ToolHeightCompensation": { "Offset_mm": 0, "Term": "G43.4", "OffsetId": 1 },
"ProgramToMcTransform": [
{
"Source": "ToolHeightCompensation",
"Kind": "Static",
"Mat4d": [1,0,0,0, 0,1,0,0, 0,0,1,0, 0,0,0,1]
}
]
}</code></pre>
<p>G43.4 H1 with <code>ToolOffset(1 → 10 mm)</code>, a real
<a class="xref" href="Hi.Numerical.Xyzabc.XyzabcSolver.html">XyzabcSolver</a> (table-A / head-B
5-axis), and current block already carrying all three rotary axes
in <code>MachineCoordinateState</code> (A=0, B=30, C=0 — as a prior
<code>McAbcSyntax</code> in the chain would have written). The
height-mat goes through
<a class="xref" href="Hi.NcParsers.Syntaxs.TransformationUtil.html#Hi_NcParsers_Syntaxs_TransformationUtil_MakeToolHeightMat_Hi_Numerical_Xyzabc_IMachineKinematics_Hi_Geom_Vec3d_System_Double_">MakeToolHeightMat(IMachineKinematics, Vec3d, double)</a> which probes
<code>kinematics.McToPn(Zero, abc).Normal</code> at <code>abc = (0, π/6, 0)</code>
to get the tool orientation, then scales by 10 mm. With no
previous block, <code>abcChanged</code> is false → entry stays Static.
Note: all three ABC must be present (or fall back to the per-axis
modal lookback path); a partial section with only B set leaves A/C
as NaN and the resulting Mat4d.Trans would serialise as
non-finite numbers.
#BeforeBuild:</p>
<pre><code class="lang-csharp">{
"Parsing": { "G43.4": { "H": "1" } },
"MachineCoordinateState": { "A": 0, "B": 30, "C": 0 }
}</code></pre>
<p>#AfterBuild:</p>
<pre><code class="lang-csharp">{
"MachineCoordinateState": { "A": 0, "B": 30, "C": 0 },
"ToolHeightCompensation": { "Offset_mm": 10, "Term": "G43.4", "OffsetId": 1 },
"ProgramToMcTransform": [
{
"Source": "ToolHeightCompensation",
"Kind": "Static",
"Mat4d": [
1, 0, 0, 0,
0, 1, 0, 0,
0, 0, 1, 0,
4.999999999999999, 0, 8.660254037844387, 1
]
}
]
}</code></pre>
<p>Same setup plus a <code>#Previous:</code> block with
<code>MachineCoordinateState.B = 0</code> + XYZ origin —
<a class="xref" href="Hi.NcParsers.Syntaxs.SyntaxPiece.html">DidAbcChange(LazyLinkedListNode&lt;SyntaxPiece&gt;, IMachineAxisConfig)</a> compares the rotary deltas and finds B
changed across the block, so the entry is tagged
<a class="xref" href="Hi.NcParsers.Syntaxs.TransformationUtil.html#Hi_NcParsers_Syntaxs_TransformationUtil_KindDynamic">KindDynamic</a> (signalling that the
tool orientation varies along the contour):
#Previous:</p>
<pre><code class="lang-csharp">{
"MachineCoordinateState": { "X": 0, "Y": 0, "Z": 0, "A": 0, "B": 0, "C": 0 }
}</code></pre>
<p>#BeforeBuild:</p>
<pre><code class="lang-csharp">{
"Parsing": { "G43.4": { "H": "1" } },
"MachineCoordinateState": { "A": 0, "B": 30, "C": 0 }
}</code></pre>
<p>#AfterBuild:</p>
<pre><code class="lang-csharp">{
"MachineCoordinateState": { "A": 0, "B": 30, "C": 0 },
"ToolHeightCompensation": { "Offset_mm": 10, "Term": "G43.4", "OffsetId": 1 },
"ProgramToMcTransform": [
{
"Source": "ToolHeightCompensation",
"Kind": "Dynamic",
"Mat4d": [
1, 0, 0, 0,
0, 1, 0, 0,
0, 0, 1, 0,
4.999999999999999, 0, 8.660254037844387, 1
]
}
]
}</code></pre>