Class PivotTransformUtil
- Namespace
- Hi.NcParsers.LogicSyntaxs
- Assembly
- HiMech.dll
Shared engine for the brand pivot-gate syntaxes
(PivotTransformationSyntax — ISO/Fanuc family,
SiemensPivotTransformationSyntax — Siemens).
Each brand syntax owns only its gate (which modal terms mean
“commanded XYZ needs the Pn→MC kinematic rigid transform”); the
endpoint-ABC resolution and the PivotTransform chain entry
composition live here so every brand writes the identical JSON
vocabulary.
public static class PivotTransformUtil
- Inheritance
-
PivotTransformUtil
- Inherited Members
Methods
ComposePivotEntry(LazyLinkedListNode<SyntaxPiece>, JsonObject, List<INcDependency>)
Composes the PivotTransformSource entry for the block's endpoint ABC — the shared body every brand gate runs after it decides the block needs the kinematic pivot. Silently no-ops when IMachineKinematics is absent (3-axis configurations without rotary kinematics). The entry's kind mirrors HasDynamicEntry(JsonObject): when no Dynamic entry exists (RTCP with stable rotary, or a tilted plane without RTCP), the kinematic pivot is contour-valid and stays Static.
public static void ComposePivotEntry(LazyLinkedListNode<SyntaxPiece> syntaxPieceNode, JsonObject json, List<INcDependency> ncDependencyList)
Parameters
syntaxPieceNodeLazyLinkedListNode<SyntaxPiece>jsonJsonObjectncDependencyListList<INcDependency>
ResolveEndpointAbc(LazyLinkedListNode<SyntaxPiece>, IMachineAxisConfig)
Reads the current block's MC ABC, falling back per-axis to modal
lookback (via FindPreviousMcXyzabc(LazyLinkedListNode<SyntaxPiece>, IMachineAxisConfig))
for rotary axes the machine declares but the current section
does not carry — blocks like G49, comments, or pure
non-motion state changes do not rewrite ABC, yet the kinematic
rotary state is still active and must appear in the chain.
Non-rotary axes default to 0. Also used by
SiemensTraoriSyntax, whose tool-height
entry needs the same endpoint semantics.
public static Vec3d ResolveEndpointAbc(LazyLinkedListNode<SyntaxPiece> node, IMachineAxisConfig axisConfig)
Parameters
nodeLazyLinkedListNode<SyntaxPiece>axisConfigIMachineAxisConfig