Table of Contents

Namespace Hi.NcParsers.Keywords

Classes

Comment
CompoundMotion

Section key holder + concrete implementation for ICompoundMotionDef.

CoordinateOffset

Work coordinate offset state written by IsoCoordinateOffsetSyntax. Property names are used as JSON keys via nameof.

Managed commands (ISO): G54, G55, G56, G57, G58, G59, G59.1–G59.9. Siemens: G54–G57 + G505–G599 (extended), G500 to cancel. Heidenhain: CYCL DEF 247 (Datum Preset) / CYCL DEF 7 (Datum Shift).

CsScript
Dwell

Section key holder + concrete implementation for IDwellDef.

Feedrate

Section key holder + concrete implementation for IFeedrateDef.

IndexNote
LocalCoordinateOffset

Local coordinate offset state (G52) written by IsoLocalCoordinateOffsetSyntax. Property names are used as JSON keys via nameof.

ISO: G52 X Y Z (local coordinate system shift, additive to G54 series). Cancelled by G52 X0 Y0 Z0 or M30 (program end). Siemens equivalent: TRANS / ATRANS (handled by separate syntax).

Motion

Section key holder + concrete implementation for IMotionDef.

SpindleControl

Section key holder + concrete implementation for ISpindleControlDef.

SpindleOrientation

Section key holder + concrete implementation for ISpindleOrientationDef.

SpindleSpeed

Section key holder + concrete implementation for ISpindleSpeedDef.

TiltTransform

Concrete class for ITiltTransformDef section serialization.

ToolHeightCompensation

Interfaces

IArcMotionDef

Arc motion data written by CircularMotionSyntax. Stored under the Motion JSON section alongside IMotionDef properties.

ICompoundMotionDef

Compound motion section definition for commands that produce multiple sub-operations (G28, G53.1, G81, G82, etc.). Contains a ItemsKey array resolved by Hi.NcParsers.Semantics.CompoundMotionSemanticUtil.

Item types (discriminated by key presence):

IDwellDef

Dwell/pause section definition for use inside Sequence items. Resolved by Semantics.SequenceUtil into ActDelay.

IFeedrateDef

Feedrate state written by FeedrateSyntax. Property names are used as JSON keys via nameof.

ISO standard: F command + G94 (per minute) / G95 (per revolution). Supported by all major CNC brands.

IFlagsDef
IMachineCoordinateDef
IMotionDef

Motion state written by LogicSyntaxs.MotionSyntax. Property names are used as JSON keys via nameof.

ISO standard: G00 (rapid) / G01 (linear feed) are Group 01 modal codes.

IParsingDef
IPositioningModeDef

JsonObject key for positioning mode (G90 absolute / G91 incremental). Written by PositioningModeSyntax, consumed by IncrementalResolveSyntax and canned cycle syntaxes.

IProgramXyzDef
ISpindleControlDef

Spindle control item for use inside ItemsKey arrays. Resolved by Hi.NcParsers.Semantics.CompoundMotionSemanticUtil into ActSpindleDirection.

ISpindleOrientationDef

Oriented spindle stop item for use inside ItemsKey arrays. Commands the spindle to stop at a specific angular position (OSS). Resolved by Hi.NcParsers.Semantics.CompoundMotionSemanticUtil into ActSpindleOrientation.

ISpindleSpeedDef

Spindle speed and direction state written by SpindleSpeedSyntax. Property names are used as JSON keys via nameof.

ISO: S command for speed, M03/M04/M05 for direction. Heidenhain: M3/M4/M5. Siemens: M3/M4/M5 or SPOS. Direction is stored as the conventional SpindleDirection enum name (CW/CCW/STOP), not as brand-specific M-codes.

ITiltTransformDef

Tilt transform state written by tilt transform syntaxes. Property names are used as JSON keys via nameof.

Managed commands (ISO/Fanuc): G68 (2D rotation), G68.2 (tilted work plane), G69 (cancel). Siemens equivalent: CYCLE800, ROT/AROT (handled by separate syntax). Heidenhain equivalent: PLANE SPATIAL / PLANE RESET (handled by separate syntax).

IToolHeightCompensationDef

Tool height compensation state written by ToolHeightOffsetSyntax. Property names are used as JSON keys via nameof. The JSON section can be deserialized to an instance implementing this interface.

Managed commands (ISO/Fanuc): G43, G44, G49. Fanuc extension: G43.4 (TCPM — parsed only in Fanuc syntax list). Siemens equivalent: TRAFOOF/TRAORI (handled by separate syntax). Heidenhain equivalent: TOOL CALL / M128/M129 (handled by separate syntax).

ITransformationDef

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

IUnparsedTextDef