Namespace Hi.NcParsers.Keywords
Classes
- 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).
- Feedrate
Section key holder + concrete implementation for IFeedrateDef.
- 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.
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):
- Motion — rapid/feed linear motion (IMotionDef + IMachineCoordinateDef)
- Dwell — pause (Time in seconds)
- SpindleControl — spindle direction change (Direction)
- SpindleOrientation — oriented spindle stop (OSS) (ISpindleOrientationDef.Angle_rad)
- 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.
- 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.
- IPositioningModeDef
JsonObject key for positioning mode (G90 absolute / G91 incremental). Written by PositioningModeSyntax, consumed by IncrementalResolveSyntax and canned cycle syntaxes.
- 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].