This commit is contained in:
2026-09-12 18:16:27 +08:00
parent b7f55aa631
commit 397a7a8cc4
96 changed files with 1167 additions and 1259 deletions
@@ -112,9 +112,6 @@ hold across it, and the traps that survive a careful reading of any single file.
where a shipped surface depends on it, but the engine's own structure is covered by the generated
<a href="../../api/Hi.Machining.html">API Reference</a>, which stays correct in a way a hand-written index could
not.</p>
<p>Neither is the outgoing Windows desktop client. It takes no new feature work, so a hand-written
index of its tree drifts with every flagship change and is read by nobody; the same reasoning
retired the page-by-page map of its files.</p>
<h2 id="see-also">See Also</h2>
<ul>
<li><a class="xref" href="../index.html">HiNC App Anatomy</a> — the section index, and the surface-keyed way in</li>
@@ -259,9 +259,15 @@ copy-paste for indexed objects. Documented in
<a class="xref" href="../widget/mat4d-control.html">Mat4dControl Component</a>.</li>
</ul>
<h2 id="controller-and-demo">Controller and Demo</h2>
<p><code>Controller/</code> is the single-file surface behind the legacy controller page. It has a successor in
<code>Mech/SoftNcRunnerController.cs</code>, whose own doc comment says so, but <strong>both are live</strong> — the legacy
page has not been removed. Documented in <a class="xref" href="../legacy-controller.html">Legacy Controller</a>.</p>
<p><code>Controller/</code> is the single-file surface over the legacy HardNcEnv model, <code>MachiningProject.NcEnv</code>.
The Legacy Controller page that drove it was removed on 2026-09-11, but the controller is still
mounted: its routes edit the legacy tables, a different store from the runner tables that
<code>Mech/SoftNcRunnerController.cs</code> — its successor, as that file's own doc comment says — edits. The
successor covers the brand, the axis limits and rapid feedrates, the tooling time, the work
coordinates, the datum tables and the tool offsets, but not every route — among them the work-coordinate Align
P0 pair, the shortest-rotary toggle, the per-axis max rotary speed and the Heidenhain master-axis
character have no soft-runner endpoint. Only <code>GET cnc-brand</code> still has a client — the Execution
tool bar's Heidenhain Coordinate gate. Documented in <a class="xref" href="../legacy-controller-settings.html">Legacy Controller Model (HardNcEnv)</a>.</p>
<p><code>Demo/</code> is customer-facing sample code — a custom colour guide and a per-step optimization sweep —
compiled into the assembly with no call site in the running application. Read it as an example of
how to extend the engine, not as part of the shipped behaviour.</p>
@@ -95,8 +95,8 @@ out where they occur.</p>
<h2 id="the-one-thing-to-know-first">The One Thing to Know First</h2>
<p><code>components/</code> is grouped <strong>both ways at the same level</strong>, and that is deliberate rather than untidy:</p>
<ul>
<li><strong>Page-scoped</strong> — <code>components/controller/</code>, <code>components/execution/</code> and half of <code>components/mech/</code>
are chrome for exactly one route.</li>
<li><strong>Page-scoped</strong> — <code>components/execution/</code> and half of <code>components/mech/</code> are chrome for exactly
one route.</li>
<li><strong>Domain-scoped</strong> — <code>components/geom/</code>, <code>components/topo/</code>, <code>components/toolhouse/</code>,
<code>components/spindle/</code>, <code>components/workpiece/</code> and <code>components/mission/</code> are pulled in from
wherever the domain surfaces, most often the Control Tree.</li>
@@ -200,7 +200,7 @@ place&rdquo; behaviour the tree pages describe. Documented in
<a class="xref" href="../platform/session-state.html">Session State</a> for the keep-mounted flag that decides whether a
collapse unmounts its content.</li>
<li><code>wwwroot-src/src/components/mission/</code>, <code>.../toolhouse/</code>, <code>.../spindle/</code>, <code>.../preference/</code>,
<code>.../mech/</code>, <code>.../workpiece/</code> and <code>.../controller/</code> — the domain and page folders named above. The
<code>.../mech/</code> and <code>.../workpiece/</code> — the domain and page folders named above. The
<code>*Div.vue</code> suffix inside the Tool House folder is a convention carried over from the legacy Blazor
components: a Div is an embeddable content fragment with no panel chrome.</li>
</ul>