deploy fixed MRR drift and webservice CylindroidHolder buckle branch update issue.
This commit is contained in:
+75
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user