deploy fixed MRR drift and webservice CylindroidHolder buckle branch update issue.

This commit is contained in:
2026-05-28 19:42:05 +08:00
parent d7836db45f
commit 95b5790622
140 changed files with 8079 additions and 14099 deletions
@@ -217,6 +217,16 @@ substitutes a resolved literal back into the same field in the
Evaluation bundle; <a class="xref" href="Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucGotoSyntax.html">FanucGotoSyntax</a> then
<code>int.TryParse</code>s the final string to produce an int target.
</p>
<p>
<b>Lifecycle of the condition fields.</b>
<ul><li><a class="xref" href="Hi.NcParsers.Keywords.FanucGoto.html#Hi_NcParsers_Keywords_FanucGoto_Condition">Condition</a> is written at Parsing time as the raw
expression text and substituted in place by
<a class="xref" href="Hi.NcParsers.EvaluationSyntaxs.VariableEvaluatorSyntax.html">VariableEvaluatorSyntax</a> pass-2 — the
original text is preserved at <code>Formula.FanucGoto.Condition</code>
when substitution succeeds.</li><li><a class="xref" href="Hi.NcParsers.Keywords.FanucGoto.html#Hi_NcParsers_Keywords_FanucGoto_ConditionEvaluated">ConditionEvaluated</a> is the host-level stamp
written by <a class="xref" href="Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucGotoSyntax.html">FanucGotoSyntax</a>
carrying the tri-state truthy outcome.</li></ul>
</dd>
</dl>
<dl class="jumplist">
@@ -298,6 +308,46 @@ G66 modal" via the carried section.
<a class="xref" href="Hi.NcParsers.Keywords.TapeBoundary.html">TapeBoundary</a> line — e.g. <code>O1234</code> or
<code>&lt;O1234&gt;</code>. <a class="xref" href="Hi.NcParsers.Keywords.FanucProgramNumber.html#Hi_NcParsers_Keywords_FanucProgramNumber_Wrapper">Wrapper</a> records the surface form
so a parsed block can be emitted back to the original notation.</p>
</dd>
</dl>
<dl class="jumplist">
<dt><a class="xref" href="Hi.NcParsers.Keywords.FanucWhileDo.html">FanucWhileDo</a></dt>
<dd><p>Fanuc Custom Macro B WHILE/END bounded-loop record. Stamped on the
host block by
<a class="xref" href="Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.html">FanucWhileDoSyntax</a> after the
control-flow decision has been made; produced earlier by
<a class="xref" href="Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.html">FanucWhileDoParsingSyntax</a> as a
parsing-stage sub-section (<code>Parsing.FanucWhileDo</code>) carrying the
raw captured fields.</p>
<p>
Two phrases map to the same shape, distinguished by <a class="xref" href="Hi.NcParsers.Keywords.FanucWhileDo.html#Hi_NcParsers_Keywords_FanucWhileDo_Term">Term</a>:
<ul><li><code>WHILE [&lt;bool-expr&gt;] DO &lt;m&gt;</code> — loop entry.
<a class="xref" href="Hi.NcParsers.Keywords.FanucWhileDo.html#Hi_NcParsers_Keywords_FanucWhileDo_Condition">Condition</a> holds the expression text from inside the
brackets at parsing time; substituted to a numeric
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.text.json.nodes.jsonvalue">JsonValue</a> by
<a class="xref" href="Hi.NcParsers.EvaluationSyntaxs.VariableEvaluatorSyntax.html">VariableEvaluatorSyntax</a> in place.
<a class="xref" href="Hi.NcParsers.Keywords.FanucWhileDo.html#Hi_NcParsers_Keywords_FanucWhileDo_ConditionEvaluated">ConditionEvaluated</a> carries the host-level truthy
outcome at stamp time.</li><li><code>END &lt;m&gt;</code> — loop terminator. Carries no condition;
unconditionally reverse-jumps to the matching WHILE block on every
execution (re-evaluation of the entry condition is the WHILE block's
responsibility).</li></ul>
<p>
<a class="xref" href="Hi.NcParsers.Keywords.FanucWhileDo.html#Hi_NcParsers_Keywords_FanucWhileDo_LoopId">LoopId</a> is the spec-named "identification number for
nesting" (the <code>m</code> in <code>DO m</code> / <code>END m</code>). Nested loops
must use distinct LoopIds; matching is by exact value. Same-LoopId
nesting is spec-undefined and not given special handling here.
</p>
<p>
Active loop frames are carried block-to-block via the top-level
<code>WhileFrames</code> JSON section (a <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.text.json.nodes.jsonobject">JsonObject</a>
keyed by LoopId-as-string, each entry recording the
<code>BeginLineNo</code> of the WHILE block that opened that frame).
Carried by <a class="xref" href="Hi.NcParsers.PostLogicSyntaxs.ModalCarrySyntax.html">ModalCarrySyntax</a> as part
of its <a class="xref" href="Hi.NcParsers.PostLogicSyntaxs.ModalCarrySyntax.html#Hi_NcParsers_PostLogicSyntaxs_ModalCarrySyntax_Logic">Logic</a> tracked
keys (mutated in Evaluation, must reach Logic-stage consumers and
downstream blocks unchanged).
</p>
</dd>
</dl>
<dl class="jumplist">
@@ -498,8 +548,12 @@ Interfaces
<dl class="jumplist">
<dt><a class="xref" href="Hi.NcParsers.Keywords.IArcMotionDef.html">IArcMotionDef</a></dt>
<dd><p>Arc motion data written by <a class="xref" href="Hi.NcParsers.LogicSyntaxs.CircularMotionSyntax.html">CircularMotionSyntax</a>.
Stored under the <a class="xref" href="Hi.Motion.html">Hi.Motion</a> JSON section alongside
<a class="xref" href="Hi.NcParsers.Keywords.IMotionEventDef.html">IMotionEventDef</a> properties.</p>
Stored under the <a class="xref" href="Hi.NcParsers.Keywords.MotionEvent.html">MotionEvent</a> JSON section alongside
<a class="xref" href="Hi.NcParsers.Keywords.IMotionEventDef.html">IMotionEventDef</a> properties. The arc plane is read from the
modal <a class="xref" href="Hi.NcParsers.Keywords.PlaneSelect.html">PlaneSelect</a> section via
<a class="xref" href="Hi.NcParsers.LogicSyntaxs.PlaneSelectSyntax.html#Hi_NcParsers_LogicSyntaxs_PlaneSelectSyntax_GetPlaneNormalDir_System_Text_Json_Nodes_JsonObject_">GetPlaneNormalDir(JsonObject)</a> rather than
cached on the event — same source of truth as
<a class="xref" href="Hi.NcParsers.LogicSyntaxs.IsoG68RotationSyntax.html">IsoG68RotationSyntax</a>.</p>
</dd>
</dl>
<dl class="jumplist">