Table of Contents

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

syntaxPieceNode LazyLinkedListNode<SyntaxPiece>
json JsonObject
ncDependencyList List<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

node LazyLinkedListNode<SyntaxPiece>
axisConfig IMachineAxisConfig

Returns

Vec3d