Table of Contents

Interface ITransformationDef

Namespace
Hi.NcParsers.Keywords
Assembly
HiMech.dll

Chain of named ProgramXyz → MachineCoordinate transformation entries. Stored as a JsonArray of entries, each with “Source”, “Kind”, and “Mat4d” keys. Each contributing INcSyntax adds or replaces its own entry by source name. GetComposedTransform(JsonObject) composes entries in order: McXyz = ProgramXyz * T[0] * T[1] * ... * T[n].

Kind contour-validity classification. Each entry is either:

  • "Static" — the Mat4d is valid for any point along the contour. Tilt, coord-offset, and the kinematic pivot in non-RTCP / rotary-stable blocks are all Static.
  • "Dynamic" — the Mat4d is a block-endpoint snapshot of a rotary-state-dependent transform (RTCP rotary-dynamic). Composition still yields a correct endpoint MC, but the matrix is not contour-valid: intermediate CL-point positions cannot be derived by applying it to an interpolated ProgramXyz. The semantic layer (ClLinearMotionSemantic) handles per-step IK separately.
Use HasDynamicEntry(JsonObject) to detect the presence of any Dynamic entry on this block.
public interface ITransformationDef
Extension Methods

Examples

"ProgramToMcTransform": [
  {"Source": "TiltTransform",          "Kind": "Static",  "Mat4d": [1,0,0,0, 0,1,0,0, 0,0,1,0, 0,0,0,1]},
  {"Source": "ToolHeightCompensation", "Kind": "Static",  "Mat4d": [1,0,0,0, 0,1,0,0, 0,0,1,0, 0,0,99.98,1]},
  {"Source": "CoordinateOffset",       "Kind": "Static",  "Mat4d": [1,0,0,0, 0,1,0,0, 0,0,1,0, 10,20,-100,1]},
  {"Source": "PivotTransform",         "Kind": "Dynamic", "Mat4d": [cosC,sinC,0,0, -sinC,cosC,0,0, 0,0,1,0, px,py,pz,1]}
]

Properties

ProgramToMcTransform

Ordered chain of named ProgramXyz → MachineCoordinate transformation entries. See the type-level remarks for the entry schema and composition rule.

JsonArray ProgramToMcTransform { get; set; }

Property Value

JsonArray