Namespace Hi.NcParsers.ParsingSyntaxs.Heidenhain
Classes
- HeidenhainBlkFormSyntax
Syntax for Heidenhain BLK FORM command (workpiece blank definition).
- HeidenhainCSyntax
Heidenhain circular-motion statement (
C X+5.361 Y+23.064 DR-). Mirrors HeidenhainLSyntax: endpoint axis words promote to the Parsing root (shared Logic consumers), a“CArc”: truestatement marker (deliberately NOT the bareCkey — that is a rotary axis word which McAbcSyntax owns and consumes on rotary machines) gates HeidenhainCircularMotionSyntax, the rotation direction lands inParsing.DR("-"= CW = G02,"+"= CCW = G03) and radius-compensation words are captured like on L statements. The word-boundary head guard rejectsCC/CT/CR/CPstatements.
- HeidenhainCallSyntax
Syntax for Heidenhain CALL commands (CALL PGM and CALL LBL).
- HeidenhainCcSyntax
Heidenhain circle-center statement (
CC X+12.7 Y+12.7). The coordinates land in the nestedParsing.CCrecord — deliberately not on the Parsing root, where ProgramXyzSyntax would mistake the center for a motion endpoint. The Logic-stage HeidenhainCircleCenterSyntax turns the record into the modal circle-center section consumed by the arc syntax. Must run before HeidenhainCSyntax in the bundle (the\bguard keeps aCstatement from matchingCCand vice versa, but CC-first is the safe order).
- HeidenhainCyclDefSyntax
Initialization Syntax of Heidenhain fixed head block for
.CYCL DEF
- HeidenhainFnAssignmentSyntax
Heidenhain FN variable assignment syntax. Extends TagAssignmentSyntax with FN opcode prefix.
- HeidenhainFnFeatureSyntax
Structured skip for the Heidenhain FN opcodes the simulation does not implement (
FN 14error display,FN 16print,FN 18SYSREAD, table/pallet opcodes …): the whole statement is consumed and a singleHeidenhainFn–Unsupportedwarning names the opcode. Two opcode families pass through untouched:FN 0-5belong to HeidenhainFnAssignmentSyntax (which runs earlier), and the jump familyFN 9-12is control flow owned by a later phase.Claiming the statement here is load-bearing, not cosmetic: an FN 18 line like
FN18: SYSREAD Q94= ID50 NR11contains aQ94=token that the bare Q-assignment capture (later in the Parsing bundle) would otherwise grab, storing the garbage stringID50into Q94. The target parameter must instead stay vacant so dependent expressions fail soft (VariableExpression--Unevaluated) — no fabricated values.
- HeidenhainLSyntax
Heidenhain linear movement (the leading L) syntax. Strips the leading
L(word-bounded, soLN/LP/LBLlines are not touched), writes theParsing.L = truestatement marker, and grabs axis-tag values for any of AxisTagList (X, Y, Z, U, V, W, A, B, C) that appear afterwards as{axis}{signed-value}pairs; values are parsed as floats via ToFloat(string).Axis words land on the root of Parsing (not nested under
L) so the shared Logic consumers — ProgramXyzSyntax, McAbcSyntax, MachineCoordSelectSyntax, IncrementalResolveSyntax — read them without per-brand path configuration. TheLmarker is consumed by HeidenhainMotionModeSyntax which maps the statement (plus a one-shotFMAXflag) onto the shared G00/G01 motion-mode vocabulary.The radius-compensation words
RL/RR/R0are captured as boolean records on the Parsing root; the Logic-stage HeidenhainRadiusCompSyntax maps them onto the shared G41/G42/G40 vocabulary consumed by the radius compensation pass.
- HeidenhainLblSyntax
Syntax for Heidenhain LBL command (label definition). Label can be a number (1-65535) or a text name (e.g., “MyLabel”). LBL 0 is reserved for end of subprogram.
- HeidenhainM128Syntax
Captures the klartext
M128word (RTCP on) together with its optional feed-limit argument (M128 F6000.) intoParsing.M128 { F? }. Must run before the shared F tag-value syntax — the F belongs to M128 (feed limit for compensating movements), and letting it reach the Parsing root would pollute the modal feedrate.M129(RTCP off) carries no argument and stays on the shared numbered-flag path.
- HeidenhainM140Syntax
Captures the klartext
M140 MBtool-axis retract statement intoParsing.M140 { MB, F? }.MB MAXretracts to the traverse limit (recorded as the string“MAX”);MB+nretracts bynmm along the tool axis. Handles the corpus formsM140 MB+50 F6000,L M140 MB MAX(M word carried on an L statement) and the gluedLM140 MB MAX(TongTai post). Must run before HeidenhainLSyntax (it claims the whole retract statement including a leadingL) and before the shared F tag-value syntax (the F is the retract feed).
- HeidenhainPlaneSyntax
Syntax for Heidenhain PLANE command. Handles:
- PLANE RESET
- PLANE SPATIAL SPA SPB SPC SEQ+/- [COORD ROT|TABLE ROT] [MOVE|TURN|STAY]
- PLANE PROJECTED PROPR PROMIN ROT SEQ+/- [COORD ROT|TABLE ROT] [MOVE|TURN|STAY]
- HeidenhainProgramSyntax
Syntax for Heidenhain BEGIN PGM and END PGM commands.
- HeidenhainToolCallSyntax
Syntax for Heidenhain TOOL CALL command. Handles: TOOL CALL [ToolId|“ToolName”] [X|Y|Z] [S…] [DL…] [DR…]