This commit is contained in:
2026-09-09 17:35:23 +08:00
parent 2a98ae7556
commit 161af68fe3
1271 changed files with 58251 additions and 98639 deletions
@@ -6,7 +6,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Class HeidenhainCcSyntax | HiAPI-C# 2025 ">
<meta name="description" content="Heidenhain circle-center statement (CC X+12.7 Y+12.7). The coordinates land in the nested Parsing.CC record — deliberately not on the Parsing root, where would mistake the center for a motion endpoint. The Logic-stage turns the record into the modal circle-center section consumed by the arc syntax. Must run before in the bundle (the \b guard keeps a C statement from matching CC and vice versa, but CC-first is the safe order).">
<meta name="description" content="Heidenhain circle-center statement (CC X+12.7 Y+12.7). The coordinates land in the nested Parsing.CC record — deliberately not on the Parsing root, where would mistake the center for a motion endpoint. The Logic-stage turns the record into the modal circle-center section consumed by the arc syntax. Must run before in the bundle (the \b guard keeps a C statement from matching CC and vice versa, but CC-first is the safe order). An incremental center (CC IX+0 IY+11) is a distance from the last programmed tool position, not from the previous center: the words land in the same nested record with the block-root PositioningOverride stamp (see ), and the Heidenhain instance walks the CC record so the center is absolute by the time the circle-center syntax freezes it.">
<link rel="icon" href="../img/HiAPI.favicon.ico">
<link rel="stylesheet" href="../public/docfx.min.css">
<link rel="stylesheet" href="../public/main.css">
@@ -106,6 +106,16 @@ turns the record into the modal circle-center section consumed by the
arc syntax. Must run before <a class="xref" href="Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainCSyntax.html">HeidenhainCSyntax</a> in the
bundle (the <code>\b</code> guard keeps a <code>C</code> statement from matching
<code>CC</code> and vice versa, but CC-first is the safe order).</p>
<p>
An incremental center (<code>CC IX+0 IY+11</code>) is a distance from the
last programmed <b>tool</b> position, not from the previous center:
the words land in the same nested record with the block-root
<code>PositioningOverride</code> stamp (see
<a class="xref" href="Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainIncrementalAxisWordUtil.html">HeidenhainIncrementalAxisWordUtil</a>), and the Heidenhain
<a class="xref" href="Hi.NcParsers.LogicSyntaxs.IncrementalResolveSyntax.html">IncrementalResolveSyntax</a> instance walks
the <code>CC</code> record so the center is absolute by the time the
circle-center syntax freezes it.
</p>
</div>
<div class="markdown conceptual"></div>
@@ -191,6 +201,14 @@ bundle (the <code>\b</code> guard keeps a <code>C</code> statement from matching
<p>#BeforeBuild.UnparsedText: <code>CC X+12.7 Y+12.7</code>
#AfterBuild:</p>
<pre><code class="lang-csharp">{ "Parsing": { "CC": { "X": 12.7, "Y": 12.7 } } }</code></pre>
<p>Incremental center — same record, plus the per-axis stamp; the block
is not bare (it stated coordinates, they are just relative):
#BeforeBuild.UnparsedText: <code>CC IX+0 IY+11</code>
#AfterBuild:</p>
<pre><code class="lang-csharp">{
"Parsing": { "CC": { "X": 0, "Y": 11 } },
"PositioningOverride": { "X": "Incremental", "Y": "Incremental" }
}</code></pre>
@@ -264,6 +282,81 @@ bundle (the <code>\b</code> guard keeps a <code>C</code> statement from matching
<h3 id="Hi_NcParsers_ParsingSyntaxs_Heidenhain_HeidenhainCcSyntax_BareKey" data-uid="Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainCcSyntax.BareKey">
BareKey
</h3>
<div class="markdown level1 summary"><p>Marker key written into the record when the <code>CC</code> block states no
coordinates at all AND left nothing unread — the official klartext
spelling for &ldquo;use the last programmed position as the circle center&rdquo;.
Consumed by
<a class="xref" href="Hi.NcParsers.LogicSyntaxs.Heidenhain.HeidenhainCircleCenterSyntax.html">HeidenhainCircleCenterSyntax</a>,
which resolves the position at THIS block.</p>
<p>
The residue condition is load-bearing: a <code>CC</code> whose coordinates
this parser cannot read (a malformed word, a spelling no grab here
knows) also grabs nothing, and marking it bare would fabricate a
center at the current position instead of leaving the arc to report
that it has none. The incremental <code>CC IX+.. IY+..</code> used to be
that case; it is a stated center now.
</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public const string BareKey = &quot;Bare&quot;</code></pre>
</div>
<h4 class="section">Field Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd></dd>
</dl>
<h3 id="Hi_NcParsers_ParsingSyntaxs_Heidenhain_HeidenhainCcSyntax_CenterTags" data-uid="Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainCcSyntax.CenterTags">
CenterTags
</h3>
<div class="markdown level1 summary"><p>The axis words a centre can state (the incremental grab is limited to these).</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static readonly string[] CenterTags</code></pre>
</div>
<h4 class="section">Field Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a>[]</dt>
<dd></dd>
</dl>
<h3 id="Hi_NcParsers_ParsingSyntaxs_Heidenhain_HeidenhainCcSyntax_KeyConst" data-uid="Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainCcSyntax.KeyConst">
KeyConst