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