Table of Contents

Class IncrementalWords

Namespace
Hi.NcParsers.Keywords
Assembly
HiMech.dll

One-shot block-root record of the axis words this block programmed as increments — under modal G91, or through a per-word Incremental entry (Siemens IC(), klartext IX+/IC+) — valued with the programmed delta and shaped like the Parsing tree the word came from: a root word is a root key ({ “X”: 10 }, { “C”: 20 }), a word inside a nested record sits under that record's key ({ “G28”: { “X”: 0, “C”: 10 } }, { “CC”: { “X”: 0, “Y”: 11 } }).

Why it exists: the resolve is in place. IncrementalResolveSyntax rewrites the word inside Parsing to its absolute value and McAbcSyntax writes the accumulated angle into MachineCoordinateState, while the modal Positioning section must keep saying G91 for the next block's lookback. From that point on { "Positioning": G91, "Parsing": { "G28": { "X": 100 } } } is byte-identical to a program that wrote G90 G28 X100., and once the consumer has taken the word out of Parsing the programmed text is gone from the JSON altogether. This section is the trace that the word was an increment, and of what it was.

Written by IncrementalResolveSyntax (the words at its working paths — root, G28, the klartext CC record) and McAbcSyntax (root rotary words). Read by IncrementalResolveSyntax as an idempotency guard — a word already listed at its path is never converted twice, whatever the syntax list looks like (a project file whose serialized list carries two instances, a re-run over a frozen piece) — and by McAbcCyclicPathSyntax, where a listed rotary axis is a signed traverse that passes the shortest-path wrap literally, whichever spelling made it incremental. Not listed in any ModalCarrySyntax key set — it never carries to later blocks.

Not recorded: coded-position words (Siemens CIC() counts indexing positions, not an angle — its trace is the rewritten PositioningOverride entry), and the words the two consumers ahead of the shared resolve take for themselves (HeidenhainCannedCycleSyntax's cycle words, MachineCoordSelectSyntax's machine-frame words): both consume the word into their own section, so no absolute-looking copy is left in Parsing to be mistaken for a programmed absolute.

public static class IncrementalWords
Inheritance
IncrementalWords
Inherited Members

Examples

"IncrementalWords": { "X": 10, "G28": { "C": 10 } }