Class IncrementalWords
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 } }