deploy fixed MRR drift and webservice CylindroidHolder buckle branch update issue.
This commit is contained in:
@@ -195,6 +195,65 @@ the individual cycle syntaxes in the chain.
|
||||
</dd></dl>
|
||||
|
||||
|
||||
<h2 id="Hi_NcParsers_LogicSyntaxs_CannedCycleResolveSyntax_examples">Examples</h2>
|
||||
<p>Direct G81 active cycle, no <code>#Previous:</code> (so
|
||||
<code>lastProgramXyz = Vec3d.Zero</code>) and no
|
||||
<a class="xref" href="Hi.NcParsers.Keywords.Positioning.html">Positioning</a> mode (so the absolute-coordinate path
|
||||
runs, not G91 incremental). The resolved cycle sub-section is left
|
||||
in <code>Parsing</code> under the cycle code for downstream cycle
|
||||
syntaxes to consume; the <a class="xref" href="Hi.NcParsers.Keywords.CannedCycle.html">CannedCycle</a> section
|
||||
carries the snapshot used for modal lookback.
|
||||
<code>ReturnMode</code> defaults to <a class="xref" href="Hi.NcParsers.Keywords.Generic.IsoKeywords.html#Hi_NcParsers_Keywords_Generic_IsoKeywords_G98">G98</a> when
|
||||
neither the current block nor a previous block declares G98/G99:
|
||||
#BeforeBuild:</p>
|
||||
<pre><code class="lang-csharp">{ "Parsing": { "G81": { "X": 50, "Y": 30, "Z": -10, "R": 2 } } }</code></pre>
|
||||
<p>#AfterBuild:</p>
|
||||
<pre><code class="lang-csharp">{
|
||||
"Parsing": { "G81": { "X": 50, "Y": 30, "Z": -10, "R": 2 } },
|
||||
"CannedCycle": {
|
||||
"Term": "G81",
|
||||
"ReturnMode": "G98",
|
||||
"Params": { "X": 50, "Y": 30, "Z": -10, "R": 2 }
|
||||
}
|
||||
}</code></pre>
|
||||
<p>Modal repeat: the current block carries only an X override and no
|
||||
cycle code, but <code>#Previous:</code> has an active G81 with stored
|
||||
params. <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.text.json.nodes.jsonobject">MergeModalCycleSection(JsonObject, JsonObject, ISentenceCarrier, NcDiagnosticProgress)</a>
|
||||
merges X=60 (override) with Y/Z/R from stored params, removes the
|
||||
consumed X from <code>Parsing</code> root, and writes the merged section
|
||||
back to <code>Parsing.G81</code>. <code>ReturnMode</code> inherits “G98” from
|
||||
the previous block's <a class="xref" href="Hi.NcParsers.Keywords.ICannedCycleDef.html#Hi_NcParsers_Keywords_ICannedCycleDef_ReturnMode">ReturnMode</a>:
|
||||
#Previous:</p>
|
||||
<pre><code class="lang-csharp">{
|
||||
"CannedCycle": {
|
||||
"Term": "G81",
|
||||
"ReturnMode": "G98",
|
||||
"Params": { "X": 50, "Y": 30, "Z": -10, "R": 2 }
|
||||
},
|
||||
"ProgramXyz": { "X": 50, "Y": 30, "Z": 0 }
|
||||
}</code></pre>
|
||||
<p>#BeforeBuild:</p>
|
||||
<pre><code class="lang-csharp">{ "Parsing": { "X": 60 } }</code></pre>
|
||||
<p>#AfterBuild:</p>
|
||||
<pre><code class="lang-csharp">{
|
||||
"Parsing": { "G81": { "X": 60, "Y": 30, "Z": -10, "R": 2 } },
|
||||
"CannedCycle": {
|
||||
"Term": "G81",
|
||||
"ReturnMode": "G98",
|
||||
"Params": { "X": 60, "Y": 30, "Z": -10, "R": 2 }
|
||||
}
|
||||
}</code></pre>
|
||||
<p>Explicit G80 cancel: standalone G80 flag with no cycle data. The
|
||||
G80 flag is consumed and <a class="xref" href="Hi.NcParsers.Keywords.CannedCycle.html">CannedCycle</a> = <code>{ Term: G80 }</code>
|
||||
is written as a hard sentinel that
|
||||
<a class="xref" href="Hi.NcParsers.Syntaxs.SyntaxPiece.html">FindPreviousActiveCycle(LazyLinkedListNode<SyntaxPiece>, string[])</a> reads
|
||||
to terminate modal lookback. No <code>ReturnMode</code> hint here (no
|
||||
G98/G99 flag on the same block):
|
||||
#BeforeBuild:</p>
|
||||
<pre><code class="lang-csharp">{ "Parsing": { "Flags": ["G80"] } }</code></pre>
|
||||
<p>#AfterBuild:</p>
|
||||
<pre><code class="lang-csharp">{ "CannedCycle": { "Term": "G80" } }</code></pre>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user