Archived
deploy.
This commit is contained in:
@@ -358,6 +358,58 @@ downstream blocks unchanged).
|
||||
<dl class="jumplist">
|
||||
<dt><a class="xref" href="Hi.NcParsers.Keywords.Feedrate.html">Feedrate</a></dt>
|
||||
<dd><p>Section key holder + concrete implementation for <a class="xref" href="Hi.NcParsers.Keywords.IFeedrateDef.html">IFeedrateDef</a>.</p>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="jumplist">
|
||||
<dt><a class="xref" href="Hi.NcParsers.Keywords.IncrementalWords.html">IncrementalWords</a></dt>
|
||||
<dd><p>One-shot block-root record of the axis words this block programmed as
|
||||
<b>increments</b> — under modal <code>G91</code>, or through a per-word
|
||||
<a class="xref" href="Hi.NcParsers.Keywords.Positioning.html#Hi_NcParsers_Keywords_Positioning_Incremental">Incremental</a> entry (Siemens <code>IC()</code>,
|
||||
klartext <code>IX+</code>/<code>IC+</code>) — valued with the programmed delta
|
||||
and shaped like the <code>Parsing</code> tree the word came from: a root
|
||||
word is a root key (<code>{ “X”: 10 }</code>, <code>{ “C”: 20 }</code>), a word
|
||||
inside a nested record sits under that record's key
|
||||
(<code>{ “G28”: { “X”: 0, “C”: 10 } }</code>,
|
||||
<code>{ “CC”: { “X”: 0, “Y”: 11 } }</code>).</p>
|
||||
<p>
|
||||
Why it exists: the resolve is in place.
|
||||
<a class="xref" href="Hi.NcParsers.LogicSyntaxs.IncrementalResolveSyntax.html">IncrementalResolveSyntax</a> rewrites the word
|
||||
inside <code>Parsing</code> to its absolute value and
|
||||
<a class="xref" href="Hi.NcParsers.LogicSyntaxs.McAbcSyntax.html">McAbcSyntax</a> writes the accumulated angle
|
||||
into <code>MachineCoordinateState</code>, while the modal
|
||||
<a class="xref" href="Hi.NcParsers.Keywords.Positioning.html">Positioning</a> section must keep saying <code>G91</code> for the
|
||||
next block's lookback. From that point on
|
||||
<code>{ "Positioning": G91, "Parsing": { "G28": { "X": 100 } } }</code> is
|
||||
byte-identical to a program that wrote <code>G90 G28 X100.</code>, and once
|
||||
the consumer has taken the word out of <code>Parsing</code> 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.
|
||||
</p>
|
||||
<p>
|
||||
Written by <a class="xref" href="Hi.NcParsers.LogicSyntaxs.IncrementalResolveSyntax.html">IncrementalResolveSyntax</a> (the
|
||||
words at its working paths — root, <code>G28</code>, the klartext
|
||||
<code>CC</code> record) and <a class="xref" href="Hi.NcParsers.LogicSyntaxs.McAbcSyntax.html">McAbcSyntax</a> (root
|
||||
rotary words). Read by <a class="xref" href="Hi.NcParsers.LogicSyntaxs.IncrementalResolveSyntax.html">IncrementalResolveSyntax</a>
|
||||
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 <a class="xref" href="Hi.NcParsers.LogicSyntaxs.McAbcCyclicPathSyntax.html">McAbcCyclicPathSyntax</a>,
|
||||
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 <a class="xref" href="Hi.NcParsers.PostLogicSyntaxs.ModalCarrySyntax.html">ModalCarrySyntax</a> key
|
||||
set — it never carries to later blocks.
|
||||
</p>
|
||||
<p>
|
||||
Not recorded: coded-position words (Siemens <code>CIC()</code> counts
|
||||
indexing positions, not an angle — its trace is the rewritten
|
||||
<a class="xref" href="Hi.NcParsers.Keywords.PositioningOverride.html">PositioningOverride</a> entry), and the words the two
|
||||
consumers ahead of the shared resolve take for themselves
|
||||
(<a class="xref" href="Hi.NcParsers.LogicSyntaxs.Heidenhain.HeidenhainCannedCycleSyntax.html">HeidenhainCannedCycleSyntax</a>'s
|
||||
cycle words, <a class="xref" href="Hi.NcParsers.LogicSyntaxs.MachineCoordSelectSyntax.html">MachineCoordSelectSyntax</a>'s
|
||||
machine-frame words): both consume the word into their own section, so
|
||||
no absolute-looking copy is left in <code>Parsing</code> to be mistaken for
|
||||
a programmed absolute.
|
||||
</p>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="jumplist">
|
||||
@@ -484,14 +536,19 @@ the tool position, and stay inside the cycle's own record.
|
||||
Consumed by
|
||||
<a class="xref" href="Hi.NcParsers.LogicSyntaxs.IncrementalResolveSyntax.html">IncrementalResolveSyntax</a> (linear axes) and
|
||||
<a class="xref" href="Hi.NcParsers.LogicSyntaxs.McAbcSyntax.html">McAbcSyntax</a> (rotary axes) — both treat
|
||||
every non-Incremental value as an absolute write, and both resolve a
|
||||
every non-Incremental value as an absolute write, both follow the
|
||||
modal <a class="xref" href="Hi.NcParsers.Keywords.Positioning.html">Positioning</a> state for a word that has no entry,
|
||||
and both resolve a
|
||||
coded entry's indexing position number through
|
||||
<a class="xref" href="Hi.NcParsers.LogicSyntaxs.CodedPositionUtil.html">CodedPositionUtil</a> and rewrite the entry to
|
||||
its plain counterpart in place — by
|
||||
<a class="xref" href="Hi.NcParsers.LogicSyntaxs.McAbcCyclicPathSyntax.html">McAbcCyclicPathSyntax</a> (the directional
|
||||
window for <a class="xref" href="Hi.NcParsers.Keywords.Positioning.html#Hi_NcParsers_Keywords_Positioning_PositiveOnly">PositiveOnly</a> /
|
||||
<a class="xref" href="Hi.NcParsers.Keywords.Positioning.html#Hi_NcParsers_Keywords_Positioning_NegativeOnly">NegativeOnly</a> and the non-modular-axis
|
||||
boundary warning; it never sees a coded value), and by
|
||||
boundary warning; it never sees a coded value, and it does not read
|
||||
an <a class="xref" href="Hi.NcParsers.Keywords.Positioning.html#Hi_NcParsers_Keywords_Positioning_Incremental">Incremental</a> entry — the literal
|
||||
pass-through follows the <a class="xref" href="Hi.NcParsers.Keywords.IncrementalWords.html">IncrementalWords</a> record the
|
||||
rotary writer leaves), and by
|
||||
<a class="xref" href="Hi.NcParsers.LogicSyntaxs.Siemens.SiemensCircularMotionSyntax.html">SiemensCircularMotionSyntax</a>
|
||||
(absolute I/J/K center components) — and, ahead of the shared
|
||||
resolve, by two consumers that take the raw word before it can see
|
||||
@@ -501,7 +558,9 @@ the last programmed position on the spot) and
|
||||
<a class="xref" href="Hi.NcParsers.LogicSyntaxs.MachineCoordSelectSyntax.html">MachineCoordSelectSyntax</a> (a distance in
|
||||
the machine frame); words without an entry keep the default behavior
|
||||
unchanged. The section is not listed in any ModalCarry key set — it
|
||||
never carries to later blocks.
|
||||
never carries to later blocks. It describes the <i>programmed</i>
|
||||
spelling; what the write stage actually converted, with the
|
||||
programmed delta, is the <a class="xref" href="Hi.NcParsers.Keywords.IncrementalWords.html">IncrementalWords</a> record.
|
||||
</p>
|
||||
</dd>
|
||||
</dl>
|
||||
@@ -545,10 +604,20 @@ drills again) and
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.text.json.nodes.jsonobject">WriteCompoundMotion(JsonObject, string, JsonArray, Vec3d)</a>
|
||||
(the cycle's pre-positioning item carries the block's MC A/B/C so the
|
||||
physical rotary state matches the root record instead of lagging one
|
||||
block behind). Not listed in any
|
||||
<a class="xref" href="Hi.NcParsers.PostLogicSyntaxs.ModalCarrySyntax.html">ModalCarrySyntax</a> key set — it never
|
||||
block behind) and <a class="xref" href="Hi.NcParsers.LogicSyntaxs.PivotTransformUtil.html">PivotTransformUtil</a> (the
|
||||
tilted-feature-frame re-anchor on a rotary-word block). Not listed in
|
||||
any <a class="xref" href="Hi.NcParsers.PostLogicSyntaxs.ModalCarrySyntax.html">ModalCarrySyntax</a> key set — it never
|
||||
carries to later blocks.
|
||||
</p>
|
||||
<p>
|
||||
This section says <i>which</i> rotary words the block spoke, not how:
|
||||
an absolute <code>C40.</code> and an incremental <code>C40.</code> both record 40.
|
||||
Which of them were increments — and so which MC angles are
|
||||
accumulations rather than programmed absolutes — is the sibling
|
||||
<a class="xref" href="Hi.NcParsers.Keywords.IncrementalWords.html">IncrementalWords</a> record, the one
|
||||
<a class="xref" href="Hi.NcParsers.LogicSyntaxs.McAbcCyclicPathSyntax.html">McAbcCyclicPathSyntax</a> reads for its
|
||||
literal pass-through.
|
||||
</p>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="jumplist">
|
||||
@@ -911,9 +980,19 @@ the math is <code>InitRxcz + ProgramPolarRxcz</code>, mirroring HardNc
|
||||
<dt><a class="xref" href="Hi.NcParsers.Keywords.IPositioningDef.html">IPositioningDef</a></dt>
|
||||
<dd><p>Modal positioning state — ISO Group 03 (G90 absolute / G91 incremental).
|
||||
Written by <a class="xref" href="Hi.NcParsers.LogicSyntaxs.PositioningSyntax.html">PositioningSyntax</a>, consumed by
|
||||
<a class="xref" href="Hi.NcParsers.LogicSyntaxs.IncrementalResolveSyntax.html">IncrementalResolveSyntax</a>, canned cycle
|
||||
syntaxes, and <a class="xref" href="Hi.NcParsers.LogicSyntaxs.MachineCoordSelectSyntax.html">MachineCoordSelectSyntax</a>.
|
||||
Property names are used as JSON keys via <code>nameof</code>.</p>
|
||||
<a class="xref" href="Hi.NcParsers.LogicSyntaxs.IncrementalResolveSyntax.html">IncrementalResolveSyntax</a> (linear words),
|
||||
<a class="xref" href="Hi.NcParsers.LogicSyntaxs.McAbcSyntax.html">McAbcSyntax</a> (rotary words: G91
|
||||
accumulates anchor + delta) and
|
||||
<a class="xref" href="Hi.NcParsers.LogicSyntaxs.McAbcCyclicPathSyntax.html">McAbcCyclicPathSyntax</a> (the wrap pass
|
||||
keeps the axes the <a class="xref" href="Hi.NcParsers.Keywords.IncrementalWords.html">IncrementalWords</a> record lists
|
||||
literal), canned cycle syntaxes, and
|
||||
<a class="xref" href="Hi.NcParsers.LogicSyntaxs.MachineCoordSelectSyntax.html">MachineCoordSelectSyntax</a>. A per-word
|
||||
<a class="xref" href="Hi.NcParsers.Keywords.PositioningOverride.html">PositioningOverride</a> entry beats this modal state for
|
||||
its word. The section stays <code>G91</code> after the consumers have
|
||||
rewritten the block's words to absolutes (the next block's lookback
|
||||
needs it); the words that were converted are listed in the one-shot
|
||||
<a class="xref" href="Hi.NcParsers.Keywords.IncrementalWords.html">IncrementalWords</a> record. Property names are used as
|
||||
JSON keys via <code>nameof</code>.</p>
|
||||
<p>
|
||||
<a class="xref" href="Hi.NcParsers.Keywords.IPositioningDef.html#Hi_NcParsers_Keywords_IPositioningDef_Term">Term</a> is the brand-specific G-code (Fanuc/ISO G90/G91);
|
||||
<a class="xref" href="Hi.NcParsers.Keywords.IPositioningDef.html#Hi_NcParsers_Keywords_IPositioningDef_Mode">Mode</a> is the conventional, brand-neutral name
|
||||
|
||||
Reference in New Issue
Block a user