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
@@ -197,6 +197,80 @@ Must be placed after <a class="xref" href="Hi.NcParsers.LogicSyntaxs.CannedCycle
</dd></dl>
<h2 id="Hi_NcParsers_LogicSyntaxs_PeckDrillingCycleSyntax_examples">Examples</h2>
<p>Both cases below pre-populate <a class="xref" href="Hi.NcParsers.Keywords.CannedCycle.html">CannedCycle</a> as
<a class="xref" href="Hi.NcParsers.LogicSyntaxs.CannedCycleResolveSyntax.html">CannedCycleResolveSyntax</a> would have written it. There
is no <code>#Previous:</code>, so <code>GetLastProgramXyz</code> returns
<code>Vec3d.Zero</code><code>initZ = 0</code>. A
<a class="xref" href="Hi.NcParsers.Dependencys.Generic.FallbackConfig.html">FallbackConfig</a> dep with the
default <code>PeckRetractionDistance_mm = 5</code> is injected via
<code>BuildAndDump(..., deps:)</code>. Cycle parameters are chosen so
<code>totalFeedLength = R bottomZ = 10</code> and <code>Q = 10</code>
exactly one stroke, no remainder; the items list stays minimal.</p>
<p>
G83 G98 — rapid to init (z=0), rapid to R=2, feed to bottom Z=-8 at
F=600 mm/min → 10 mm/s, rapid back to R=2, then a final rapid to
init Z=0 (G98). Five items:
</p>
#BeforeBuild:
<pre><code class="lang-csharp">{
"Parsing": { "G83": { "X": 50, "Y": 30, "Z": -8, "R": 2, "Q": 10, "F": 600 } },
"CannedCycle": {
"Term": "G83", "ReturnMode": "G98",
"Params": { "X": 50, "Y": 30, "Z": -8, "R": 2, "Q": 10 }
}
}</code></pre>
#AfterBuild:
<pre><code class="lang-csharp">{
"CannedCycle": {
"Term": "G83", "ReturnMode": "G98",
"Params": { "X": 50, "Y": 30, "Z": -8, "R": 2, "Q": 10 }
},
"Feedrate": { "FeedrateValue": 600, "Term": "G94", "Unit": "mm/min" },
"CompoundMotion": {
"Term": "G83",
"Items": [
{ "ProgramXyz": { "X": 50, "Y": 30, "Z": 0 }, "MotionEvent": { "Form": "McLinear", "IsRapid": true } },
{ "ProgramXyz": { "X": 50, "Y": 30, "Z": 2 }, "MotionEvent": { "Form": "McLinear", "IsRapid": true } },
{ "ProgramXyz": { "X": 50, "Y": 30, "Z": -8 }, "MotionEvent": { "Form": "McLinear", "Feedrate_mmds": 10 } },
{ "ProgramXyz": { "X": 50, "Y": 30, "Z": 2 }, "MotionEvent": { "Form": "McLinear", "IsRapid": true } },
{ "ProgramXyz": { "X": 50, "Y": 30, "Z": 0 }, "MotionEvent": { "Form": "McLinear", "IsRapid": true } }
]
},
"ProgramXyz": { "X": 50, "Y": 30, "Z": 0 }
}</code></pre>
G83 G99 — same cycle but the return mode is R-point. Since the
retract-to-R rapid already lands at <code>z = R</code>, the
<code>finalZ != rPoint</code> guard skips the extra final-rapid item.
Four items, and the block's <code>ProgramXyz</code> lookback anchor lands
at R-point:
#BeforeBuild:
<pre><code class="lang-csharp">{
"Parsing": { "G83": { "X": 50, "Y": 30, "Z": -8, "R": 2, "Q": 10, "F": 600 } },
"CannedCycle": {
"Term": "G83", "ReturnMode": "G99",
"Params": { "X": 50, "Y": 30, "Z": -8, "R": 2, "Q": 10 }
}
}</code></pre>
#AfterBuild:
<pre><code class="lang-csharp">{
"CannedCycle": {
"Term": "G83", "ReturnMode": "G99",
"Params": { "X": 50, "Y": 30, "Z": -8, "R": 2, "Q": 10 }
},
"Feedrate": { "FeedrateValue": 600, "Term": "G94", "Unit": "mm/min" },
"CompoundMotion": {
"Term": "G83",
"Items": [
{ "ProgramXyz": { "X": 50, "Y": 30, "Z": 0 }, "MotionEvent": { "Form": "McLinear", "IsRapid": true } },
{ "ProgramXyz": { "X": 50, "Y": 30, "Z": 2 }, "MotionEvent": { "Form": "McLinear", "IsRapid": true } },
{ "ProgramXyz": { "X": 50, "Y": 30, "Z": -8 }, "MotionEvent": { "Form": "McLinear", "Feedrate_mmds": 10 } },
{ "ProgramXyz": { "X": 50, "Y": 30, "Z": 2 }, "MotionEvent": { "Form": "McLinear", "IsRapid": true } }
]
},
"ProgramXyz": { "X": 50, "Y": 30, "Z": 2 }
}</code></pre>
<h2 id="Hi_NcParsers_LogicSyntaxs_PeckDrillingCycleSyntax_remarks">Remarks</h2>
<div class="markdown level0 remarks"><p>G73 (high-speed peck) retracts only a small distance instead of fully