rename XFactory.Regs to XFactory.Generators.

This commit is contained in:
2026-05-23 21:23:06 +08:00
parent 8b285cc863
commit 058003f395
155 changed files with 16416 additions and 1261 deletions
@@ -188,6 +188,75 @@ Modal — persists via backward lookback until changed or cancelled.
</dd></dl>
<h2 id="Hi_NcParsers_LogicSyntaxs_IsoLocalCoordinateOffsetSyntax_examples">Examples</h2>
<p><code>Mat4d</code> arrays are 16 plain doubles in column-major order; pure
translation by <code>(tx,ty,tz)</code> is
<code>[1,0,0,0, 0,1,0,0, 0,0,1,0, tx,ty,tz,1]</code> — see
<a class="xref" href="Hi.NcParsers.LogicSyntaxs.IsoCoordinateOffsetSyntax.html">IsoCoordinateOffsetSyntax</a> for the column-major template.</p>
<p>
First block of the stream (no <code>#Previous:</code>) — the syntax
stamps a zero-offset section and an identity translation in the
chain so downstream lookback always sees a concrete state:
</p>
#BeforeBuild:
<pre><code class="lang-csharp">{ }</code></pre>
#AfterBuild:
<pre><code class="lang-csharp">{
"IsoLocalCoordinateOffset": { "Offset_X": 0, "Offset_Y": 0, "Offset_Z": 0 },
"ProgramToMcTransform": [
{
"Source": "IsoLocalCoordinateOffset",
"Kind": "Static",
"Mat4d": [1,0,0,0, 0,1,0,0, 0,0,1,0, 0,0,0,1]
}
]
}</code></pre>
<code>G52 X10 Y20 Z5</code> on a non-first block alongside an unrelated
M03 flag — the <code>G52</code> sub-section is consumed (removed from
<code>Parsing</code>) and the translation is composed into the chain; the
unrelated flag stays because this syntax does not call
<code>CleanupParsing</code>:
#Previous:
<pre><code class="lang-csharp">{ "IsoLocalCoordinateOffset": { "Offset_X": 0, "Offset_Y": 0, "Offset_Z": 0 } }</code></pre>
#BeforeBuild:
<pre><code class="lang-csharp">{
"Parsing": {
"Flags": ["M03"],
"G52": { "X": 10, "Y": 20, "Z": 5 }
}
}</code></pre>
#AfterBuild:
<pre><code class="lang-csharp">{
"Parsing": { "Flags": ["M03"] },
"IsoLocalCoordinateOffset": { "Offset_X": 10, "Offset_Y": 20, "Offset_Z": 5 },
"ProgramToMcTransform": [
{
"Source": "IsoLocalCoordinateOffset",
"Kind": "Static",
"Mat4d": [1,0,0,0, 0,1,0,0, 0,0,1,0, 10,20,5,1]
}
]
}</code></pre>
No G52 on the current block but <code>#Previous:</code> had a non-zero
offset — modal lookback inherits it (with the translation
re-composed into this block's chain):
#Previous:
<pre><code class="lang-csharp">{ "IsoLocalCoordinateOffset": { "Offset_X": 10, "Offset_Y": 20, "Offset_Z": 5 } }</code></pre>
#BeforeBuild:
<pre><code class="lang-csharp">{ "Parsing": { "Flags": ["M03"] } }</code></pre>
#AfterBuild:
<pre><code class="lang-csharp">{
"Parsing": { "Flags": ["M03"] },
"IsoLocalCoordinateOffset": { "Offset_X": 10, "Offset_Y": 20, "Offset_Z": 5 },
"ProgramToMcTransform": [
{
"Source": "IsoLocalCoordinateOffset",
"Kind": "Static",
"Mat4d": [1,0,0,0, 0,1,0,0, 0,0,1,0, 10,20,5,1]
}
]
}</code></pre>