deploy.
This commit is contained in:
@@ -93,10 +93,10 @@ knows which directory a change landed in but not which screen it shows up on.</p
|
||||
<p>Ordered the way a request travels: the front end first, then the process that serves it.</p>
|
||||
<h2 id="directories">Directories</h2>
|
||||
<ul>
|
||||
<li><a href="webservice-spa/index.html">Web Service SPA Source Tree</a> — the Quasar front end under
|
||||
<li><a href="webservice-spa.html">Web Service SPA Source Tree</a> — the Quasar front end under
|
||||
<code>wwwroot-src/src</code>: how <code>components/</code> is grouped two ways at once, what the Control-Tree registry
|
||||
actually is, and why half the route table is redirects</li>
|
||||
<li><a href="webservice-backend/index.html">Web Service Backend Source Tree</a> — the ASP.NET Core half: how to read
|
||||
<li><a href="webservice-backend.html">Web Service Backend Source Tree</a> — the ASP.NET Core half: how to read
|
||||
a filename, why folder nesting does not predict a route, and which declared hub is never mapped</li>
|
||||
</ul>
|
||||
<h2 id="what-this-layer-is-for">What This Layer Is For</h2>
|
||||
@@ -118,8 +118,8 @@ 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>
|
||||
<li><a class="xref" href="webservice-spa/index.html">Web Service SPA Source Tree</a> — the flagship front end</li>
|
||||
<li><a class="xref" href="webservice-backend/index.html">Web Service Backend Source Tree</a> — the process that
|
||||
<li><a class="xref" href="webservice-spa.html">Web Service SPA Source Tree</a> — the flagship front end</li>
|
||||
<li><a class="xref" href="webservice-backend.html">Web Service Backend Source Tree</a> — the process that
|
||||
serves it</li>
|
||||
<li><a class="xref" href="../platform/index.html">Platform</a> — the machinery under every screen, entered by mechanism rather
|
||||
than by directory</li>
|
||||
|
||||
@@ -16,10 +16,10 @@
|
||||
<a href="index.html" name="" title="Overview">Overview</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="webservice-spa/index.html" name="" title="Web Service SPA">Web Service SPA</a>
|
||||
<a href="webservice-spa.html" name="" title="Web Service SPA">Web Service SPA</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="webservice-backend/index.html" name="" title="Web Service Backend">Web Service Backend</a>
|
||||
<a href="webservice-backend.html" name="" title="Web Service Backend">Web Service Backend</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
|
||||
{"items":[{"name":"Overview","href":"index.html","topicHref":"index.html"},{"name":"Web Service SPA","href":"webservice-spa/index.html","topicHref":"webservice-spa/index.html"},{"name":"Web Service Backend","href":"webservice-backend/index.html","topicHref":"webservice-backend/index.html"}]}
|
||||
{"items":[{"name":"Overview","href":"index.html","topicHref":"index.html"},{"name":"Web Service SPA","href":"webservice-spa.html","topicHref":"webservice-spa.html"},{"name":"Web Service Backend","href":"webservice-backend.html","topicHref":"webservice-backend.html"}]}
|
||||
|
||||
+42
-42
@@ -7,13 +7,13 @@
|
||||
<meta name="title" content="Web Service Backend Source Tree | HiAPI-C# 2025 ">
|
||||
|
||||
|
||||
<link rel="icon" href="../../../img/HiAPI.favicon.ico">
|
||||
<link rel="stylesheet" href="../../../public/docfx.min.css">
|
||||
<link rel="stylesheet" href="../../../public/main.css">
|
||||
<meta name="docfx:navrel" content="../../../toc.html">
|
||||
<meta name="docfx:tocrel" content="../toc.html">
|
||||
<link rel="icon" href="../../img/HiAPI.favicon.ico">
|
||||
<link rel="stylesheet" href="../../public/docfx.min.css">
|
||||
<link rel="stylesheet" href="../../public/main.css">
|
||||
<meta name="docfx:navrel" content="../../toc.html">
|
||||
<meta name="docfx:tocrel" content="toc.html">
|
||||
|
||||
<meta name="docfx:rel" content="../../../">
|
||||
<meta name="docfx:rel" content="../../">
|
||||
|
||||
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
<meta name="loc:copy" content="Copy">
|
||||
<meta name="loc:downloadPdf" content="Download PDF">
|
||||
|
||||
<script type="module" src="./../../../public/docfx.min.js"></script>
|
||||
<script type="module" src="./../../public/docfx.min.js"></script>
|
||||
|
||||
<script>
|
||||
const theme = localStorage.getItem('theme') || 'auto'
|
||||
@@ -43,8 +43,8 @@
|
||||
<header class="bg-body border-bottom">
|
||||
<nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
|
||||
<div class="container-xxl flex-nowrap">
|
||||
<a class="navbar-brand" href="../../../index.html">
|
||||
<img id="logo" class="svg" src="../../../img/HiAPI.logo.png" alt="">
|
||||
<a class="navbar-brand" href="../../index.html">
|
||||
<img id="logo" class="svg" src="../../img/HiAPI.logo.png" alt="">
|
||||
|
||||
</a>
|
||||
<button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">
|
||||
@@ -145,7 +145,7 @@ list is unreachable however complete its class looks — see the trap under <cod
|
||||
<li><strong>The tree is not self-contained.</strong> The project service types <code>Program.cs</code> leans on hardest live in
|
||||
the sibling HiNc engine repository, not here.</li>
|
||||
</ul>
|
||||
<p>Documented in <a class="xref" href="../../platform/program-and-hosting.html">Program and Hosting</a>.</p>
|
||||
<p>Documented in <a class="xref" href="../platform/program-and-hosting.html">Program and Hosting</a>.</p>
|
||||
<h2 id="execution">Execution</h2>
|
||||
<p><code>Execution/</code> is the run cockpit's whole backend: playback control, the strip and cycle-line charts,
|
||||
the NC-program branch index, run-output queries, and the real-time push layer.</p>
|
||||
@@ -166,10 +166,10 @@ the repository references. The Execution canvas rides <code>Disp/RenderingHub.cs
|
||||
canvas. A reader looking for “the hub behind the Execution page” by name will find this file first
|
||||
and be wrong.</p>
|
||||
</div>
|
||||
<p>Documented in <a class="xref" href="../../execution/index.html">Execution Page</a>,
|
||||
<a class="xref" href="../../execution/program.html">Program Branch</a>,
|
||||
<a class="xref" href="../../execution/selected-step-info-panel.html">Selected-Step Info Panel</a>,
|
||||
<a class="xref" href="../../execution/strip-charts.html">Strip Charts</a> and <a class="xref" href="../../execution/cycle-line-charts.html">Cycle-Line Charts</a>.</p>
|
||||
<p>Documented in <a class="xref" href="../execution/index.html">Execution Page</a>,
|
||||
<a class="xref" href="../execution/program.html">Program Branch</a>,
|
||||
<a class="xref" href="../execution/selected-step-info-panel.html">Selected-Step Info Panel</a>,
|
||||
<a class="xref" href="../execution/strip-charts.html">Strip Charts</a> and <a class="xref" href="../execution/cycle-line-charts.html">Cycle-Line Charts</a>.</p>
|
||||
<h2 id="mech">Mech</h2>
|
||||
<p><code>Mech/</code> is the largest domain folder: the REST surfaces for the machine tool, the tool house and
|
||||
cutter editing, fixtures and workpieces, spindle capability, background and coolant, and the three
|
||||
@@ -179,20 +179,20 @@ connection. <code>Mech/CutterDtoBuilder.cs</code> is the shared read-side DTO sh
|
||||
loaded project actually plays them. No SignalR hub lives here.</p>
|
||||
<ul>
|
||||
<li><code>Mech/MechBuilder/</code> — the standalone mechanism-building session, held by a process-wide singleton
|
||||
rather than per user. Documented in <a class="xref" href="../../util/mech-builder.html">Mechanism Builder Page</a>.</li>
|
||||
rather than per user. Documented in <a class="xref" href="../util/mech-builder.html">Mechanism Builder Page</a>.</li>
|
||||
<li><code>Mech/Topo/</code> — one thin controller per transformer kind, each editing an instance held in the
|
||||
keyed object store. Documented in
|
||||
<a class="xref" href="../../geom/transformer-panel.html">Transformer Select Panel</a>.</li>
|
||||
<a class="xref" href="../geom/transformer-panel.html">Transformer Select Panel</a>.</li>
|
||||
<li><code>Mech/SoftNcRunnerController.cs</code> — the one endpoint family behind the Controller branch, and the
|
||||
file whose snapshot decides which of that branch's nodes exist. Documented in
|
||||
<a class="xref" href="../../general-setup/controller/index.html">Controller Branch</a>, with
|
||||
<a class="xref" href="../../general-setup/controller/brand-matrix.html">Brand Matrix</a> for the snapshot flags themselves.</li>
|
||||
<a class="xref" href="../general-setup/controller/index.html">Controller Branch</a>, with
|
||||
<a class="xref" href="../general-setup/controller/brand-matrix.html">Brand Matrix</a> for the snapshot flags themselves.</li>
|
||||
<li><code>Mech/CsvRunnerController.cs</code> and <code>Mech/ClRunnerController.cs</code> — the two resident non-brand runner
|
||||
suits, reached from tree branches the Preference menu hides by default. Documented in
|
||||
<a class="xref" href="../../shell/preference-menu.html">Preference Menu Dropdown</a> until those branches have a page.</li>
|
||||
<a class="xref" href="../shell/preference-menu.html">Preference Menu Dropdown</a> until those branches have a page.</li>
|
||||
</ul>
|
||||
<p>Documented in <a class="xref" href="../../general-setup/index.html">General Setup Page</a> and
|
||||
<a class="xref" href="../../tool-house/index.html">Tool House Page</a> and the panels beneath them.</p>
|
||||
<p>Documented in <a class="xref" href="../general-setup/index.html">General Setup Page</a> and
|
||||
<a class="xref" href="../tool-house/index.html">Tool House Page</a> and the panels beneath them.</p>
|
||||
<h2 id="missions">Missions</h2>
|
||||
<p><code>Missions/</code> is the mission command tree's backend. Two things here surprise readers:</p>
|
||||
<ul>
|
||||
@@ -207,7 +207,7 @@ attribute once per process, replacing hand-maintained kind switches, and
|
||||
command gets an editor without a bespoke panel. <code>Missions/ScriptCompletionService.cs</code> and
|
||||
<code>Missions/ScriptCompileCheckService.cs</code> are the Roslyn pair behind the script editor; the compile
|
||||
check reuses the same options and globals type the script command uses at run time.</p>
|
||||
<p>Documented in <a class="xref" href="../../execution/mission/mission-root-panel.html">Mission Root Panel</a> and the command panels under it.</p>
|
||||
<p>Documented in <a class="xref" href="../execution/mission/mission-root-panel.html">Mission Root Panel</a> and the command panels under it.</p>
|
||||
<h2 id="disp">Disp</h2>
|
||||
<p><code>Disp/</code> is the rendering layer. <code>Disp/RenderingHub.cs</code> is the single transport surface for every 3D
|
||||
canvas in the application — canvas initialization, pointer, key and touch input, resize, view
|
||||
@@ -217,21 +217,21 @@ engines the hub resolves against. <code>Disp/StlPreviewController.cs</code> is t
|
||||
<p>The <code>*Displayee.cs</code> files are scene-graph composition objects rather than web types, and each has a
|
||||
live instantiation site: the execution scene, the equipment-setup scene, the step-subtraction scene
|
||||
and the two coordinate-frame displayees the first two compose in.</p>
|
||||
<p>Documented in <a class="xref" href="../../conventions/rendering-canvas-web-service.html">Rendering Canvas on Web Service</a>,
|
||||
<a class="xref" href="../../widget/renderingcanvas-tool-bar.html">RenderingCanvas Tool Bar</a> and — for
|
||||
<p>Documented in <a class="xref" href="../conventions/rendering-canvas-web-service.html">Rendering Canvas on Web Service</a>,
|
||||
<a class="xref" href="../widget/renderingcanvas-tool-bar.html">RenderingCanvas Tool Bar</a> and — for
|
||||
<code>Disp/StlPreviewController.cs</code> and the per-connection slot behind it —
|
||||
<a class="xref" href="../../util/stl-preview-pane.html">STL Preview Pane</a>.</p>
|
||||
<a class="xref" href="../util/stl-preview-pane.html">STL Preview Pane</a>.</p>
|
||||
<h2 id="environments">Environments</h2>
|
||||
<p><code>Environments/</code> is session and environment scope: the project lifecycle, per-user preference
|
||||
persistence, the Execution page's division flags, and the shipped localized step-present catalog. It
|
||||
is also where the Log Viewer's data comes from — the log endpoints sit on the project controller
|
||||
beside status, new, load, save, reload, save-as and close.</p>
|
||||
<p>Documented in <a class="xref" href="../../shell/main-panel.html">Main Panel</a>,
|
||||
<a class="xref" href="../../platform/session-state.html">Session State</a>,
|
||||
<a class="xref" href="../../shell/preference-menu.html">Preference Menu Dropdown</a>,
|
||||
<a class="xref" href="../../platform/i18n.html">Internationalization</a>,
|
||||
<a class="xref" href="../../platform/log-viewer.html">Log Viewer Page</a> and
|
||||
<a class="xref" href="../../execution/step-present-dialog.html">Step Present Dialog</a>.</p>
|
||||
<p>Documented in <a class="xref" href="../shell/main-panel.html">Main Panel</a>,
|
||||
<a class="xref" href="../platform/session-state.html">Session State</a>,
|
||||
<a class="xref" href="../shell/preference-menu.html">Preference Menu Dropdown</a>,
|
||||
<a class="xref" href="../platform/i18n.html">Internationalization</a>,
|
||||
<a class="xref" href="../platform/log-viewer.html">Log Viewer Page</a> and
|
||||
<a class="xref" href="../execution/step-present-dialog.html">Step Present Dialog</a>.</p>
|
||||
<h2 id="common-geom-and-widget">Common, Geom and Widget</h2>
|
||||
<ul>
|
||||
<li><code>Common/</code> — cross-cutting infrastructure with no single domain owner: the optional login gate, the
|
||||
@@ -245,31 +245,31 @@ disconnect handler always walks an empty registry. The bound comes from the brow
|
||||
<code>wwwroot-src/src/composables/useCleanupHub.ts</code> posts the index-remove endpoint on
|
||||
<code>Common/IndexController.cs</code> for every key it holds when its host unmounts, and again whenever a
|
||||
key it registered is replaced. Documented in
|
||||
<a class="xref" href="../../conventions/dictionary-service-pattern.html">Dictionary Service Pattern</a>,
|
||||
<a class="xref" href="../../conventions/webapi-hub-cleanup-pattern.html">WebAPI Hub Cleanup Pattern</a>,
|
||||
<a class="xref" href="../../platform/login-and-auth.html">Login and Authentication</a> and
|
||||
<a class="xref" href="../../platform/log-viewer.html">Log Viewer Page</a>.</li>
|
||||
<a class="xref" href="../conventions/dictionary-service-pattern.html">Dictionary Service Pattern</a>,
|
||||
<a class="xref" href="../conventions/webapi-hub-cleanup-pattern.html">WebAPI Hub Cleanup Pattern</a>,
|
||||
<a class="xref" href="../platform/login-and-auth.html">Login and Authentication</a> and
|
||||
<a class="xref" href="../platform/log-viewer.html">Log Viewer Page</a>.</li>
|
||||
<li><code>Geom/</code> — one CRUD controller per geometry kind, on the same keyed-object pattern, and nothing
|
||||
else: no hubs, no services. Documented in <a class="xref" href="../../geom/index.html">Geometry Panels</a>.</li>
|
||||
else: no hubs, no services. Documented in <a class="xref" href="../geom/index.html">Geometry Panels</a>.</li>
|
||||
<li><code>Widget/</code> — the generic value and lifecycle controllers the reusable inputs post to: the 3D vector,
|
||||
the 4×4 matrix, and the object-management surface that handles file operations, XML editing and
|
||||
copy-paste for indexed objects. Documented in
|
||||
<a class="xref" href="../../widget/object-management-menu-button.html">Object Management Menu Button</a>,
|
||||
<a class="xref" href="../../widget/vec3d-control.html">Vec3dControl Component</a> and
|
||||
<a class="xref" href="../../widget/mat4d-control.html">Mat4dControl Component</a>.</li>
|
||||
<a class="xref" href="../widget/object-management-menu-button.html">Object Management Menu Button</a>,
|
||||
<a class="xref" href="../widget/vec3d-control.html">Vec3dControl Component</a> and
|
||||
<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>
|
||||
page has not been removed. Documented in <a class="xref" href="../legacy-controller.html">Legacy Controller</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>
|
||||
<h2 id="see-also">See Also</h2>
|
||||
<ul>
|
||||
<li><a class="xref" href="../index.html">Anatomy by Source Directory</a> — the other two source trees, and how this
|
||||
<li><a class="xref" href="index.html">Anatomy by Source Directory</a> — the other two source trees, and how this
|
||||
layer is meant to be entered</li>
|
||||
<li><a class="xref" href="../webservice-spa/index.html">Web Service SPA Source Tree</a> — the front end this process
|
||||
<li><a class="xref" href="webservice-spa.html">Web Service SPA Source Tree</a> — the front end this process
|
||||
serves and answers</li>
|
||||
</ul>
|
||||
|
||||
+39
-39
@@ -7,13 +7,13 @@
|
||||
<meta name="title" content="Web Service SPA Source Tree | HiAPI-C# 2025 ">
|
||||
|
||||
|
||||
<link rel="icon" href="../../../img/HiAPI.favicon.ico">
|
||||
<link rel="stylesheet" href="../../../public/docfx.min.css">
|
||||
<link rel="stylesheet" href="../../../public/main.css">
|
||||
<meta name="docfx:navrel" content="../../../toc.html">
|
||||
<meta name="docfx:tocrel" content="../toc.html">
|
||||
<link rel="icon" href="../../img/HiAPI.favicon.ico">
|
||||
<link rel="stylesheet" href="../../public/docfx.min.css">
|
||||
<link rel="stylesheet" href="../../public/main.css">
|
||||
<meta name="docfx:navrel" content="../../toc.html">
|
||||
<meta name="docfx:tocrel" content="toc.html">
|
||||
|
||||
<meta name="docfx:rel" content="../../../">
|
||||
<meta name="docfx:rel" content="../../">
|
||||
|
||||
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
<meta name="loc:copy" content="Copy">
|
||||
<meta name="loc:downloadPdf" content="Download PDF">
|
||||
|
||||
<script type="module" src="./../../../public/docfx.min.js"></script>
|
||||
<script type="module" src="./../../public/docfx.min.js"></script>
|
||||
|
||||
<script>
|
||||
const theme = localStorage.getItem('theme') || 'auto'
|
||||
@@ -43,8 +43,8 @@
|
||||
<header class="bg-body border-bottom">
|
||||
<nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
|
||||
<div class="container-xxl flex-nowrap">
|
||||
<a class="navbar-brand" href="../../../index.html">
|
||||
<img id="logo" class="svg" src="../../../img/HiAPI.logo.png" alt="">
|
||||
<a class="navbar-brand" href="../../index.html">
|
||||
<img id="logo" class="svg" src="../../img/HiAPI.logo.png" alt="">
|
||||
|
||||
</a>
|
||||
<button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">
|
||||
@@ -116,7 +116,7 @@ page exists for it.</p>
|
||||
<li><code>wwwroot-src/src/App.vue</code> — not the shell. It is a bare router view plus the once-per-load wiring
|
||||
that subscribes the project store to the execution-status hub. The real shell is
|
||||
<code>wwwroot-src/src/layouts/MainLayout.vue</code>. Documented in
|
||||
<a class="xref" href="../../platform/session-state.html">Session State</a>.</li>
|
||||
<a class="xref" href="../platform/session-state.html">Session State</a>.</li>
|
||||
<li><code>wwwroot-src/src/boot/auth.ts</code>, <code>wwwroot-src/src/boot/i18n.ts</code>,
|
||||
<code>wwwroot-src/src/boot/routine-toast.ts</code> — Quasar boot files, run once before mount and in a
|
||||
declared order. The auth boot file patches the global fetch and inspects every 401, which is why
|
||||
@@ -125,13 +125,13 @@ fires only while the auth store reports the login gate enabled, and not when the
|
||||
already on the login route, so on a build with the gate off a 401 redirects nowhere. The toast
|
||||
boot file patches the shared notify helper so every toast is mirrored into the footer history
|
||||
without touching a call site. Documented in
|
||||
<a class="xref" href="../../platform/login-and-auth.html">Login and Authentication</a> and
|
||||
<a class="xref" href="../../platform/i18n.html">Internationalization</a>.</li>
|
||||
<a class="xref" href="../platform/login-and-auth.html">Login and Authentication</a> and
|
||||
<a class="xref" href="../platform/i18n.html">Internationalization</a>.</li>
|
||||
<li><code>wwwroot-src/src/layouts/MainLayout.vue</code> — the shell: menu bar, the routed page container, footer.
|
||||
It also owns the mechanism every page depends on and no page implements: a project epoch, bumped
|
||||
when the loaded project changes, is the keep-alive key, so a project change destroys and rebuilds
|
||||
every cached page. Documented in <a class="xref" href="../../shell/main-panel.html">Main Panel</a> and
|
||||
<a class="xref" href="../../platform/session-state.html">Session State</a>.</li>
|
||||
every cached page. Documented in <a class="xref" href="../shell/main-panel.html">Main Panel</a> and
|
||||
<a class="xref" href="../platform/session-state.html">Session State</a>.</li>
|
||||
</ul>
|
||||
<h2 id="the-rest-edge">The REST Edge</h2>
|
||||
<p><code>wwwroot-src/src/api/</code> is one thin typed module per backend controller family — functions, DTO types
|
||||
@@ -142,7 +142,7 @@ application: each module wraps one named controller almost one-to-one.</p>
|
||||
deliberately bypass it, so “every API module goes through it” would be wrong.</li>
|
||||
<li><code>wwwroot-src/src/api/index-service.ts</code> — <strong>not</strong> a barrel file. It wraps the backend's keyed object
|
||||
store, which is where the <code>key</code> string threaded through the whole application comes from.
|
||||
Documented in <a class="xref" href="../../conventions/dictionary-service-pattern.html">Dictionary Service Pattern</a>.</li>
|
||||
Documented in <a class="xref" href="../conventions/dictionary-service-pattern.html">Dictionary Service Pattern</a>.</li>
|
||||
</ul>
|
||||
<h2 id="components">Components</h2>
|
||||
<ul>
|
||||
@@ -152,9 +152,9 @@ Documented in <a class="xref" href="../../conventions/dictionary-service-pattern
|
||||
The canvas does not render locally: it opens a SignalR connection and paints server-rendered
|
||||
frames, which is why several pages each own a canvas bound to a different backend scene.
|
||||
Documented in
|
||||
<a class="xref" href="../../conventions/rendering-canvas-web-service.html">Rendering Canvas on Web Service</a>,
|
||||
<a href="../../util/file-explorer.html">File Explorer</a> and
|
||||
<a class="xref" href="../../util/stl-preview-pane.html">STL Preview Pane</a>.</li>
|
||||
<a class="xref" href="../conventions/rendering-canvas-web-service.html">Rendering Canvas on Web Service</a>,
|
||||
<a href="../util/file-explorer.html">File Explorer</a> and
|
||||
<a class="xref" href="../util/stl-preview-pane.html">STL Preview Pane</a>.</li>
|
||||
<li><code>wwwroot-src/src/components/controlTree/</code> — the largest folder in the SPA by a factor of two, and
|
||||
a <strong>registry-driven panel system</strong> rather than a folder of tree widgets.
|
||||
<code>wwwroot-src/src/components/controlTree/itemTypes.ts</code> and its domain siblings map an item-type
|
||||
@@ -164,14 +164,14 @@ tree, gates a dirty selection switch, and syncs <code>?tree=</code>; the many
|
||||
panel components are the editors the registry resolves. It serves <strong>three</strong> consumers, not one —
|
||||
the Execution and General Setup pages each instantiate their own scoped host, while the Tool House
|
||||
page reuses the identical panels and registry through a tab cascade and never touches the host.
|
||||
Documented in <a class="xref" href="../../platform/control-tree.html">Control Tree</a> — the folder's own page — with
|
||||
<a class="xref" href="../../execution/index.html">Execution Page</a>, <a class="xref" href="../../general-setup/index.html">General Setup Page</a> and
|
||||
<a class="xref" href="../../tool-house/index.html">Tool House Page</a> for the three consumers, and
|
||||
<a class="xref" href="../../execution/program.html">Program Branch</a> for the NC-program item types and panels that live in
|
||||
Documented in <a class="xref" href="../platform/control-tree.html">Control Tree</a> — the folder's own page — with
|
||||
<a class="xref" href="../execution/index.html">Execution Page</a>, <a class="xref" href="../general-setup/index.html">General Setup Page</a> and
|
||||
<a class="xref" href="../tool-house/index.html">Tool House Page</a> for the three consumers, and
|
||||
<a class="xref" href="../execution/program.html">Program Branch</a> for the NC-program item types and panels that live in
|
||||
this folder. The nineteen <code>SoftNc*</code> panels and their registry are a wave of their own, documented
|
||||
under <a class="xref" href="../../general-setup/controller/index.html">Controller Branch</a>: which of them the tree mounts at all is decided
|
||||
by <a class="xref" href="../../general-setup/controller/brand-matrix.html">Brand Matrix</a>, and what they share is
|
||||
<a class="xref" href="../../general-setup/controller/editing-contract.html">Editing Contract</a>.</li>
|
||||
under <a class="xref" href="../general-setup/controller/index.html">Controller Branch</a>: which of them the tree mounts at all is decided
|
||||
by <a class="xref" href="../general-setup/controller/brand-matrix.html">Brand Matrix</a>, and what they share is
|
||||
<a class="xref" href="../general-setup/controller/editing-contract.html">Editing Contract</a>.</li>
|
||||
<li><code>wwwroot-src/src/components/controlTree/toolhouse/</code> — the Tool House branch's panels. Easy to
|
||||
confuse with <code>wwwroot-src/src/components/toolhouse/</code>: these are the panels the registry mounts,
|
||||
that folder holds
|
||||
@@ -180,24 +180,24 @@ the content fragments those panels embed, and the dependency runs one way only.<
|
||||
sub-folder, the uPlot charting layer. Not purely page-local:
|
||||
<code>wwwroot-src/src/components/execution/ExecutionToolBar.vue</code> is mounted by the Control Tree's
|
||||
primary panel, and the spindle contours chart imports from the charts folder. Documented in
|
||||
<a class="xref" href="../../execution/index.html">Execution Page</a>, <a class="xref" href="../../execution/strip-charts.html">Strip Charts</a> and
|
||||
<a class="xref" href="../../execution/cycle-line-charts.html">Cycle-Line Charts</a>.</li>
|
||||
<a class="xref" href="../execution/index.html">Execution Page</a>, <a class="xref" href="../execution/strip-charts.html">Strip Charts</a> and
|
||||
<a class="xref" href="../execution/cycle-line-charts.html">Cycle-Line Charts</a>.</li>
|
||||
<li><code>wwwroot-src/src/components/geom/</code> and <code>wwwroot-src/src/components/topo/</code> — structural twins: one
|
||||
editor per kind, the same <code>modelKey</code> prop and <code>changed</code> / <code>error</code> emits, and a single kind → editor
|
||||
map — <code>wwwroot-src/src/components/geom/geometryEditors.ts</code> and
|
||||
<code>wwwroot-src/src/components/topo/transformerEditors.ts</code> — that is the source of truth for both the
|
||||
switchboard and the Control Tree. A new kind must be registered there,
|
||||
not merely dropped in the folder. “topo” means coordinate <strong>transformers</strong>, not mesh topology.
|
||||
Documented in <a class="xref" href="../../geom/index.html">Geometry Panels</a> and
|
||||
<a class="xref" href="../../geom/transformer-panel.html">Transformer Select Panel</a>.</li>
|
||||
Documented in <a class="xref" href="../geom/index.html">Geometry Panels</a> and
|
||||
<a class="xref" href="../geom/transformer-panel.html">Transformer Select Panel</a>.</li>
|
||||
<li><code>wwwroot-src/src/components/widgets/</code> — the reusable input library: numeric, vector and matrix
|
||||
inputs, the file-path input and picker, the CodeMirror text editor, the display-options and
|
||||
object-management menus. Documented in <a class="xref" href="../../widget/index.html">Widgets</a>.</li>
|
||||
object-management menus. Documented in <a class="xref" href="../widget/index.html">Widgets</a>.</li>
|
||||
<li><code>wwwroot-src/src/components/panels/</code> — pure layout machinery with no domain: the collapsible
|
||||
expansion panel and the resizable stack whose registration contract produces the “rows collapse in
|
||||
place” behaviour the tree pages describe. Documented in
|
||||
<a class="xref" href="../../platform/control-tree.html">Control Tree</a>, whose dock rows are both expansion rows, and
|
||||
<a class="xref" href="../../platform/session-state.html">Session State</a> for the keep-mounted flag that decides whether a
|
||||
<a class="xref" href="../platform/control-tree.html">Control Tree</a>, whose dock rows are both expansion rows, and
|
||||
<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
|
||||
@@ -212,21 +212,21 @@ behind every hub composable, so a hub opens only while something consumes it.
|
||||
<code>wwwroot-src/src/composables/useToolHouse.ts</code> and <code>wwwroot-src/src/composables/useSpindleCapability.ts</code> are module-level
|
||||
singletons, not per-component instances. <code>wwwroot-src/src/composables/useViewPrefs.ts</code> stores layout state in the
|
||||
browser only — it is neither in the project file nor in the server's user config. Documented in
|
||||
<a class="xref" href="../../platform/session-state.html">Session State</a>.</li>
|
||||
<a class="xref" href="../platform/session-state.html">Session State</a>.</li>
|
||||
<li><code>wwwroot-src/src/stores/</code> — four Pinia stores. <code>wwwroot-src/src/stores/index.ts</code> is <strong>not</strong> a barrel; it is the
|
||||
Quasar factory. Most shared state lives in <code>composables/</code> instead. Documented in
|
||||
<a class="xref" href="../../platform/session-state.html">Session State</a>.</li>
|
||||
<a class="xref" href="../platform/session-state.html">Session State</a>.</li>
|
||||
<li><code>wwwroot-src/src/router/</code> — <code>wwwroot-src/src/router/routes.ts</code> is the table plus the legacy redirects, and
|
||||
<code>wwwroot-src/src/router/treeRoutes.ts</code> is the load-bearing file its name understates: it holds the accumulated
|
||||
chain of tree-id renames and the id → page resolver, plus the tab-name constants both the router
|
||||
and the tab composable consume. A route's <code>meta.title</code> holds an i18n key, not a title.
|
||||
Documented in <a class="xref" href="../../platform/tree-ids-and-routes.html">Tree Ids and Routes</a>.</li>
|
||||
Documented in <a class="xref" href="../platform/tree-ids-and-routes.html">Tree Ids and Routes</a>.</li>
|
||||
<li><code>wwwroot-src/src/i18n/</code> — three locales shipped together, each a list of namespace files.
|
||||
<strong>English is the schema</strong>, not merely a locale: the two Chinese bundles are typed against it, so a
|
||||
key present in English and missing there is a build error. Keys are split by UI region rather than
|
||||
by source file, so there is no one-to-one mapping between an i18n file and a components folder.
|
||||
Documented in <a class="xref" href="../../platform/i18n.html">Internationalization</a> and
|
||||
<a class="xref" href="../../conventions/translation-remarks.html">Translation Remarks</a>.</li>
|
||||
Documented in <a class="xref" href="../platform/i18n.html">Internationalization</a> and
|
||||
<a class="xref" href="../conventions/translation-remarks.html">Translation Remarks</a>.</li>
|
||||
<li><code>wwwroot-src/src/pages/</code> — one file per route, and page size is a poor guide to importance: the
|
||||
General Setup page is small because it delegates almost everything to the Control Tree dock and the
|
||||
equipment canvas, while the File Explorer page is a thin wrapper around a large shared component.</li>
|
||||
@@ -237,9 +237,9 @@ is a separate, shorter toast scale.</li>
|
||||
</ul>
|
||||
<h2 id="see-also">See Also</h2>
|
||||
<ul>
|
||||
<li><a class="xref" href="../index.html">Anatomy by Source Directory</a> — the other two source trees, and how this
|
||||
<li><a class="xref" href="index.html">Anatomy by Source Directory</a> — the other two source trees, and how this
|
||||
layer is meant to be entered</li>
|
||||
<li><a class="xref" href="../webservice-backend/index.html">Web Service Backend Source Tree</a> — the process that
|
||||
<li><a class="xref" href="webservice-backend.html">Web Service Backend Source Tree</a> — the process that
|
||||
serves this application and answers its REST and hub traffic</li>
|
||||
</ul>
|
||||
|
||||
@@ -380,6 +380,8 @@ ownership rules that keep them on the project</li>
|
||||
<li><a class="xref" href="../../platform/control-tree.html">Control Tree</a> — the engine that builds, rebuilds and selects this branch</li>
|
||||
<li><a class="xref" href="../../legacy-controller.html">Legacy Controller Page</a> — the superseded HardNcEnv route this branch replaces, still shipped
|
||||
at <code>/controller</code></li>
|
||||
<li><a class="xref" href="../../legacy-controller-settings.html">Legacy Controller Settings</a> — the model that route edits, what this branch shares with
|
||||
it, and the three settings it holds alone</li>
|
||||
</ul>
|
||||
|
||||
</article>
|
||||
|
||||
+14
-8
@@ -117,13 +117,18 @@ Heidenhain after the rightmost <code>DR+</code>/<code>DR-</code> and <code>RL</c
|
||||
holds — and the shape of the source note the optimizer embeds, a <code>;</code> comment on Heidenhain and a
|
||||
parenthesized one on the rest. The radius-compensation syntax all five presets
|
||||
carry reads it too, raising its negative-radius validation warning only where the marker is
|
||||
Heidenhain. <strong>The piece classifier does not read it</strong>: none of its re-interpolation guards is
|
||||
keyed on the brand, and the guard that singles a klartext arc out is keyed on where the arc's
|
||||
centre came from. So an arc centred on a modal <code>CC</code> line splits like any other, and the one
|
||||
refused (<code>NcOpt--SplitionStartPointCenterUnsupported</code>) is the arc whose <code>CC</code> chain left an
|
||||
in-plane coordinate for its own start point to supply. An arc whose centre falls entirely on its
|
||||
start point never reaches that guard: with no radius it is not an arc at all, so it warns
|
||||
<code>Arc-CircleCenter--OnStartPoint</code> and is degraded to a chord as the program is read.</p>
|
||||
Heidenhain. <strong>The piece classifier does not read it</strong>: neither of its re-interpolation guards is keyed
|
||||
on the brand — one keys on where the arc's centre came from, the other on the piece's own
|
||||
incremental words. So a klartext arc centred on a
|
||||
modal <code>CC</code> line splits like any other, provided the chain supplies both in-plane centre coordinates
|
||||
and the <code>C</code> block states its own words absolutely; an incomplete chain
|
||||
(<code>NcOpt--SplitionStartPointCenterUnsupported</code>) and an incremental word on the block itself
|
||||
(<code>NcOpt--SplitionIncrementalUnsupported</code>) are each optimized as whole lines, and
|
||||
<a class="xref" href="../../../../technique/nc-dialects/controller-heidenhain.html">Heidenhain Support</a> states both. An arc whose centre falls
|
||||
entirely on its start point never reaches the centre guard: with no radius it is not an arc at all,
|
||||
so it warns <code>Arc-CircleCenter--OnStartPoint</code> and is degraded to a chord as the program is read. The
|
||||
incremental guard is not conditioned on the block being an arc, so a degraded chord that still
|
||||
carries an <code>I</code> word trips it like any other line.</p>
|
||||
<p>Each of the five properties returns a <strong>new instance per read</strong>, so no two projects can share one
|
||||
preset and the returned runner is safe to mutate before it is installed. The five brand tokens are
|
||||
declared once as constants on the brand dependency and are then enumerated again, independently, in
|
||||
@@ -531,7 +536,8 @@ one free-form string property, with no behaviour of its own; its readers live el
|
||||
<li><code>HiMech/NcOpt/SoftNcOptProc.cs</code> — where NC optimization reads the marker back out of the session's
|
||||
effective dependency list, for the writeback grammar.</li>
|
||||
<li><code>HiMech/NcOpt/NcOptPieceClassifier.cs</code> — the re-interpolation guards, none of them keyed on the
|
||||
brand; the arc guard keys on the centre's provenance instead.</li>
|
||||
brand; the two a klartext arc can reach key on the centre's provenance and on the piece's own
|
||||
incremental words instead.</li>
|
||||
<li><code>HiMech/NcParsers/Keywords/Generic/ArcCenterSource.cs</code> — the two centre-provenance stamps: the one
|
||||
the arc guard refuses, and the one that tells the writeback a split arc's fragments share the <code>CC</code>
|
||||
line unchanged. An arc whose own block states its centre carries neither.</li>
|
||||
|
||||
+2
-1
@@ -317,7 +317,8 @@ tool length low.</p>
|
||||
missing pair and the millimetre value it used instead. A fallback that finds <code>NaN</code> — the sentinel the
|
||||
generic ledger's tool-house refresh writes for a tool whose tip length does not resolve — raises a
|
||||
configuration warning of its own and degrades to 0 rather than composing a non-finite translation.
|
||||
Both carry the code <code>SiemensToolOffset--TcdpRowMissing</code>.</p>
|
||||
The usable-height arm carries the code <code>SiemensToolOffset--TcdpRowMissing</code>; the <code>NaN</code> arm carries
|
||||
<code>SiemensToolOffset--TcdpRowMissingGenericHeightNaN</code>.</p>
|
||||
<p>The fallback crosses the sign boundary. What it reads out of the generic table is that table's own
|
||||
effective height, ideal minus wear; what it substitutes is a <code>$TC_DP</code> height, geometry plus wear. A
|
||||
project that keeps wear in both places therefore compensates in one direction while the row exists
|
||||
|
||||
+67
-5
@@ -143,7 +143,12 @@ from different things and can disagree — one of the departures catalogued in
|
||||
<a class="xref" href="../editing-contract.html">Editing Contract</a>.</p>
|
||||
<h2 id="what-a-row-holds">What a Row Holds</h2>
|
||||
<p>The table is the Fanuc Memory C layout: the H number and the D number address the same row, so one
|
||||
row carries both the length and the radius of one offset.</p>
|
||||
row carries both the length and the radius of one offset. Fanuc's older memory types are narrower —
|
||||
Memory A keeps a single value per offset number (no geometry/wear split, and H and D read the same
|
||||
number), Memory B splits geometry from wear but still lets H and D share one value — so a program
|
||||
written for those controls calls the radius by a different number than the length (<code>G43 H3</code> with
|
||||
<code>G41 D33</code>, say). A program that pairs <code>H3</code> with <code>D3</code> therefore presupposes Memory C, which is what
|
||||
this table models; on the older types the same words would compensate the radius by the tool length.</p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
@@ -203,8 +208,9 @@ less the radial wear, and those two are exactly what
|
||||
shortens the compensation and a negative wear lengthens it. Nothing in the panel states this: the
|
||||
four column headers name the components and no footnote names the operation, which is why the rule
|
||||
belongs here. An offset number the table holds no row for is not an error either: both getters
|
||||
answer 0 for it, and neither the ISO height path nor the radius side reports the miss — a mistyped H
|
||||
is a zero-length compensation that plays to the end of the program without a warning.</p>
|
||||
answer 0 for it and the program plays on with a zero compensation — each side reports the miss
|
||||
once, from the block that selects the row (<code>Comp-ToolHeight--RowMissing</code> on the H word,
|
||||
<code>RadiusComp--RowMissing</code> on the D word), and nothing else marks it.</p>
|
||||
<div class="WARNING">
|
||||
<h5>Warning</h5>
|
||||
<p><strong>The neighbouring Siemens ledger uses the opposite convention.</strong> On
|
||||
@@ -234,6 +240,18 @@ signed rather than absolute. A negative effective radius — a radial wear large
|
||||
radius — is accepted, and it offsets the path to the opposite of the programmed side. On the first
|
||||
block of a compensation move the parser raises a validation warning for that case on Heidenhain
|
||||
only, mirroring the look-ahead check a TNC control performs; the other brands take it silently.</p>
|
||||
<p>An effective radius larger than the inner radius of the contour it compensates is a different
|
||||
case. The compensated path then runs against the programmed direction — an inner arc smaller than
|
||||
the offset, or an inner step shorter than it — and a control stops there (Fanuc alarm PS0041,
|
||||
<em>interference in cutter compensation</em>). Both engines report it as the validation warning
|
||||
<code>RadiusComp--Interference</code> on the offending block and keep playing the swapped-side path, so the
|
||||
run stays inspectable. The usual cause is this table rather than the program: a CAM post that emits
|
||||
the <strong>tool-centre path</strong> and leaves <code>G41 D..</code> in place expects the D row to hold the <strong>wear only</strong>,
|
||||
so the ideal radius of such a row is 0 — and a tool-house refresh left on its cutter-radius basis
|
||||
writes the cutter's real radius into every row and silently turns that program into an overcut. The
|
||||
<a href="#the-radius-basis">radius basis</a> below is what tells the refresh which strategy the program follows;
|
||||
the tell-tale signs of a tool-centre program are lead-in and lead-out arcs smaller than the tool
|
||||
radius and a finishing contour that lies one tool radius inside the wall.</p>
|
||||
<h3 id="the-macro-variable-window">The macro-variable window</h3>
|
||||
<p>On the Fanuc, Mazak and Syntec syntax lists a variable lookup maps <code>#2001</code> through <code>#2200</code> onto the
|
||||
effective <strong>height</strong> of offsets 1 through 200, so a macro program can read the same subtraction the
|
||||
@@ -265,6 +283,46 @@ panel's catalogued departures from <a class="xref" href="../editing-contract.htm
|
||||
<li>Row CRUD disappears: the <strong>Add</strong> button is not rendered and each row's delete button becomes a
|
||||
grey em dash. A <strong>Refresh from Tool House</strong> button appears next to the toggle in their place.</li>
|
||||
</ul>
|
||||
<h3 id="the-radius-basis">The radius basis</h3>
|
||||
<p>Length and radius do not follow the tool house the same way, because shops post their programs under
|
||||
two cutter-compensation strategies and only one of them wants the cutter's radius in the table:</p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Basis</th>
|
||||
<th>The NC path is</th>
|
||||
<th>The D row holds</th>
|
||||
<th>A refresh writes to <strong>Ideal Radius</strong></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><strong>Cutter radius</strong></td>
|
||||
<td>the part contour; the control offsets it by the tool radius</td>
|
||||
<td>geometry (the cutter radius) plus wear</td>
|
||||
<td>the largest radius on the cutter profile</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>Zero-based</strong></td>
|
||||
<td>the tool-centre path — the CAM system already offset it, <code>G41 D..</code> stays in the program</td>
|
||||
<td>the wear only; geometry is 0</td>
|
||||
<td>0</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<p>The basis is a project-level setting — <a class="xref" href="../../../../api/Hi.MachiningProcs.MachiningActRunnerConfig.html#Hi_MachiningProcs_MachiningActRunnerConfig_RadiusOffsetBasis">RadiusOffsetBasis</a>
|
||||
(<a class="xref" href="../../../../api/Hi.NcParsers.Dependencys.Generic.RadiusOffsetBasis.html">RadiusOffsetBasis</a>, serialized beside the tool-house
|
||||
dependence, default <em>cutter radius</em> so an older project refreshes exactly as before) — chosen from the
|
||||
<strong>Radius basis</strong> select in the panel's toolbar and written through
|
||||
<code>PUT api/mech/soft-nc-runner/tool-offsets/radius-basis</code>. Every refresh honours it: the button, the
|
||||
play-time refresh while the dependence is on, and both refresh endpoints. The height side is untouched by
|
||||
the choice; the wear columns are never written by any refresh.</p>
|
||||
<p>Pick the basis from the program, not from habit: a zero-based program shows lead-in and lead-out arcs
|
||||
whose radius is smaller than the tool radius and a finishing contour one tool radius inside the wall
|
||||
it produces (a Ø8 end mill following a circle of radius 2.5 is finishing a Ø13 bore, not a Ø5 one);
|
||||
a cutter-radius program draws the part contour itself. Refreshing a zero-based program on the
|
||||
cutter-radius basis is the overcut the radius side reports as <code>RadiusComp--Interference</code> — see
|
||||
<a href="#how-the-radius-reaches-the-path">How the radius reaches the path</a>.</p>
|
||||
<h3 id="the-table-does-not-otherwise-track-the-tool-library">The table does not otherwise track the tool library</h3>
|
||||
<p>Offset number and tool id are independent integers, and with the dependence off nothing reconciles
|
||||
them. A row may name a number the project's tool library has never held, and the library may hold
|
||||
@@ -275,8 +333,8 @@ as written. The library itself is edited on <a class="xref" href="../../../tool-
|
||||
<p>One endpoint backs both the button and the toggle, and it runs three steps. For every tool in the
|
||||
project's library it writes the ideal height from that tool's spindle-buckle-to-tool-tip length —
|
||||
<code>NaN</code> where the length does not resolve — and, where the cutter is a milling cutter, the ideal
|
||||
radius from the largest radius on its cutter profile; a row is created for a library tool that had
|
||||
none. <strong>It then deletes every row whose number is not in the library.</strong> The wear columns are never
|
||||
radius by the <a href="#the-radius-basis">radius basis</a>: the largest radius on its cutter profile under
|
||||
<em>cutter radius</em>, 0 under <em>zero-based</em>; a row is created for a library tool that had none. <strong>It then deletes every row whose number is not in the library.</strong> The wear columns are never
|
||||
touched.</p>
|
||||
<p>The engine carries the same three steps of its own, as
|
||||
<a class="xref" href="../../../../api/Hi.NcParsers.Dependencys.Generic.ToolOffsetTable.html#Hi_NcParsers_Dependencys_Generic_ToolOffsetTable_UpdateIdealByToolHouse_">UpdateIdealByToolHouse</a><small>(API)</small>,
|
||||
@@ -354,9 +412,13 @@ again on every runner assignment.</p>
|
||||
<ul>
|
||||
<li><strong>Set ideal offset dependent on tool house</strong> Toggle</li>
|
||||
<li><strong>Refresh from Tool House</strong> Button — flat, refresh icon; only while the dependence is on</li>
|
||||
<li><strong>Radius basis</strong> Select — dense, outlined; <strong>Cutter radius (D row = cutter radius; NC is
|
||||
the part contour)</strong> or <strong>Zero-based (D row holds wear only; NC is the tool-centre path)</strong></li>
|
||||
<li><strong>Add</strong> Button — primary, add icon, right-aligned; only while the dependence is off</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>Radius-Basis Hint Line — grey caption under the toolbar, one of two sentences chosen by the
|
||||
selected basis</li>
|
||||
<li>Offset Table — dense, flat, bordered
|
||||
<ul>
|
||||
<li>Header Row — <strong>Tool #</strong>, <strong>Ideal Height (mm)</strong>, <strong>Axial Wear (mm)</strong>, <strong>Ideal Radius (mm)</strong>,
|
||||
|
||||
@@ -134,7 +134,7 @@ project directory. Load / Save As / Copy / Paste / XML.</li>
|
||||
</li>
|
||||
<li><code>equipment/fixture/geometry</code> — “Geometry”, a Geometry slot backing
|
||||
<a class="xref" href="../../api/Hi.NcMech.Fixtures.Fixture.html#Hi_NcMech_Fixtures_Fixture_Geom">Geom</a>. The slot's own panel is the kind picker
|
||||
(<a class="xref" href="../geom/geom-manage-control.html">Geometry Management Control</a>, selector only); the picked kind's
|
||||
(<a class="xref" href="../geom/geometry-editor.html">Geometry Management Control</a>, selector only); the picked kind's
|
||||
editor is the slot's child item. Kinds offered: <code>Box3d</code>, <code>Cylindroid</code>, <code>StlFile</code>,
|
||||
<code>TransformationGeom</code>, <code>GeomCombination</code>, plus None. The geometry must satisfy <code>IStlSource</code>, so the
|
||||
runtime-only voxel <code>CubeTreeFile</code> is not among them.</li>
|
||||
|
||||
@@ -120,7 +120,8 @@ surface, editing a different model from the branch above.</p>
|
||||
<li><a class="xref" href="../platform/control-tree.html">Control Tree</a> — the engine behind this page's tree: how a branch is built, rebuilt and selected</li>
|
||||
<li><a href="controller/index.html">Controller Branch</a> — the branch this page hosts whose node set changes with the controller brand</li>
|
||||
<li><a href="hidden-controllers.html">Hidden Controller Branches</a> — the two equipment nodes this page withholds until a preference or a link asks for them</li>
|
||||
<li><a class="xref" href="../legacy-controller.html">Legacy Controller</a> — the superseded controller screen at its own route, and the three settings only it edits</li>
|
||||
<li><a class="xref" href="../legacy-controller.html">Legacy Controller</a> — the superseded controller screen at its own route: its seven tabs, how an edit commits, and its viewer</li>
|
||||
<li><a class="xref" href="../legacy-controller-settings.html">Legacy Controller Settings</a> — the model that screen edits, and the three settings the equipment tree has no editor for</li>
|
||||
</ul>
|
||||
|
||||
</article>
|
||||
|
||||
@@ -108,16 +108,16 @@ geometry, anchors, mesh and material are all edited through the child items belo
|
||||
</li>
|
||||
<li><code>equipment/workpiece/raw-geometry</code> — “Raw Geometry”, a Geometry slot backing
|
||||
<a class="xref" href="../../api/Hi.NcMech.Workpieces.Workpiece.html#Hi_NcMech_Workpieces_Workpiece_InitGeom">InitGeom</a>. The slot's own panel is the kind picker
|
||||
(<a class="xref" href="../geom/geom-manage-control.html">Geometry Management Control</a>, selector only); the picked kind's
|
||||
(<a class="xref" href="../geom/geometry-editor.html">Geometry Management Control</a>, selector only); the picked kind's
|
||||
editor is the slot's child item. Kinds offered: <code>Box3d</code>, <code>Cylindroid</code>, <code>StlFile</code>,
|
||||
<code>TransformationGeom</code>, <code>GeomCombination</code>, <code>CubeTreeFile</code>, plus None. <code>ExtendedCylinder</code> is an
|
||||
<code>IMakeXmlSource</code> and was offered here until its start section — wired by a host, never serialized
|
||||
— was found to reload a saved project degenerate; see
|
||||
<a class="xref" href="../geom/extended-cylinder-panel.html">Extended Cylinder Panel</a> for what an older project holding
|
||||
<a class="xref" href="../geom/extended-cylinder-editor.html">ExtendedCylinder Editor</a> for what an older project holding
|
||||
one still shows. The source
|
||||
choice folds into that one picker — picking the voxel <code>CubeTreeFile</code>, which the picker shows as
|
||||
<code>MeshedGeomFile</code>, <em>is</em> the meshed source (see
|
||||
<a class="xref" href="../geom/meshed-geom-panel.html">Meshed Geometry Panel</a>).</li>
|
||||
<a class="xref" href="../geom/meshed-geom-file-editor.html">MeshedGeomFile Editor</a>).</li>
|
||||
<li><code>equipment/workpiece/target-geometry</code> — “Target Geometry”, the same slot shape backing
|
||||
<a class="xref" href="../../api/Hi.NcMech.Workpieces.Workpiece.html#Hi_NcMech_Workpieces_Workpiece_IdealGeom">IdealGeom</a>. Kinds offered: <code>Box3d</code>, <code>Cylindroid</code>, <code>StlFile</code>,
|
||||
<code>TransformationGeom</code>, plus None. The target must satisfy <code>IGetStl</code>, so <code>CubeTreeFile</code> is not among
|
||||
|
||||
+4
-4
@@ -2,9 +2,9 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Box3d Control | HiAPI-C# 2025 </title>
|
||||
<title>Box3d Editor | HiAPI-C# 2025 </title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="title" content="Box3d Control | HiAPI-C# 2025 ">
|
||||
<meta name="title" content="Box3d Editor | HiAPI-C# 2025 ">
|
||||
|
||||
|
||||
<link rel="icon" href="../../img/HiAPI.favicon.ico">
|
||||
@@ -85,7 +85,7 @@
|
||||
</div>
|
||||
|
||||
<article data-uid="Anatomy-Box3dControl">
|
||||
<h1 id="box3d-control">Box3d Control</h1>
|
||||
<h1 id="box3d-editor">Box3d Editor</h1>
|
||||
|
||||
<p>The Box3d editor edits an axis-aligned <a class="xref" href="../../api/Hi.Geom.Box3d.html">Box3d</a> through four vector rows — Min, Max,
|
||||
Dimension and Center — of which an <strong>Edit Mode</strong> selector decides which two are writable. It is
|
||||
@@ -148,7 +148,7 @@ entry. There is deliberately no update wrapper here; the editor posts the update
|
||||
</ul>
|
||||
<h2 id="see-also">See Also</h2>
|
||||
<ul>
|
||||
<li><a href="geom-manage-control.html">Geometry Management Panel</a> — the switchboard that offers this kind and
|
||||
<li><a href="geometry-editor.html">Geometry Editor</a> — the switchboard that offers this kind and
|
||||
hosts this editor</li>
|
||||
</ul>
|
||||
|
||||
+4
-4
@@ -2,9 +2,9 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Cylindroid Control | HiAPI-C# 2025 </title>
|
||||
<title>Cylindroid Editor | HiAPI-C# 2025 </title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="title" content="Cylindroid Control | HiAPI-C# 2025 ">
|
||||
<meta name="title" content="Cylindroid Editor | HiAPI-C# 2025 ">
|
||||
|
||||
|
||||
<link rel="icon" href="../../img/HiAPI.favicon.ico">
|
||||
@@ -85,7 +85,7 @@
|
||||
</div>
|
||||
|
||||
<article data-uid="Anatomy-CylindroidControl">
|
||||
<h1 id="cylindroid-control">Cylindroid Control</h1>
|
||||
<h1 id="cylindroid-editor">Cylindroid Editor</h1>
|
||||
|
||||
<p>The Cylindroid editor edits a <a class="xref" href="../../api/Hi.Geom.Cylindroid.html">Cylindroid</a> — a solid of revolution defined by a list of
|
||||
(Z, R) pairs — as a table of rows, with a minimum of two. It is reached from any Geometry slot that
|
||||
@@ -152,7 +152,7 @@ Tool House host.</li>
|
||||
</ul>
|
||||
<h2 id="see-also">See Also</h2>
|
||||
<ul>
|
||||
<li><a href="geom-manage-control.html">Geometry Management Panel</a> — the switchboard that offers this kind and
|
||||
<li><a href="geometry-editor.html">Geometry Editor</a> — the switchboard that offers this kind and
|
||||
hosts this editor</li>
|
||||
<li><a class="xref" href="../tool-house/holder/cylindroid-holder-panel.html">Cylindroid Holder Panel</a> — the second host, and the surface
|
||||
that owns the tessellation resolution</li>
|
||||
+4
-4
@@ -2,9 +2,9 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Extended Cylinder Panel | HiAPI-C# 2025 </title>
|
||||
<title>ExtendedCylinder Editor | HiAPI-C# 2025 </title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="title" content="Extended Cylinder Panel | HiAPI-C# 2025 ">
|
||||
<meta name="title" content="ExtendedCylinder Editor | HiAPI-C# 2025 ">
|
||||
|
||||
|
||||
<link rel="icon" href="../../img/HiAPI.favicon.ico">
|
||||
@@ -85,7 +85,7 @@
|
||||
</div>
|
||||
|
||||
<article data-uid="Anatomy-ExtendedCylinderPanel">
|
||||
<h1 id="extended-cylinder-panel">Extended Cylinder Panel</h1>
|
||||
<h1 id="extendedcylinder-editor">ExtendedCylinder Editor</h1>
|
||||
|
||||
<p>The Extended Cylinder editor edits one number on an <a class="xref" href="../../api/Hi.Geom.ExtendedCylinder.html">ExtendedCylinder</a>: its full
|
||||
length, measured from <code>Z=0</code> and <strong>including the span below the start section</strong>. Its only home on
|
||||
@@ -174,7 +174,7 @@ the geometry-issue warnings it surfaces.</li>
|
||||
</ul>
|
||||
<h2 id="see-also">See Also</h2>
|
||||
<ul>
|
||||
<li><a href="geom-manage-control.html">Geometry Management Panel</a> — the switchboard that offers this kind and
|
||||
<li><a href="geometry-editor.html">Geometry Editor</a> — the switchboard that offers this kind and
|
||||
hosts this editor</li>
|
||||
<li><a class="xref" href="../tool-house/cutter/milling-cutter-panel.html">Milling Cutter Panel</a> — the cutter whose Upper Beam is this
|
||||
editor's real home, and the one surface that supplies a start section</li>
|
||||
+4
-4
@@ -2,9 +2,9 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Geometry Combination Control | HiAPI-C# 2025 </title>
|
||||
<title>GeomCombination Editor | HiAPI-C# 2025 </title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="title" content="Geometry Combination Control | HiAPI-C# 2025 ">
|
||||
<meta name="title" content="GeomCombination Editor | HiAPI-C# 2025 ">
|
||||
|
||||
|
||||
<link rel="icon" href="../../img/HiAPI.favicon.ico">
|
||||
@@ -85,7 +85,7 @@
|
||||
</div>
|
||||
|
||||
<article data-uid="Anatomy-GeomCombinationControl">
|
||||
<h1 id="geometry-combination-control">Geometry Combination Control</h1>
|
||||
<h1 id="geomcombination-editor">GeomCombination Editor</h1>
|
||||
|
||||
<p>A <a class="xref" href="../../api/Hi.Geom.GeomCombination.html">GeomCombination</a> is several geometries treated as one, and it has <strong>two faces</strong>: an
|
||||
inline editor that renders every child's own editor at once, and a Control-Tree panel that manages
|
||||
@@ -164,7 +164,7 @@ cache.</li>
|
||||
</ul>
|
||||
<h2 id="see-also">See Also</h2>
|
||||
<ul>
|
||||
<li><a href="geom-manage-control.html">Geometry Management Panel</a> — the switchboard that offers this kind, and
|
||||
<li><a href="geometry-editor.html">Geometry Editor</a> — the switchboard that offers this kind, and
|
||||
the panel each child card embeds</li>
|
||||
</ul>
|
||||
|
||||
+10
-10
@@ -2,9 +2,9 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Geometry Management Panel | HiAPI-C# 2025 </title>
|
||||
<title>Geometry Editor | HiAPI-C# 2025 </title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="title" content="Geometry Management Panel | HiAPI-C# 2025 ">
|
||||
<meta name="title" content="Geometry Editor | HiAPI-C# 2025 ">
|
||||
|
||||
|
||||
<link rel="icon" href="../../img/HiAPI.favicon.ico">
|
||||
@@ -85,7 +85,7 @@
|
||||
</div>
|
||||
|
||||
<article data-uid="Anatomy-GeomManageControl">
|
||||
<h1 id="geometry-management-panel">Geometry Management Panel</h1>
|
||||
<h1 id="geometry-editor">Geometry Editor</h1>
|
||||
|
||||
<p>The geometry switchboard is one control: a kind picker over the kinds its host allows, and — unless
|
||||
the host asked for the picker alone — the picked kind's editor beneath it. It binds a
|
||||
@@ -206,14 +206,14 @@ the host's own field, and the ones that accept <code>None</code> and store null.
|
||||
<ul>
|
||||
<li><a class="xref" href="../util/mech-builder.html">Mechanism Builder Page</a> — embeds this control under its anchor
|
||||
editor</li>
|
||||
<li><a href="box3d-control.html">Box3d Control</a> — the kind editors this switchboard resolves</li>
|
||||
<li><a href="cylindroid-control.html">Cylindroid Control</a> — the same, for a solid of revolution</li>
|
||||
<li><a href="extended-cylinder-panel.html">Extended Cylinder Panel</a> — the same, and the kind exactly one host offers</li>
|
||||
<li><a href="stlfile-control.html">STL File Control</a> — the same, for an STL reference</li>
|
||||
<li><a href="meshed-geom-panel.html">Meshed Geometry Panel</a> — the same, for a voxel cube tree</li>
|
||||
<li><a href="transformation-geom-control.html">Transformation Geometry Control</a> — one of the container kinds
|
||||
<li><a href="box3d-editor.html">Box3d Editor</a> — the kind editors this switchboard resolves</li>
|
||||
<li><a href="cylindroid-editor.html">Cylindroid Editor</a> — the same, for a solid of revolution</li>
|
||||
<li><a href="extended-cylinder-editor.html">ExtendedCylinder Editor</a> — the same, and the kind exactly one host offers</li>
|
||||
<li><a href="stlfile-editor.html">StlFile Editor</a> — the same, for an STL reference</li>
|
||||
<li><a href="meshed-geom-file-editor.html">MeshedGeomFile Editor</a> — the same, for a voxel cube tree</li>
|
||||
<li><a href="transformation-geom-editor.html">TransformationGeom Editor</a> — one of the container kinds
|
||||
this panel offers, and why picking it replaces rather than wraps</li>
|
||||
<li><a href="geom-combination-control.html">Geometry Combination Control</a> — the other container kind, whose
|
||||
<li><a href="geom-combination-editor.html">GeomCombination Editor</a> — the other container kind, whose
|
||||
every child embeds this panel again</li>
|
||||
</ul>
|
||||
|
||||
@@ -89,14 +89,14 @@
|
||||
|
||||
<p>The Geometry Panels are the editors for <a class="xref" href="../../technique/api-foundations/basic-geometry.html">Geometry Objects</a>, together
|
||||
with the switchboard that picks which <a class="xref" href="../../api/Hi.Mech.Topo.ITransformer.html">ITransformer</a> places them. Two switchboards
|
||||
run the folder: the <a href="geom-manage-control.html">Geometry Management Panel</a> chooses a geometry kind and
|
||||
run the folder: the <a href="geometry-editor.html">Geometry Editor</a> chooses a geometry kind and
|
||||
hosts that kind's editor, and the <a href="transformer-panel.html">Transformer Select Panel</a> does the same for
|
||||
a transformer.</p>
|
||||
<p>On the shipped SPA a Control Tree is where both switchboards are usually met. A <strong>Geometry slot</strong> or
|
||||
a <strong>Transformer slot</strong> carries the kind picker, and the picked kind becomes the slot's single child
|
||||
node, whose panel is that kind's editor. The same editors are also embedded inline, without a tree —
|
||||
by <a href="transformation-geom-control.html">Transformation Geometry Control</a> for its inner geometry and inner
|
||||
transformer, by <a href="geom-combination-control.html">Geometry Combination Control</a> for each child, by the
|
||||
by <a href="transformation-geom-editor.html">TransformationGeom Editor</a> for its inner geometry and inner
|
||||
transformer, by <a href="geom-combination-editor.html">GeomCombination Editor</a> for each child, by the
|
||||
Mechanism Builder page, and by the Tool House cutter's upper beam.</p>
|
||||
<p>A page belongs in this folder when it documents one geometry kind's editor, or a switchboard that
|
||||
picks a kind and hosts that editor. The transformer switchboard lives beside the geometry kinds
|
||||
@@ -114,31 +114,31 @@ then the operators that wrap and combine them, and last the two switchboards tha
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><a href="box3d-control.html">Box3d Control</a></td>
|
||||
<td><a href="box3d-editor.html">Box3d Editor</a></td>
|
||||
<td>A 3D box defined by min/max coordinates</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="cylindroid-control.html">Cylindroid Control</a></td>
|
||||
<td><a href="cylindroid-editor.html">Cylindroid Editor</a></td>
|
||||
<td>A cylindroid with radius values along the Z axis</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="extended-cylinder-panel.html">Extended Cylinder Panel</a></td>
|
||||
<td><a href="extended-cylinder-editor.html">ExtendedCylinder Editor</a></td>
|
||||
<td>An <a class="xref" href="../../api/Hi.Geom.ExtendedCylinder.html">ExtendedCylinder</a> and its full length</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="stlfile-control.html">STL File Control</a></td>
|
||||
<td><a href="stlfile-editor.html">StlFile Editor</a></td>
|
||||
<td>An <a class="xref" href="../../api/Hi.Geom.IStlSource.html">IStlSource</a> loaded from an STL file</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="meshed-geom-panel.html">Meshed Geometry Panel</a></td>
|
||||
<td>A <a class="xref" href="../../api/Hi.Cbtr.CubeTreeFile.html">CubeTreeFile</a>, the pre-computed voxel cube tree; the kind picker shows it as <code>MeshedGeomFile</code></td>
|
||||
<td><a href="meshed-geom-file-editor.html">MeshedGeomFile Editor</a></td>
|
||||
<td>A <a class="xref" href="../../api/Hi.Cbtr.CubeTreeFile.html">CubeTreeFile</a>, the pre-computed voxel cube tree; the kind picker and this page name it <code>MeshedGeomFile</code>, the code calls it <code>CubeTreeFile</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="transformation-geom-control.html">Transformation Geometry Control</a></td>
|
||||
<td><a href="transformation-geom-editor.html">TransformationGeom Editor</a></td>
|
||||
<td>An inner geometry plus the transformer that places it</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="geom-combination-control.html">Geometry Combination Control</a></td>
|
||||
<td><a href="geom-combination-editor.html">GeomCombination Editor</a></td>
|
||||
<td>Several geometries combined into one</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
@@ -157,7 +157,7 @@ own model accepts, so <code>CubeTreeFile</code> reaches only the workpiece's raw
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><a href="geom-manage-control.html">Geometry Management Panel</a></td>
|
||||
<td><a href="geometry-editor.html">Geometry Editor</a></td>
|
||||
<td>The geometry kind picker and the picked kind's editor</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
||||
+5
-5
@@ -2,9 +2,9 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Meshed Geometry Panel | HiAPI-C# 2025 </title>
|
||||
<title>MeshedGeomFile Editor | HiAPI-C# 2025 </title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="title" content="Meshed Geometry Panel | HiAPI-C# 2025 ">
|
||||
<meta name="title" content="MeshedGeomFile Editor | HiAPI-C# 2025 ">
|
||||
|
||||
|
||||
<link rel="icon" href="../../img/HiAPI.favicon.ico">
|
||||
@@ -85,7 +85,7 @@
|
||||
</div>
|
||||
|
||||
<article data-uid="Anatomy-MeshedGeomPanel">
|
||||
<h1 id="meshed-geometry-panel">Meshed Geometry Panel</h1>
|
||||
<h1 id="meshedgeomfile-editor">MeshedGeomFile Editor</h1>
|
||||
|
||||
<p>The meshed-geometry editor points a geometry at a pre-computed voxel cube tree in a <code>.wct</code> file. Its
|
||||
model is <a class="xref" href="../../api/Hi.Cbtr.CubeTreeFile.html">CubeTreeFile</a>, a <em>reference</em> to that file: neither the editor nor the
|
||||
@@ -155,9 +155,9 @@ builds the meshed geometry for the canvas, and the display toggle that shows it.
|
||||
</ul>
|
||||
<h2 id="see-also">See Also</h2>
|
||||
<ul>
|
||||
<li><a href="geom-manage-control.html">Geometry Management Panel</a> — the switchboard that offers this kind and
|
||||
<li><a href="geometry-editor.html">Geometry Editor</a> — the switchboard that offers this kind and
|
||||
hosts this editor</li>
|
||||
<li><a href="stlfile-control.html">STL File Control</a> — the other file-backed kind, and the one this slot offers
|
||||
<li><a href="stlfile-editor.html">StlFile Editor</a> — the other file-backed kind, and the one this slot offers
|
||||
beside it</li>
|
||||
</ul>
|
||||
|
||||
+5
-5
@@ -2,9 +2,9 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>STL File Control | HiAPI-C# 2025 </title>
|
||||
<title>StlFile Editor | HiAPI-C# 2025 </title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="title" content="STL File Control | HiAPI-C# 2025 ">
|
||||
<meta name="title" content="StlFile Editor | HiAPI-C# 2025 ">
|
||||
|
||||
|
||||
<link rel="icon" href="../../img/HiAPI.favicon.ico">
|
||||
@@ -85,7 +85,7 @@
|
||||
</div>
|
||||
|
||||
<article data-uid="Anatomy-StlFileControl">
|
||||
<h1 id="stl-file-control">STL File Control</h1>
|
||||
<h1 id="stlfile-editor">StlFile Editor</h1>
|
||||
|
||||
<p>The STL file editor points a geometry at an <code>.stl</code> file rather than describing a shape: the model
|
||||
holds a file reference, and the editor is a picker over it plus a read-only summary of what was
|
||||
@@ -171,9 +171,9 @@ the caller's own rendering connection and superseded as the selection moves.</li
|
||||
</ul>
|
||||
<h2 id="see-also">See Also</h2>
|
||||
<ul>
|
||||
<li><a href="geom-manage-control.html">Geometry Management Panel</a> — the switchboard that offers this kind and
|
||||
<li><a href="geometry-editor.html">Geometry Editor</a> — the switchboard that offers this kind and
|
||||
hosts this editor</li>
|
||||
<li><a href="meshed-geom-panel.html">Meshed Geometry Panel</a> — the other file-backed kind, and the one the
|
||||
<li><a href="meshed-geom-file-editor.html">MeshedGeomFile Editor</a> — the other file-backed kind, and the one the
|
||||
workpiece's raw geometry offers beside this one</li>
|
||||
<li><a class="xref" href="../util/stl-preview-pane.html">STL Preview Pane</a> — the preview the picker opens on an <code>.stl</code> row
|
||||
before the pick is confirmed</li>
|
||||
@@ -16,31 +16,31 @@
|
||||
<a href="index.html" name="" title="Overview">Overview</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="box3d-control.html" name="" title="Box3d Control">Box3d Control</a>
|
||||
<a href="box3d-editor.html" name="" title="Box3d Editor">Box3d Editor</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="cylindroid-control.html" name="" title="Cylindroid Control">Cylindroid Control</a>
|
||||
<a href="cylindroid-editor.html" name="" title="Cylindroid Editor">Cylindroid Editor</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="extended-cylinder-panel.html" name="" title="Extended Cylinder Panel">Extended Cylinder Panel</a>
|
||||
<a href="extended-cylinder-editor.html" name="" title="ExtendedCylinder Editor">ExtendedCylinder Editor</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="stlfile-control.html" name="" title="STL File Control">STL File Control</a>
|
||||
<a href="stlfile-editor.html" name="" title="StlFile Editor">StlFile Editor</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="geom-combination-control.html" name="" title="Geometry Combination Control">Geometry Combination Control</a>
|
||||
<a href="geom-combination-editor.html" name="" title="GeomCombination Editor">GeomCombination Editor</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="meshed-geom-panel.html" name="" title="Meshed Geometry Panel">Meshed Geometry Panel</a>
|
||||
<a href="meshed-geom-file-editor.html" name="" title="MeshedGeomFile Editor">MeshedGeomFile Editor</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="transformation-geom-control.html" name="" title="Transformation Geometry Control">Transformation Geometry Control</a>
|
||||
<a href="transformation-geom-editor.html" name="" title="TransformationGeom Editor">TransformationGeom Editor</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="transformer-panel.html" name="" title="Transformer Panel">Transformer Panel</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="geom-manage-control.html" name="" title="Geometry Management Panel">Geometry Management Panel</a>
|
||||
<a href="geometry-editor.html" name="" title="Geometry Editor">Geometry Editor</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
|
||||
{"items":[{"name":"Overview","href":"index.html","topicHref":"index.html"},{"name":"Box3d Control","href":"box3d-control.html","topicHref":"box3d-control.html"},{"name":"Cylindroid Control","href":"cylindroid-control.html","topicHref":"cylindroid-control.html"},{"name":"Extended Cylinder Panel","href":"extended-cylinder-panel.html","topicHref":"extended-cylinder-panel.html"},{"name":"STL File Control","href":"stlfile-control.html","topicHref":"stlfile-control.html"},{"name":"Geometry Combination Control","href":"geom-combination-control.html","topicHref":"geom-combination-control.html"},{"name":"Meshed Geometry Panel","href":"meshed-geom-panel.html","topicHref":"meshed-geom-panel.html"},{"name":"Transformation Geometry Control","href":"transformation-geom-control.html","topicHref":"transformation-geom-control.html"},{"name":"Transformer Panel","href":"transformer-panel.html","topicHref":"transformer-panel.html"},{"name":"Geometry Management Panel","href":"geom-manage-control.html","topicHref":"geom-manage-control.html"}]}
|
||||
{"items":[{"name":"Overview","href":"index.html","topicHref":"index.html"},{"name":"Box3d Editor","href":"box3d-editor.html","topicHref":"box3d-editor.html"},{"name":"Cylindroid Editor","href":"cylindroid-editor.html","topicHref":"cylindroid-editor.html"},{"name":"ExtendedCylinder Editor","href":"extended-cylinder-editor.html","topicHref":"extended-cylinder-editor.html"},{"name":"StlFile Editor","href":"stlfile-editor.html","topicHref":"stlfile-editor.html"},{"name":"GeomCombination Editor","href":"geom-combination-editor.html","topicHref":"geom-combination-editor.html"},{"name":"MeshedGeomFile Editor","href":"meshed-geom-file-editor.html","topicHref":"meshed-geom-file-editor.html"},{"name":"TransformationGeom Editor","href":"transformation-geom-editor.html","topicHref":"transformation-geom-editor.html"},{"name":"Transformer Panel","href":"transformer-panel.html","topicHref":"transformer-panel.html"},{"name":"Geometry Editor","href":"geometry-editor.html","topicHref":"geometry-editor.html"}]}
|
||||
|
||||
+6
-6
@@ -2,9 +2,9 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Transformation Geometry Control | HiAPI-C# 2025 </title>
|
||||
<title>TransformationGeom Editor | HiAPI-C# 2025 </title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="title" content="Transformation Geometry Control | HiAPI-C# 2025 ">
|
||||
<meta name="title" content="TransformationGeom Editor | HiAPI-C# 2025 ">
|
||||
|
||||
|
||||
<link rel="icon" href="../../img/HiAPI.favicon.ico">
|
||||
@@ -85,7 +85,7 @@
|
||||
</div>
|
||||
|
||||
<article data-uid="Anatomy-TransformationGeomControl">
|
||||
<h1 id="transformation-geometry-control">Transformation Geometry Control</h1>
|
||||
<h1 id="transformationgeom-editor">TransformationGeom Editor</h1>
|
||||
|
||||
<p>A <a class="xref" href="../../api/Hi.Geom.TransformationGeom.html">TransformationGeom</a> is an inner geometry plus the transformer that places it, and the
|
||||
editor is those two things side by side. It has two faces: an embedded two-card editor,
|
||||
@@ -97,14 +97,14 @@ nodes.</p>
|
||||
container-aware create endpoint, which constructs a fresh instance and discards whatever was
|
||||
there. There is no operation anywhere that wraps an existing geometry into a transformation
|
||||
geometry, or extracts it back out — see
|
||||
<a href="geom-manage-control.html">Geometry Management Panel</a>.</p>
|
||||
<a href="geometry-editor.html">Geometry Editor</a>.</p>
|
||||
</div>
|
||||
<h2 id="layout">Layout</h2>
|
||||
<h3 id="the-embedded-editor">The embedded editor</h3>
|
||||
<p>Two bordered cards, each badged with the live type behind it, over a short explanation of what a
|
||||
transformer applied to a geometry means:</p>
|
||||
<ul>
|
||||
<li><strong>Inner Geometry</strong> (<code>.../inner-geom</code>) — the full <a href="geom-manage-control.html">Geometry Management Panel</a>,
|
||||
<li><strong>Inner Geometry</strong> (<code>.../inner-geom</code>) — the full <a href="geometry-editor.html">Geometry Editor</a>,
|
||||
its dropdown labelled <em>Inner geometry type</em>, over five kinds: Box3d, Cylindroid, StlFile, a nested
|
||||
TransformationGeom and GeomCombination — which is what makes recursion and nesting legal — plus a
|
||||
<strong>None (unset)</strong> entry.</li>
|
||||
@@ -177,7 +177,7 @@ the store the two aliases are registered into.</li>
|
||||
<h2 id="see-also">See Also</h2>
|
||||
<ul>
|
||||
<li><a class="xref" href="../../technique/mechanism/transformers.html">Transformers</a></li>
|
||||
<li><a href="geom-manage-control.html">Geometry Management Panel</a> — the switchboard this editor embeds for its
|
||||
<li><a href="geometry-editor.html">Geometry Editor</a> — the switchboard this editor embeds for its
|
||||
inner geometry, and the only place a wrap or extract exists</li>
|
||||
<li><a class="xref" href="transformer-panel.html">Transformer Select Panel</a> — the inner-transformer picker and its seven
|
||||
kinds</li>
|
||||
@@ -104,7 +104,7 @@ occupies a transformer-valued slot and edits the one that is there. For the mode
|
||||
<code>.../inner-transformer</code> child is a Transformer slot too.</p>
|
||||
<p>Two surfaces embed the panel outside any tree — the <a class="xref" href="../util/mech-builder.html">Mechanism Builder Page</a>
|
||||
(<code>/util/mech-builder</code>), for the selected branch's transformer, and the inner-transformer card of
|
||||
<a href="transformation-geom-control.html">Transformation Geometry Control</a>.</p>
|
||||
<a href="transformation-geom-editor.html">TransformationGeom Editor</a>.</p>
|
||||
<h2 id="layout">Layout</h2>
|
||||
<ul>
|
||||
<li>Transformer Select Panel
|
||||
@@ -275,7 +275,7 @@ create endpoints, and the typed wrappers for every update and <code>Index*</code
|
||||
<h2 id="see-also">See Also</h2>
|
||||
<ul>
|
||||
<li><a class="xref" href="../util/mech-builder.html">Mechanism Builder Page</a> — edits a mechanism’s per-branch transformer through this switchboard</li>
|
||||
<li><a href="transformation-geom-control.html">Transformation Geometry Control</a> — embeds this picker as its inner
|
||||
<li><a href="transformation-geom-editor.html">TransformationGeom Editor</a> — embeds this picker as its inner
|
||||
transformer, with no kind restriction at all</li>
|
||||
</ul>
|
||||
|
||||
|
||||
@@ -175,6 +175,7 @@ regroup adds a migration hop. The ids themselves have moved repeatedly.</p>
|
||||
<li><a href="general-setup/index.html">General Setup Page</a> — The equipment Control Tree: the machine, the spindle envelope, the scene, the fixture, the workpiece and the controller branch</li>
|
||||
<li><a href="tool-house/index.html">Tool House Page</a> — The tool library and the per-tool editor tabs, cutter and holder</li>
|
||||
<li><a href="legacy-controller.html">Legacy Controller</a> — The superseded HardNcEnv controller surface and its REST implementation</li>
|
||||
<li><a href="legacy-controller-settings.html">Legacy Controller Settings</a> — The HardNcEnv model that surface edits: the three settings it owns alone, what it shares with the Controller branch, and the engine files behind both</li>
|
||||
<li><a href="util/index.html">Utility Pages</a> — The two <code>/util/</code> routes: the File Explorer and the Mechanism Builder</li>
|
||||
<li><a href="by-source/index.html">By Source Directory</a> — The same knowledge keyed on the source tree instead of the screen: one directory index per half of the flagship</li>
|
||||
</ul>
|
||||
|
||||
@@ -0,0 +1,271 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Legacy Controller Settings | HiAPI-C# 2025 </title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="title" content="Legacy Controller Settings | HiAPI-C# 2025 ">
|
||||
|
||||
|
||||
<link rel="icon" href="../img/HiAPI.favicon.ico">
|
||||
<link rel="stylesheet" href="../public/docfx.min.css">
|
||||
<link rel="stylesheet" href="../public/main.css">
|
||||
<meta name="docfx:navrel" content="../toc.html">
|
||||
<meta name="docfx:tocrel" content="toc.html">
|
||||
|
||||
<meta name="docfx:rel" content="../">
|
||||
|
||||
|
||||
|
||||
<meta name="loc:inThisArticle" content="In this article">
|
||||
<meta name="loc:searchResultsCount" content="{count} results for "{query}"">
|
||||
<meta name="loc:searchNoResults" content="No results for "{query}"">
|
||||
<meta name="loc:tocFilter" content="Filter by title">
|
||||
<meta name="loc:nextArticle" content="Next">
|
||||
<meta name="loc:prevArticle" content="Previous">
|
||||
<meta name="loc:themeLight" content="Light">
|
||||
<meta name="loc:themeDark" content="Dark">
|
||||
<meta name="loc:themeAuto" content="Auto">
|
||||
<meta name="loc:changeTheme" content="Change theme">
|
||||
<meta name="loc:copy" content="Copy">
|
||||
<meta name="loc:downloadPdf" content="Download PDF">
|
||||
|
||||
<script type="module" src="./../public/docfx.min.js"></script>
|
||||
|
||||
<script>
|
||||
const theme = localStorage.getItem('theme') || 'auto'
|
||||
document.documentElement.setAttribute('data-bs-theme', theme === 'auto' ? (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light') : theme)
|
||||
</script>
|
||||
|
||||
</head>
|
||||
|
||||
<body class="tex2jax_ignore" data-layout="" data-yaml-mime="">
|
||||
<header class="bg-body border-bottom">
|
||||
<nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
|
||||
<div class="container-xxl flex-nowrap">
|
||||
<a class="navbar-brand" href="../index.html">
|
||||
<img id="logo" class="svg" src="../img/HiAPI.logo.png" alt="">
|
||||
|
||||
</a>
|
||||
<button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">
|
||||
<i class="bi bi-three-dots"></i>
|
||||
</button>
|
||||
<div class="collapse navbar-collapse" id="navpanel">
|
||||
<div id="navbar">
|
||||
<form class="search" role="search" id="search">
|
||||
<i class="bi bi-search"></i>
|
||||
<input class="form-control" id="search-query" type="search" disabled placeholder="Search" autocomplete="off" aria-label="Search">
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
</header>
|
||||
|
||||
<main class="container-xxl">
|
||||
<div class="toc-offcanvas">
|
||||
<div class="offcanvas-md offcanvas-start" tabindex="-1" id="tocOffcanvas" aria-labelledby="tocOffcanvasLabel">
|
||||
<div class="offcanvas-header">
|
||||
<h5 class="offcanvas-title" id="tocOffcanvasLabel">Table of Contents</h5>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" data-bs-target="#tocOffcanvas" aria-label="Close"></button>
|
||||
</div>
|
||||
<div class="offcanvas-body">
|
||||
<nav class="toc" id="toc"></nav>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="content">
|
||||
<div class="actionbar">
|
||||
<button class="btn btn-lg border-0 d-md-none" type="button" data-bs-toggle="offcanvas" data-bs-target="#tocOffcanvas" aria-controls="tocOffcanvas" aria-expanded="false" aria-label="Show table of contents">
|
||||
<i class="bi bi-list"></i>
|
||||
</button>
|
||||
|
||||
<nav id="breadcrumb"></nav>
|
||||
</div>
|
||||
|
||||
<article data-uid="Anatomy-LegacyControllerSettings">
|
||||
<h1 id="legacy-controller-settings">Legacy Controller Settings</h1>
|
||||
|
||||
<p><a class="xref" href="../api/Hi.Numerical.HardNcEnv.html">HardNcEnv</a> is the model the Legacy Controller page at <code>/controller/:tab?</code> edits,
|
||||
and this page is what that model holds: how it stands to the runner the rest of the application
|
||||
configures, the three settings this screen owns alone, the ones it shares with the Controller Branch
|
||||
on General Setup, and the one marker class both faces draw a work coordinate with. The screen itself
|
||||
— its seven tabs, how an edit commits, its object-management chain, its viewer and its layout — is
|
||||
<a class="xref" href="legacy-controller.html">Legacy Controller Page</a>.</p>
|
||||
<h2 id="the-model-it-edits-and-the-one-it-does-not">The Model It Edits, and the One It Does Not</h2>
|
||||
<p>The project carries both models side by side and serializes both. <a class="xref" href="../api/Hi.Numerical.HardNcEnv.html">HardNcEnv</a> is
|
||||
loaded from the project's own <code>NcEnv</code> element unconditionally; <a class="xref" href="../api/Hi.NcParsers.NcRunnerSuit.html">NcRunnerSuit</a> — the
|
||||
runner plus the project's per-case dependency list — is read from its own nested element. The legacy
|
||||
element is a <em>fallback source</em> for the suit rather than a shared store: a project file that carries
|
||||
no runner element derives one from the legacy element at load time, and from then on the two drift
|
||||
apart, because every later edit lands on one of them alone.</p>
|
||||
<p>The legacy model is still read at play time. The legacy NC runner is constructed over a delegate
|
||||
onto the project's <code>NcEnv</code>, so installing a replacement through the screen's ⋮ menu propagates
|
||||
without rewiring, and a project-level switch selects which of the two pipelines plays. That switch
|
||||
defaults to the SoftNc pipeline and no screen in the web application changes it; it is a scripting
|
||||
property, <a class="xref" href="../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_EnableSoftNcRunner_">EnableSoftNcRunner</a><small>(API)</small>. The legacy
|
||||
NC optimisation route is the other live reader: it is taken whenever the switch is off or the
|
||||
session holds no played SoftNc layers, and it is handed <code>MachiningProject.NcEnv</code> directly.</p>
|
||||
<h2 id="what-only-this-screen-edits">What Only This Screen Edits</h2>
|
||||
<p>Three settings on this screen have no editor anywhere else in the web application — neither on the
|
||||
branch, nor on any other page.</p>
|
||||
<h3 id="align-p0-and-its-undo-history">Align P0, and its undo history</h3>
|
||||
<p>The Coordinate Table tab — that is the tab button's label; <strong>ISO Coordinate Table</strong> is the heading
|
||||
over the panel it opens — carries a third row action beside <strong>P0</strong> and <strong>M0</strong>: <strong>Align P0</strong>, titled
|
||||
<em>"Move workpiece+fixture so ProgramZero coincides with this ISO entry (mutates
|
||||
Fixture.GeomToTableTransformer)"</em>. It does not write the coordinate — it writes the <strong>fixture's
|
||||
geometry-to-table transformer</strong>, moving the workpiece and fixture so that program zero lands on the
|
||||
offset the row holds. The write goes to the authored setup equipment and reports the edit, so the
|
||||
runtime face follows at the next rebuild. The branch's Work Coordinates leaf carries P0 and M0 and
|
||||
no alignment.</p>
|
||||
<p>The endpoint keeps no undo slot. It answers with the assigned translation plus the transformer as it
|
||||
stood <strong>before</strong> and <strong>after</strong> the write, both serialized as XML, and the tab holds the history
|
||||
itself: <strong>Undo Align</strong> and <strong>Redo Align</strong> buttons over two component-local stacks, the undo stack
|
||||
capped at 32 entries and the oldest dropped past it. A third button sits beside them, <strong>Show on
|
||||
Display</strong>, which belongs to the viewer rather than to the history: it is a bound toggle over the
|
||||
<code>IsoCoordinate</code> rendering flag, carrying a <code>visibility</code> / <code>visibility_off</code> icon and writing through
|
||||
the same flag endpoint the Scene dropdown writes. The two datum tabs carry the same button over
|
||||
<code>HeidenhainCoordinate</code>. Each step posts a stashed snapshot back to a stateless revert endpoint,
|
||||
which parses it and assigns the result as the fixture's transformer. Both stacks are cleared
|
||||
whenever the tab's has-a-project prop changes, and the snapshot the component believes is current is
|
||||
only what it last saw — a transformer changed from another surface is overwritten wholesale by the
|
||||
next undo or redo rather than merged.</p>
|
||||
<p>The engine exposes the same operation as a script call,
|
||||
<a class="xref" href="../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_AlignWorkpieceProgramZeroToIso_">AlignWorkpieceProgramZeroToIso</a><small>(API)</small>; the
|
||||
history is the screen's own.</p>
|
||||
<h3 id="enable-shortest-rotary-path">Enable Shortest Rotary Path</h3>
|
||||
<p>The <strong>Config</strong> tab's single toggle writes <a class="xref" href="../api/Hi.Numerical.HardNcEnv.html#Hi_Numerical_HardNcEnv_EnableShortestRotary">EnableShortestRotary</a>, which
|
||||
constructs <code>true</code>. Its banner reads <em>"<strong>Shortest Rotary Path:</strong> optimises rotary axis motion to use
|
||||
the shortest angular distance between positions."</em> On the legacy pipeline the flag gates one step:
|
||||
each rotary axis of a block is cycled into the ±180° window around the previous block's value. The
|
||||
toggle is narrower than it reads, because that same cycle is applied unconditionally on
|
||||
<a class="xref" href="../api/Hi.Numerical.CncBrand.html#Hi_Numerical_CncBrand_Heidenhain">Heidenhain</a> — the brand branch runs it before the flag is consulted, so
|
||||
clearing the box changes nothing there.</p>
|
||||
<p>The runner's dependency layer declares no counterpart: no brand parameter table, no generic config
|
||||
and no branch leaf carries a shortest-rotary switch. The nearest thing the runner pipeline has is the
|
||||
Heidenhain <code>M126</code> / <code>M127</code> pair, which is read from the program text rather than from any setting.</p>
|
||||
<h3 id="heidenhain-master-axis-character">Heidenhain master-axis character</h3>
|
||||
<p>The <strong>Brand</strong> tab grows a second card while the brand is Heidenhain, holding one select over <code>A</code>,
|
||||
<code>B</code>, <code>C</code> labelled <strong>Master-axis character</strong>. It writes
|
||||
<a class="xref" href="../api/Hi.Numerical.HardNcEnv.html#Hi_Numerical_HardNcEnv_HeidenhainMasterAxisChar">HeidenhainMasterAxisChar</a>, a character face over the integer axis
|
||||
direction the <code>PLANE … SEQ</code> solution family is resolved against. Reads are normalised: anything that
|
||||
is not <code>B</code> or <code>C</code> after trimming and upper-casing becomes <code>A</code>. On the runner pipeline the master
|
||||
rotary is <strong>derived rather than configured</strong> — it is the first declared rotary axis — so the branch
|
||||
has nothing to expose and no leaf for it.</p>
|
||||
<h2 id="what-it-shares-with-the-branch">What It Shares With the Branch</h2>
|
||||
<p>Naming what is <em>not</em> exclusive matters as much. The CNC brand, the stroke limits, the rapid feed,
|
||||
the tool-change time, the tool offset table with its tool-house dependence, the work coordinates
|
||||
with their P0 and M0 actions, and the Heidenhain datum preset and datum shift tables all have
|
||||
editors on the branch — see
|
||||
<a class="xref" href="general-setup/controller/brand-matrix.html">Brand Matrix</a> for which of those leaves each brand grows. The
|
||||
<strong>Max Speed (rpm)</strong> column has a counterpart too: on the runner pipeline the rotary speed ceiling is
|
||||
read from the rapid-feedrate config, and the legacy import funnels this field into it at rpm × 360
|
||||
deg/min, so the branch's Rapid Feedrates leaf edits the runner-side number.</p>
|
||||
<p>One control on this screen writes a value the branch also writes. <strong>Set ideal offset dependent on
|
||||
tool house</strong> is a project-level configuration flag rather than a member of either NC model, and both
|
||||
the Offset Table tab and the branch's Tool Offsets leaf read and write that one flag. The two
|
||||
<em>tables</em> stay separate: this tab's <strong>Refresh from Tool House</strong> recomputes
|
||||
<a class="xref" href="../api/Hi.Numerical.HardNcEnv.html#Hi_Numerical_HardNcEnv_MillingToolOffsetTable">MillingToolOffsetTable</a> from <a class="xref" href="../api/Hi.Machining.MachiningToolHouse.html">MachiningToolHouse</a>,
|
||||
while the branch's refresh recomputes the runner's own tool-offset table.</p>
|
||||
<h2 id="two-faces-of-a-work-coordinate">Two Faces of a Work Coordinate</h2>
|
||||
<p>The work-coordinate marker is one displayee class serving two providers. The screen's viewer draws
|
||||
it from <a class="xref" href="../api/Hi.Numerical.HardNcEnv.html#Hi_Numerical_HardNcEnv_IsoCoordinateTable">IsoCoordinateTable</a> — a
|
||||
<a class="xref" href="../api/Hi.NcParsers.Dependencys.Generic.IsoCoordinateTable.html">IsoCoordinateTable</a> instance owned by the legacy model, which
|
||||
constructs with <code>G54</code> … <code>G59</code> and <code>G59.1</code> … <code>G59.9</code> all at zero. The General Setup canvas builds the
|
||||
same displayee over the active runner's effective
|
||||
<a class="xref" href="../api/Hi.NcParsers.Dependencys.IIsoCoordinateConfig.html">IIsoCoordinateConfig</a> instead, which on most brands is the brand
|
||||
parameter table. Same marker, same code, two stores.</p>
|
||||
<p>Selecting a row on the ISO Coordinate Table tab writes the marker's id onto the shared Execution
|
||||
displayee, so it decides which offset the marker draws at. It decides that whether or not the marker
|
||||
is drawn: all three coordinate flags are off in the shipped rendering-flag set — as are the machine
|
||||
tool and the cutter, leaving the workpiece, the fixture, the dimension bar and the cutter-location
|
||||
strip as the four that arrive on — so on an untouched project the selection column moves something
|
||||
invisible until <strong>Show on Display</strong> is pressed. The datum tabs also carry a single-selection column,
|
||||
but nothing is sent when it changes — there the selection is a highlight and nothing more.</p>
|
||||
<h2 id="source-code-path">Source Code Path</h2>
|
||||
<p>See <a class="xref" href="index.html">HiNC App Anatomy</a> for git repository links.</p>
|
||||
<h3 id="web-application">Web Application</h3>
|
||||
<p>HiNC-2025-webservice (Quasar CLI SPA):</p>
|
||||
<ul>
|
||||
<li><code>wwwroot-src/src/components/controller/CoordinateTableTab.vue</code> — <strong>Align P0</strong> with its two
|
||||
client-side history stacks and their cap, and the <strong>Show on Display</strong> toggle bound to the
|
||||
<code>IsoCoordinate</code> rendering flag.</li>
|
||||
<li><code>wwwroot-src/src/components/controller/DatumPresetTab.vue</code> and
|
||||
<code>wwwroot-src/src/components/controller/DatumShiftTab.vue</code> — the same <strong>Show on Display</strong> button
|
||||
over <code>HeidenhainCoordinate</code>, and the row selection that is a highlight and nothing more.</li>
|
||||
<li><code>wwwroot-src/src/components/controller/OffsetTableTab.vue</code> — <strong>Refresh from Tool House</strong>, and the
|
||||
two-step toggle over the project-level tool-house dependence flag the branch also writes.</li>
|
||||
<li><code>wwwroot-src/src/components/controller/ConfigTab.vue</code> — the shortest-rotary toggle and its banner.</li>
|
||||
<li><code>wwwroot-src/src/components/controller/BrandTab.vue</code> — the Heidenhain master-axis card: its read
|
||||
normalisation and its write.</li>
|
||||
<li><code>wwwroot-src/src/api/renderingFlags.ts</code> — the flag indices those toggles write, and which of the
|
||||
shipped set default on.</li>
|
||||
<li><code>wwwroot-src/src/api/controller.ts</code> — the typed wrappers over the align and revert endpoints, and
|
||||
the brand constants these settings are read against.</li>
|
||||
<li><code>Controller/ControllerController.cs</code> — the align endpoint that snapshots the transformer either
|
||||
side of the write, and the stateless revert this screen's history posts back to.</li>
|
||||
</ul>
|
||||
<h3 id="hiapi-engine">HiAPI Engine</h3>
|
||||
<ul>
|
||||
<li><code>HiUniNc/Numerical/HardNcEnv.cs</code> — the model this screen edits: the coordinate, datum and offset
|
||||
tables, the stroke boxes that construct infinite, the rapid rate and tooling time, the
|
||||
shortest-rotary flag with its Heidenhain exclusion, and the master-axis character over its integer
|
||||
direction.</li>
|
||||
<li><code>HiUniNc/Numerical/HardNcLine.cs</code> — the legacy consumers of two of those settings: the
|
||||
shortest-rotary path application and the <code>SEQ</code> solve that reads the master-axis direction.</li>
|
||||
<li><code>HiUniNc/Numerical/MillingToolOffsetTable.cs</code> — the offset table and the tool-house recompute the
|
||||
Refresh button calls.</li>
|
||||
<li><code>HiMech/NcParsers/Dependencys/Generic/IsoCoordinateTable.cs</code> — the coordinate table type and the
|
||||
fifteen G-code keys it constructs with, shared by name with the runner's brand-agnostic table.</li>
|
||||
<li><code>HiMech/Machining/MachiningEquipmentUtils/MachiningEquipmentUtil.cs</code> — the alignment itself: the
|
||||
translation written into the fixture's geometry-to-table transformer.</li>
|
||||
<li><code>HiMech/NcParsers/SoftNcRunner.cs</code> — the legacy import: which legacy fields are funnelled into
|
||||
which runner dependency, including the rotary speed conversion into the rapid-feedrate config.</li>
|
||||
<li><code>HiMech/NcParsers/LogicSyntaxs/PolarInterpolationUtil.cs</code> — the rotary speed ceiling the runner
|
||||
pipeline reads, and why it is the rapid-rate bucket rather than a setting of its own.</li>
|
||||
<li><code>HiMech/NcParsers/LogicSyntaxs/Heidenhain/HeidenhainPlaneTiltSyntax.cs</code> — the derived master rotary
|
||||
on the runner pipeline: the first declared rotary axis, with no configured alternative.</li>
|
||||
<li><code>HiNc/MachiningProcs/MachiningProject.cs</code> — where both models hang off the project, and the load
|
||||
path that derives a runner from the legacy element only when no runner element is present.</li>
|
||||
<li><code>HiNc/MachiningProcs/LocalProjectService.cs</code> — the legacy runner built over a delegate onto the
|
||||
project's model, and the switch that selects which pipeline is active.</li>
|
||||
<li><code>HiNc/Numerical/FilePlayers/HardNcRunner.cs</code> — the legacy runner itself.</li>
|
||||
<li><code>HiNc/MachiningProcs/SessionShell.cs</code> — the scripting face of the pipeline switch and of the
|
||||
alignment, and the optimisation route that passes the legacy model directly.</li>
|
||||
</ul>
|
||||
<h2 id="see-also">See Also</h2>
|
||||
<ul>
|
||||
<li><a class="xref" href="legacy-controller.html">Legacy Controller Page</a> — the screen these settings are edited on: its seven tabs, its commit
|
||||
and rollback rules, its object-management chain and its viewer</li>
|
||||
<li><a class="xref" href="general-setup/controller/index.html">Controller Branch</a> — the SoftNcRunner-native controller branch that carries the editors for
|
||||
everything named above as shared</li>
|
||||
<li><a class="xref" href="general-setup/index.html">General Setup Page</a> — the page that hosts that branch, and the rest of the equipment tree
|
||||
beside it</li>
|
||||
</ul>
|
||||
|
||||
</article>
|
||||
|
||||
<div class="contribution d-print-none">
|
||||
</div>
|
||||
|
||||
<div class="next-article d-print-none border-top" id="nextArticle"></div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="affix">
|
||||
<nav id="affix"></nav>
|
||||
</div>
|
||||
</main>
|
||||
|
||||
<div class="container-xxl search-results" id="search-results"></div>
|
||||
|
||||
<footer class="border-top text-secondary">
|
||||
<div class="container-xxl">
|
||||
<div class="flex-fill">
|
||||
<span> Copyright © 2025 <a href='https://superhightech.com.tw'>Tech Coordinate</a>. All rights reserved. <a href='https://superhightech.com.tw'>超級高科技股份有限公司</a> © 2025 版權所有 </span>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
</body>
|
||||
</html>
|
||||
@@ -100,96 +100,9 @@ different models, so an edit on one is invisible to the other.</p>
|
||||
page, and Anatomy makes no claim that it is stable across versions. The migration hop that keeps
|
||||
an older value resolving is described in <a class="xref" href="platform/tree-ids-and-routes.html">Tree Ids and Routes</a>.</p>
|
||||
</div>
|
||||
<h2 id="the-model-it-edits-and-the-one-it-does-not">The Model It Edits, and the One It Does Not</h2>
|
||||
<p>The project carries both models side by side and serializes both. <a class="xref" href="../api/Hi.Numerical.HardNcEnv.html">HardNcEnv</a> is
|
||||
loaded from the project's own <code>NcEnv</code> element unconditionally; <a class="xref" href="../api/Hi.NcParsers.NcRunnerSuit.html">NcRunnerSuit</a> — the
|
||||
runner plus the project's per-case dependency list — is read from its own nested element. The legacy
|
||||
element is a <em>fallback source</em> for the suit rather than a shared store: a project file that carries
|
||||
no runner element derives one from the legacy element at load time, and from then on the two drift
|
||||
apart, because every later edit lands on one of them alone.</p>
|
||||
<p>The legacy model is still read at play time. The legacy NC runner is constructed over a delegate
|
||||
onto the project's <code>NcEnv</code>, so installing a replacement through this page's ⋮ menu propagates without
|
||||
rewiring, and a project-level switch selects which of the two pipelines plays. That switch defaults
|
||||
to the SoftNc pipeline and no screen in the web application changes it; it is a scripting property,
|
||||
<a class="xref" href="../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_EnableSoftNcRunner_">EnableSoftNcRunner</a><small>(API)</small>. The legacy NC
|
||||
optimisation route is the other live reader: it is taken whenever the switch is off or the session
|
||||
holds no played SoftNc layers, and it is handed <code>MachiningProject.NcEnv</code> directly.</p>
|
||||
<h2 id="what-only-this-screen-edits">What Only This Screen Edits</h2>
|
||||
<p>Three settings on this screen have no editor anywhere else in the web application — neither on the
|
||||
branch, nor on any other page.</p>
|
||||
<h3 id="align-p0-and-its-undo-history">Align P0, and its undo history</h3>
|
||||
<p>The Coordinate Table tab — that is the tab button's label; <strong>ISO Coordinate Table</strong> is the heading over the panel it opens — carries a third row action beside <strong>P0</strong> and <strong>M0</strong>: <strong>Align P0</strong>,
|
||||
titled <em>"Move workpiece+fixture so ProgramZero coincides with this ISO entry (mutates
|
||||
Fixture.GeomToTableTransformer)"</em>. It does not write the coordinate — it writes the <strong>fixture's
|
||||
geometry-to-table transformer</strong>, moving the workpiece and fixture so that program zero lands on the
|
||||
offset the row holds. The write goes to the authored setup equipment and reports the edit, so the
|
||||
runtime face follows at the next rebuild. The branch's Work Coordinates leaf carries P0 and M0 and
|
||||
no alignment.</p>
|
||||
<p>The endpoint keeps no undo slot. It answers with the assigned translation plus the transformer as it
|
||||
stood <strong>before</strong> and <strong>after</strong> the write, both serialized as XML, and the tab holds the history
|
||||
itself: <strong>Undo Align</strong> and <strong>Redo Align</strong> buttons over two component-local stacks, the undo stack
|
||||
capped at 32 entries and the oldest dropped past it. A third button sits beside them, <strong>Show on
|
||||
Display</strong>, which belongs to the viewer rather than to the history: it is a bound toggle over the
|
||||
<code>IsoCoordinate</code> rendering flag, carrying a <code>visibility</code> / <code>visibility_off</code> icon and writing through
|
||||
the same flag endpoint the Scene dropdown writes. The two datum tabs carry the same button over
|
||||
<code>HeidenhainCoordinate</code>. Each step posts a stashed snapshot back to a
|
||||
stateless revert endpoint, which parses it and assigns the result as the fixture's transformer. Both
|
||||
stacks are cleared whenever the tab's has-a-project prop changes, and the snapshot the component
|
||||
believes is current is only what it last saw — a transformer changed from another surface is
|
||||
overwritten wholesale by the next undo or redo rather than merged.</p>
|
||||
<p>The engine exposes the same operation as a script call,
|
||||
<a class="xref" href="../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_AlignWorkpieceProgramZeroToIso_">AlignWorkpieceProgramZeroToIso</a><small>(API)</small>; the
|
||||
history is the screen's own.</p>
|
||||
<h3 id="enable-shortest-rotary-path">Enable Shortest Rotary Path</h3>
|
||||
<p>The <strong>Config</strong> tab's single toggle writes <a class="xref" href="../api/Hi.Numerical.HardNcEnv.html#Hi_Numerical_HardNcEnv_EnableShortestRotary">EnableShortestRotary</a>, which
|
||||
constructs <code>true</code>. Its banner reads <em>"<strong>Shortest Rotary Path:</strong> optimises rotary axis motion to use
|
||||
the shortest angular distance between positions."</em> On the legacy pipeline the flag gates one step:
|
||||
each rotary axis of a block is cycled into the ±180° window around the previous block's value. The
|
||||
toggle is narrower than it reads, because that same cycle is applied unconditionally on
|
||||
<a class="xref" href="../api/Hi.Numerical.CncBrand.html#Hi_Numerical_CncBrand_Heidenhain">Heidenhain</a> — the brand branch runs it before the flag is consulted, so
|
||||
clearing the box changes nothing there.</p>
|
||||
<p>The runner's dependency layer declares no counterpart: no brand parameter table, no generic config
|
||||
and no branch leaf carries a shortest-rotary switch. The nearest thing the runner pipeline has is the
|
||||
Heidenhain <code>M126</code> / <code>M127</code> pair, which is read from the program text rather than from any setting.</p>
|
||||
<h3 id="heidenhain-master-axis-character">Heidenhain master-axis character</h3>
|
||||
<p>The <strong>Brand</strong> tab grows a second card while the brand is Heidenhain, holding one select over <code>A</code>,
|
||||
<code>B</code>, <code>C</code> labelled <strong>Master-axis character</strong>. It writes
|
||||
<a class="xref" href="../api/Hi.Numerical.HardNcEnv.html#Hi_Numerical_HardNcEnv_HeidenhainMasterAxisChar">HeidenhainMasterAxisChar</a>, a character face over the integer axis
|
||||
direction the <code>PLANE … SEQ</code> solution family is resolved against. Reads are normalised: anything that
|
||||
is not <code>B</code> or <code>C</code> after trimming and upper-casing becomes <code>A</code>. On the runner pipeline the master
|
||||
rotary is <strong>derived rather than configured</strong> — it is the first declared rotary axis — so the branch
|
||||
has nothing to expose and no leaf for it.</p>
|
||||
<h2 id="what-it-shares-with-the-branch">What It Shares With the Branch</h2>
|
||||
<p>Naming what is <em>not</em> exclusive matters as much. The CNC brand, the stroke limits, the rapid feed,
|
||||
the tool-change time, the tool offset table with its tool-house dependence, the work coordinates
|
||||
with their P0 and M0 actions, and the Heidenhain datum preset and datum shift tables all have
|
||||
editors on the branch — see
|
||||
<a class="xref" href="general-setup/controller/brand-matrix.html">Brand Matrix</a> for which of those leaves each brand grows. The
|
||||
<strong>Max Speed (rpm)</strong> column has a counterpart too: on the runner pipeline the rotary speed ceiling is
|
||||
read from the rapid-feedrate config, and the legacy import funnels this field into it at rpm × 360
|
||||
deg/min, so the branch's Rapid Feedrates leaf edits the runner-side number.</p>
|
||||
<p>One control on this screen writes a value the branch also writes. <strong>Set ideal offset dependent on
|
||||
tool house</strong> is a project-level configuration flag rather than a member of either NC model, and both
|
||||
the Offset Table tab and the branch's Tool Offsets leaf read and write that one flag. The two
|
||||
<em>tables</em> stay separate: this tab's <strong>Refresh from Tool House</strong> recomputes
|
||||
<a class="xref" href="../api/Hi.Numerical.HardNcEnv.html#Hi_Numerical_HardNcEnv_MillingToolOffsetTable">MillingToolOffsetTable</a> from <a class="xref" href="../api/Hi.Machining.MachiningToolHouse.html">MachiningToolHouse</a>,
|
||||
while the branch's refresh recomputes the runner's own tool-offset table.</p>
|
||||
<h2 id="two-faces-of-a-work-coordinate">Two Faces of a Work Coordinate</h2>
|
||||
<p>The work-coordinate marker is one displayee class serving two providers. This page's viewer draws it
|
||||
from <a class="xref" href="../api/Hi.Numerical.HardNcEnv.html#Hi_Numerical_HardNcEnv_IsoCoordinateTable">IsoCoordinateTable</a> — a
|
||||
<a class="xref" href="../api/Hi.NcParsers.Dependencys.Generic.IsoCoordinateTable.html">IsoCoordinateTable</a> instance owned by the legacy model, which
|
||||
constructs with <code>G54</code> … <code>G59</code> and <code>G59.1</code> … <code>G59.9</code> all at zero. The General Setup canvas builds the
|
||||
same displayee over the active runner's effective
|
||||
<a class="xref" href="../api/Hi.NcParsers.Dependencys.IIsoCoordinateConfig.html">IIsoCoordinateConfig</a> instead, which on most brands is the brand
|
||||
parameter table. Same marker, same code, two stores.</p>
|
||||
<p>Selecting a row on the ISO Coordinate Table tab writes the marker's id onto the shared Execution
|
||||
displayee, so it decides which offset the marker draws at. It decides that whether or not the marker
|
||||
is drawn: all three coordinate flags are off in the shipped rendering-flag set — as are the machine
|
||||
tool and the cutter, leaving the workpiece, the fixture, the dimension bar and the cutter-location
|
||||
strip as the four that arrive on — so on an untouched project the selection column moves something
|
||||
invisible until <strong>Show on Display</strong> is pressed. The datum tabs also carry a
|
||||
single-selection column, but nothing is sent when it changes — there the selection is a highlight and
|
||||
nothing more.</p>
|
||||
<p>The model this screen edits — what <a class="xref" href="../api/Hi.Numerical.HardNcEnv.html">HardNcEnv</a> holds, the three settings it
|
||||
owns alone, what it shares with the branch, and the engine files behind all of it — is
|
||||
<a class="xref" href="legacy-controller-settings.html">Legacy Controller Settings</a>.</p>
|
||||
<h2 id="the-tabs">The Tabs</h2>
|
||||
<p>The left pane is a tab strip over seven panels, addressable as the route's optional segment:
|
||||
<code>coordinate-table</code>, <code>datum-preset</code>, <code>datum-shift</code>, <code>offset-table</code>, <code>machine</code>, <code>brand</code>, <code>config</code>. A
|
||||
@@ -509,37 +422,21 @@ number and shift argument it draws nothing without, and the legacy tables it res
|
||||
</ul>
|
||||
<h3 id="hiapi-engine">HiAPI Engine</h3>
|
||||
<ul>
|
||||
<li><code>HiUniNc/Numerical/HardNcEnv.cs</code> — the model this page edits: the coordinate, datum and offset
|
||||
tables, the stroke boxes that construct infinite, the rapid rate and tooling time, the
|
||||
shortest-rotary flag with its Heidenhain exclusion, and the master-axis character over its integer
|
||||
direction.</li>
|
||||
<li><code>HiUniNc/Numerical/HardNcEnv.cs</code> — the model behind the tab table above: the coordinate, datum and
|
||||
offset tables, the two stroke boxes that construct infinite, and the rapid rate and tooling time
|
||||
the Machine tab writes.</li>
|
||||
<li><code>HiGeom/Geom/Box3d.cs</code> — the box the two stroke limits are, its infinite construction, and the
|
||||
six-argument constructor whose grouped argument order the interleaved stroke writes are handed to.</li>
|
||||
<li><code>HiUniNc/Numerical/HardNcLine.cs</code> — the legacy consumers of two of those settings: the
|
||||
shortest-rotary path application and the <code>SEQ</code> solve that reads the master-axis direction.</li>
|
||||
<li><code>HiUniNc/Numerical/MillingToolOffsetTable.cs</code> — the offset table and the tool-house recompute the
|
||||
Refresh button calls.</li>
|
||||
<li><code>HiMech/NcParsers/Dependencys/Generic/IsoCoordinateTable.cs</code> — the coordinate table type and the
|
||||
fifteen G-code keys it constructs with, shared by name with the runner's brand-agnostic table.</li>
|
||||
<li><code>HiMech/Machining/MachiningEquipmentUtils/MachiningEquipmentUtil.cs</code> — the alignment itself: the
|
||||
translation written into the fixture's geometry-to-table transformer.</li>
|
||||
<li><code>HiMech/NcParsers/SoftNcRunner.cs</code> — the legacy import: which legacy fields are funnelled into
|
||||
which runner dependency, including the rotary speed conversion into the rapid-feedrate config.</li>
|
||||
<li><code>HiMech/NcParsers/LogicSyntaxs/PolarInterpolationUtil.cs</code> — the rotary speed ceiling the runner
|
||||
pipeline reads, and why it is the rapid-rate bucket rather than a setting of its own.</li>
|
||||
<li><code>HiMech/NcParsers/LogicSyntaxs/Heidenhain/HeidenhainPlaneTiltSyntax.cs</code> — the derived master rotary
|
||||
on the runner pipeline: the first declared rotary axis, with no configured alternative.</li>
|
||||
<li><code>HiNc/MachiningProcs/MachiningProject.cs</code> — where both models hang off the project, and the load
|
||||
path that derives a runner from the legacy element only when no runner element is present.</li>
|
||||
<li><code>HiNc/MachiningProcs/LocalProjectService.cs</code> — the legacy runner built over a delegate onto the
|
||||
project's model, the switch that selects which pipeline is active, and the per-step stroke check
|
||||
that falls back to the legacy boxes when no runner-side stroke config resolves.</li>
|
||||
<li><code>HiNc/Numerical/FilePlayers/HardNcRunner.cs</code> — the legacy runner itself.</li>
|
||||
<li><code>HiNc/MachiningProcs/SessionShell.cs</code> — the scripting face of the pipeline switch and of the
|
||||
alignment, and the optimisation route that passes the legacy model directly.</li>
|
||||
<li><code>HiUniNc/Numerical/MillingToolOffsetTable.cs</code> — the offset table the Offset Table tab edits: a
|
||||
dictionary keyed on the offset id, which is the key a row rename moves an entry to.</li>
|
||||
<li><code>HiNc/MachiningProcs/LocalProjectService.cs</code> — the per-step stroke check that falls back to the
|
||||
legacy boxes when no runner-side stroke config resolves, which is what makes a regrouped box
|
||||
observable.</li>
|
||||
</ul>
|
||||
<h2 id="see-also">See Also</h2>
|
||||
<ul>
|
||||
<li><a class="xref" href="legacy-controller-settings.html">Legacy Controller Settings</a> — the model this screen edits, the three settings it
|
||||
owns alone, and the engine files behind them</li>
|
||||
<li><a class="xref" href="general-setup/controller/index.html">Controller Branch</a> — the SoftNcRunner-native controller branch that supersedes this screen,
|
||||
and where controller settings for a project are edited</li>
|
||||
<li><a class="xref" href="general-setup/index.html">General Setup Page</a> — the page that hosts the branch above, and the rest of the equipment
|
||||
|
||||
@@ -45,6 +45,9 @@
|
||||
<li>
|
||||
<a href="legacy-controller.html" name="" title="Legacy Controller (HardNcEnv)">Legacy Controller (HardNcEnv)</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="legacy-controller-settings.html" name="" title="Legacy Controller Settings">Legacy Controller Settings</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="by-source/index.html" name="by-source/toc.html" title="By Source Directory">By Source Directory</a>
|
||||
</li>
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
|
||||
{"items":[{"name":"Overview","href":"index.html","topicHref":"index.html"},{"name":"Conventions","href":"conventions/index.html","tocHref":"conventions/toc.html","topicHref":"conventions/index.html","homepage":"conventions/index.html"},{"name":"Platform","href":"platform/index.html","tocHref":"platform/toc.html","topicHref":"platform/index.html","homepage":"platform/index.html"},{"name":"App Shell","href":"shell/index.html","tocHref":"shell/toc.html","topicHref":"shell/index.html","homepage":"shell/index.html"},{"name":"Widgets","href":"widget/index.html","tocHref":"widget/toc.html","topicHref":"widget/index.html","homepage":"widget/index.html"},{"name":"Geometry Panels","href":"geom/index.html","tocHref":"geom/toc.html","topicHref":"geom/index.html","homepage":"geom/index.html"},{"name":"Execution Page","href":"execution/index.html","tocHref":"execution/toc.html","topicHref":"execution/index.html","homepage":"execution/index.html"},{"name":"General Setup Page","href":"general-setup/index.html","tocHref":"general-setup/toc.html","topicHref":"general-setup/index.html","homepage":"general-setup/index.html"},{"name":"Tool House Page","href":"tool-house/index.html","tocHref":"tool-house/toc.html","topicHref":"tool-house/index.html","homepage":"tool-house/index.html"},{"name":"Utility Pages","href":"util/index.html","tocHref":"util/toc.html","topicHref":"util/index.html","homepage":"util/index.html"},{"name":"Legacy Controller (HardNcEnv)","href":"legacy-controller.html","topicHref":"legacy-controller.html"},{"name":"By Source Directory","href":"by-source/index.html","tocHref":"by-source/toc.html","topicHref":"by-source/index.html","homepage":"by-source/index.html"}]}
|
||||
{"items":[{"name":"Overview","href":"index.html","topicHref":"index.html"},{"name":"Conventions","href":"conventions/index.html","tocHref":"conventions/toc.html","topicHref":"conventions/index.html","homepage":"conventions/index.html"},{"name":"Platform","href":"platform/index.html","tocHref":"platform/toc.html","topicHref":"platform/index.html","homepage":"platform/index.html"},{"name":"App Shell","href":"shell/index.html","tocHref":"shell/toc.html","topicHref":"shell/index.html","homepage":"shell/index.html"},{"name":"Widgets","href":"widget/index.html","tocHref":"widget/toc.html","topicHref":"widget/index.html","homepage":"widget/index.html"},{"name":"Geometry Panels","href":"geom/index.html","tocHref":"geom/toc.html","topicHref":"geom/index.html","homepage":"geom/index.html"},{"name":"Execution Page","href":"execution/index.html","tocHref":"execution/toc.html","topicHref":"execution/index.html","homepage":"execution/index.html"},{"name":"General Setup Page","href":"general-setup/index.html","tocHref":"general-setup/toc.html","topicHref":"general-setup/index.html","homepage":"general-setup/index.html"},{"name":"Tool House Page","href":"tool-house/index.html","tocHref":"tool-house/toc.html","topicHref":"tool-house/index.html","homepage":"tool-house/index.html"},{"name":"Utility Pages","href":"util/index.html","tocHref":"util/toc.html","topicHref":"util/index.html","homepage":"util/index.html"},{"name":"Legacy Controller (HardNcEnv)","href":"legacy-controller.html","topicHref":"legacy-controller.html"},{"name":"Legacy Controller Settings","href":"legacy-controller-settings.html","topicHref":"legacy-controller-settings.html"},{"name":"By Source Directory","href":"by-source/index.html","tocHref":"by-source/toc.html","topicHref":"by-source/index.html","homepage":"by-source/index.html"}]}
|
||||
|
||||
@@ -235,7 +235,7 @@ Manages <a class="xref" href="../../../api/Hi.Milling.Cutters.MillingCutter.html
|
||||
<ul>
|
||||
<li>Intro caption</li>
|
||||
<li>Warnings Banner — one orange banner per geometry issue the backend reports, e.g. an ExtendedCylinder beam whose FullLength sits below the flute top</li>
|
||||
<li><a class="xref" href="../../geom/geom-manage-control.html">Geometry Management Control</a>, limited to the six <a class="xref" href="../../../api/Hi.Geom.IGetStl.html">IGetStl</a> kinds an upper beam can be
|
||||
<li><a class="xref" href="../../geom/geometry-editor.html">Geometry Management Control</a>, limited to the six <a class="xref" href="../../../api/Hi.Geom.IGetStl.html">IGetStl</a> kinds an upper beam can be
|
||||
<ul>
|
||||
<li><a class="xref" href="../../../api/Hi.Geom.Cylindroid.html">Cylindroid</a></li>
|
||||
<li><a class="xref" href="../../../api/Hi.Geom.ExtendedCylinder.html">ExtendedCylinder</a></li>
|
||||
@@ -312,7 +312,7 @@ Manages <a class="xref" href="../../../api/Hi.Milling.Cutters.MillingCutter.html
|
||||
</ul>
|
||||
<h2 id="see-also">See Also</h2>
|
||||
<ul>
|
||||
<li><a class="xref" href="../../geom/extended-cylinder-panel.html">Extended Cylinder Panel</a> — the Upper Beam's kind that exists
|
||||
<li><a class="xref" href="../../geom/extended-cylinder-editor.html">ExtendedCylinder Editor</a> — the Upper Beam's kind that exists
|
||||
for this cutter, and the one surface that gives it a start section</li>
|
||||
</ul>
|
||||
|
||||
|
||||
@@ -94,7 +94,7 @@
|
||||
<ul>
|
||||
<li>Geometry Section
|
||||
<ul>
|
||||
<li><a class="xref" href="../../geom/cylindroid-control.html">Cylindroid Panel</a> — the reusable Z-R pair table, driven by a model key</li>
|
||||
<li><a class="xref" href="../../geom/cylindroid-editor.html">Cylindroid Panel</a> — the reusable Z-R pair table, driven by a model key</li>
|
||||
<li>Initializing Caption — stands in for the editor until the holder's cylindroid has been published under a key</li>
|
||||
</ul>
|
||||
</li>
|
||||
@@ -126,7 +126,7 @@
|
||||
<h2 id="see-also">See Also</h2>
|
||||
<ul>
|
||||
<li><a class="xref" href="../../widget/polar-resolution-2d-panel.html">Polar Resolution 2D Panel</a> — the resolution editor this panel embeds</li>
|
||||
<li><a class="xref" href="../../geom/cylindroid-control.html">Cylindroid Control</a> — the shape editor this panel's Geometry surface
|
||||
<li><a class="xref" href="../../geom/cylindroid-editor.html">Cylindroid Editor</a> — the shape editor this panel's Geometry surface
|
||||
embeds, and the shape whose tessellation the Resolution surface governs</li>
|
||||
</ul>
|
||||
|
||||
|
||||
@@ -188,7 +188,7 @@
|
||||
<ul>
|
||||
<li><a class="xref" href="../general-setup/fixture.html">Fixture Page</a> — parent-aware <code>onCreate</code> transformer rebind pattern reused for Branch.</li>
|
||||
<li><a class="xref" href="../geom/transformer-panel.html">Transformers</a> — the shared 7-transformer switchboard.</li>
|
||||
<li><a class="xref" href="../geom/geom-manage-control.html">Geometry Management Control</a> — embedded under the anchor editor.</li>
|
||||
<li><a class="xref" href="../geom/geometry-editor.html">Geometry Management Control</a> — embedded under the anchor editor.</li>
|
||||
<li><a class="xref" href="../general-setup/machine-tool.html">Machine Tool</a> — where a project's chain is loaded, replaced and previewed, next to this user-scoped builder.</li>
|
||||
<li><a href="file-explorer.html">File Explorer</a> — the server-side browser this page's Load and Save As dialogs are built on.</li>
|
||||
<li><a class="xref" href="../general-setup/spindle-capability.html">Spindle Capability Page</a> — the project-scoped editor with the same Load / Reload / Save As pattern.</li>
|
||||
|
||||
@@ -175,7 +175,7 @@ engine's home view and the render cache cleared, and the geometry the commit rep
|
||||
afterwards, so the render thread never spends a frame on a dead reference.</p>
|
||||
<p>The response carries the triangle count, the bounding box, the connection's origin-axes flag and
|
||||
the transform key. The pane reads all of those except the bounding box, which it ignores — the
|
||||
bounding-box readout a reader sees belongs to the STL File Control's info dialog, not to this pane.</p>
|
||||
bounding-box readout a reader sees belongs to the StlFile Editor's info dialog, not to this pane.</p>
|
||||
<p>A rejected load — unknown or unavailable root, a path escaping the root, a missing file, an
|
||||
unreadable file — answers a non-2xx status carrying the server's message, and the shared response
|
||||
helper folds the status into the text; that composite is what the banner shows. The message itself
|
||||
@@ -399,7 +399,7 @@ sub-transformers.</li>
|
||||
<ul>
|
||||
<li><a href="file-explorer.html">File Explorer</a> — the one screen that mounts this pane, and the editor column it
|
||||
takes over</li>
|
||||
<li><a class="xref" href="../geom/stlfile-control.html">STL File Control</a> — the geometry editor whose file picker is where this preview is
|
||||
<li><a class="xref" href="../geom/stlfile-editor.html">StlFile Editor</a> — the geometry editor whose file picker is where this preview is
|
||||
most often met, and the surface that owns the bounding-box readout this pane does not show</li>
|
||||
<li><a class="xref" href="../widget/renderingcanvas-tool-bar.html">RenderingCanvas Tool Bar</a> — the <code>View ▾</code> and <code>Scene ▾</code> menus the preview bar embeds</li>
|
||||
<li><a class="xref" href="../conventions/rendering-canvas-web-service.html">Rendering Canvas on Web Service Application</a> — the hub connection the pane opens, and the
|
||||
|
||||
Reference in New Issue
Block a user