Archived
490 lines
30 KiB
HTML
490 lines
30 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<title>Machine and Controller Plane | HiAPI-C# 2025 </title>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<meta name="title" content="Machine and Controller Plane | 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-ControllerMachine">
|
|
<h1 id="machine-and-controller-plane">Machine and Controller Plane</h1>
|
|
|
|
<p>Machine / Controller is the first of the Controller branch's two plane stems: what describes the
|
|
machine and the control that drives it, edited one leaf at a time. It lives on the General Setup
|
|
page at <code>/general-setup</code> under the Control-Tree id <code>equipment/controller/machine</code>, and each of its
|
|
leaves takes that id plus one segment — <code>brand</code>, <code>limits</code>, <code>rapid</code>, <code>home</code>, <code>tool-change</code>,
|
|
<code>parameters</code>, <code>m-codes</code>, <code>canned-cycle</code>, <code>block-skip</code>, <code>subprograms</code>, <code>indexing-positions</code>,
|
|
<code>native</code>. The stem is not gated: it is part of the branch builder's return value rather than a
|
|
conditional entry, so it appears wherever a runner resolves and always carries the leaves no flag
|
|
guards.</p>
|
|
<div class="IMPORTANT">
|
|
<h5>Important</h5>
|
|
<p>Anatomy makes no claim that any id named here is stable across versions. The migration hop that
|
|
keeps an older <code>?tree=</code> value resolving is described in
|
|
<a class="xref" href="../../../platform/tree-ids-and-routes.html">Tree Ids and Routes</a>.</p>
|
|
</div>
|
|
<p>Selecting the stem shows the shared group editor: its own introduction over a clickable list of its
|
|
children. The introduction reads <em>"Machine and controller presets that travel with the runner file —
|
|
brand, travel limits, rapid rates, home / G28 reference, the tool-change position and the controller
|
|
parameters (in both a domain-grouped interface form and the native parameter form)."</em></p>
|
|
<h2 id="what-travels-with-the-runner-file-means">What “Travels With the Runner File” Means</h2>
|
|
<p>The phrase names an <strong>ownership</strong> boundary, not a file on disk, and the boundary does not fall where
|
|
the introduction's list suggests. Half of what this plane edits is stored on the project.</p>
|
|
<h3 id="the-suits-two-members">The suit's two members</h3>
|
|
<p><a class="xref" href="../../../../api/Hi.NcParsers.NcRunnerSuit.html">NcRunnerSuit</a> carries the runner, <a class="xref" href="../../../../api/Hi.NcParsers.SoftNcRunner.html">SoftNcRunner</a>, and the
|
|
project's own <a class="xref" href="../../../../api/Hi.NcParsers.NcRunnerSuit.html#Hi_NcParsers_NcRunnerSuit_PerCaseNcDependencyList">PerCaseNcDependencyList</a>, and serializes the two side
|
|
by side. The runner half honours <a class="xref" href="../../../../api/Hi.NcParsers.NcRunnerSuit.html#Hi_NcParsers_NcRunnerSuit_SoftNcRunnerFile">SoftNcRunnerFile</a>: with a
|
|
project-relative path recorded there the runner XML is written to that side file and referenced from
|
|
the project; with none recorded it is inlined in the project file. The per-case half is always
|
|
inlined — the suit writes it as a nested element with no file reference of its own.</p>
|
|
<p>The web service reads that recorded path and never writes one. On a project that has never been
|
|
given a side file, both halves therefore sit inside the same project file, in two slots whose
|
|
contents behave differently the moment a runner is swapped. A controller file is one serialized
|
|
runner. Its canonical extension is <code>.Controller</code>
|
|
(<a class="xref" href="../../../../api/Hi.NcParsers.ControllerPresetWriter.html#Hi_NcParsers_ControllerPresetWriter_FileExtension">FileExtension</a>), and the branch root's Load browser
|
|
accepts the earlier <code>.SoftNcRunner</code> spelling beside it.</p>
|
|
<h3 id="which-half-a-value-lands-in">Which half a value lands in</h3>
|
|
<p>A runner's <a class="xref" href="../../../../api/Hi.NcParsers.SoftNcRunner.html#Hi_NcParsers_SoftNcRunner_PipelineNcDependencyList">PipelineNcDependencyList</a> holds two shapes of entry.</p>
|
|
<p>A <strong>plain dependency</strong> is the runner's own. Its edited values serialize with the runner, and
|
|
installing another runner replaces the instance outright.</p>
|
|
<p>A <strong>proxy</strong> — <a class="xref" href="../../../../api/Hi.NcParsers.Dependencys.INcDependencyProxy.html">INcDependencyProxy</a> — carries no live data. Each brand
|
|
parameter-table proxy holds a fixed machine-config seed and serializes only that seed;
|
|
<a class="xref" href="../../../../api/Hi.NcParsers.NcRunnerSuit.html#Hi_NcParsers_NcRunnerSuit_WireNcDependencyProxies_">WireNcDependencyProxies</a><small>(API)</small> deep-clones the seed
|
|
into the project's per-case list only when the project holds no table of that type, and an existing
|
|
table wins. Reads and writes then resolve through
|
|
<a class="xref" href="../../../../api/Hi.NcParsers.SoftNcRunner.html#Hi_NcParsers_SoftNcRunner_GetEffectiveNcDependencyList_">GetEffectiveNcDependencyList</a><small>(API)</small>, which
|
|
substitutes the project's table for the placeholder. All four brand tables' proxies are written to
|
|
the same shape, and the seed is set once at construction and never rewritten by an edit.</p>
|
|
<p>Two consequences follow, and they are what the introduction's phrasing hides:</p>
|
|
<ul>
|
|
<li>The per-axis rows, the M-code declarations and the native parameter rows are stored on the
|
|
<strong>project</strong>, because they are all rows of the brand parameter table. Installing a same-brand
|
|
runner file leaves them where they are, apart from the rotary reference and rapid rows that any
|
|
re-bind of the suit re-stamps.</li>
|
|
<li>Saving a runner file captures the proxy's seed, not the table the panels have been editing. A
|
|
<code>.Controller</code> written after the axis tables were tuned carries the preset seed those tables were
|
|
cloned from.</li>
|
|
</ul>
|
|
<p>Why the table is per-case at all splits by brand. The Fanuc-family and Syntec tables mix machine
|
|
configuration with the per-case work-coordinate offsets the program-data plane edits, which the two
|
|
planes could not otherwise separate. The Siemens machine-data and Heidenhain tables carry no work
|
|
coordinates — those two brands keep their offsets in a separate per-case table — and are per-case
|
|
for the other half of the same reason: the project's own table wins over the seed, so machine data
|
|
and machine parameters already edited survive a same-brand runner install instead of resetting to
|
|
the preset's.</p>
|
|
<h2 id="the-planes-leaves">The Plane's Leaves</h2>
|
|
<p>Ordered as the branch builder pushes them: the ungated leaves first, then each gated leaf behind the
|
|
snapshot flag that grows it. Which brands satisfy each flag is
|
|
<a class="xref" href="../brand-matrix.html">Brand Matrix</a>; the column that page does not carry is the last
|
|
one here.</p>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th>Node segment</th>
|
|
<th>Label the tree shows</th>
|
|
<th>Gate</th>
|
|
<th>What backs it</th>
|
|
<th>Stored on</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td><code>brand</code></td>
|
|
<td>Controller Brand</td>
|
|
<td>ungated</td>
|
|
<td><a class="xref" href="../../../../api/Hi.NcParsers.Dependencys.CncBrandDependency.html">CncBrandDependency</a></td>
|
|
<td>runner</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>limits</code></td>
|
|
<td>Machine Limits (Stroke)</td>
|
|
<td>ungated</td>
|
|
<td>the brand parameter table's stroke-limit rows</td>
|
|
<td>project</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>rapid</code></td>
|
|
<td>Rapid Feedrates</td>
|
|
<td>ungated</td>
|
|
<td>the brand parameter table's rapid-rate rows</td>
|
|
<td>project</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>home</code></td>
|
|
<td>Home / G28 Reference</td>
|
|
<td>ungated</td>
|
|
<td>the brand parameter table's reference-position rows</td>
|
|
<td>project</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>tool-change</code></td>
|
|
<td>Tool-Change Position</td>
|
|
<td>ungated</td>
|
|
<td><a class="xref" href="../../../../api/Hi.NcParsers.Dependencys.Generic.ToolingMcConfig.html">ToolingMcConfig</a></td>
|
|
<td>runner</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>parameters</code></td>
|
|
<td>Controller Parameters</td>
|
|
<td>ungated</td>
|
|
<td>the brand parameter table, plus the runner's iteration guards</td>
|
|
<td>split</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>m-codes</code></td>
|
|
<td>M-Code Declarations</td>
|
|
<td><code>hasNativeTable</code></td>
|
|
<td>the brand parameter table's declaration map and tool-change trigger</td>
|
|
<td>project</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>canned-cycle</code></td>
|
|
<td>Canned Cycle (Peck)</td>
|
|
<td><code>hasCannedCycle</code></td>
|
|
<td>the brand parameter table, or <a class="xref" href="../../../../api/Hi.NcParsers.Dependencys.Generic.FallbackConfig.html">FallbackConfig</a></td>
|
|
<td>brand-dependent</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>block-skip</code></td>
|
|
<td>Block Skip / Delete</td>
|
|
<td><code>hasBlockSkip</code></td>
|
|
<td><a class="xref" href="../../../../api/Hi.NcParsers.Dependencys.Generic.GenericBlockSkipConfig.html">GenericBlockSkipConfig</a></td>
|
|
<td>runner</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>subprograms</code></td>
|
|
<td>Subprogram Folders</td>
|
|
<td><code>hasSubprogramFolders</code></td>
|
|
<td><a class="xref" href="../../../../api/Hi.NcParsers.Dependencys.Generic.SubProgramFolderConfig.html">SubProgramFolderConfig</a></td>
|
|
<td>runner</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>indexing-positions</code></td>
|
|
<td>Indexing Position Tables</td>
|
|
<td><code>hasIndexingTables</code></td>
|
|
<td><a class="xref" href="../../../../api/Hi.NcParsers.Dependencys.Siemens.SiemensMachineDataTable.html">SiemensMachineDataTable</a></td>
|
|
<td>project</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>native</code></td>
|
|
<td>Parameters (Native)</td>
|
|
<td><code>hasNativeTable</code></td>
|
|
<td>the brand parameter table, as its raw dictionaries</td>
|
|
<td>project</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p>Every label above is a translated role string rather than a type name, so the tree renders the
|
|
translation and a locale change rewrites the rows without touching an id.</p>
|
|
<p>One flag grows two of these leaves: <code>hasNativeTable</code> gates both M-Code Declarations and Parameters
|
|
(Native), because the declarations live on the same table the native form exposes.</p>
|
|
<h3 id="two-leaves-that-straddle-the-boundary">Two leaves that straddle the boundary</h3>
|
|
<p><strong>Controller Parameters</strong> is the one leaf whose fields do not share a storage half. Max spindle
|
|
speed, the cutter-compensation startup type and the tool-axis direction are written onto the brand
|
|
parameter table, so they are project-owned; the macro loop guards under <em>Macro loop guards
|
|
(advanced)</em> are written onto the runner's own iteration-guard dependencies, so they are
|
|
runner-owned. The panel gates its whole body on the parameter table's presence, which is the
|
|
project-owned half.</p>
|
|
<p><strong>Canned Cycle (Peck)</strong> is the one leaf whose storage half depends on the brand. Where the brand
|
|
table supplies the clearance it is a row of that table and project-owned; where the preset supplies
|
|
it through the generic fallback config it is a plain runner entry and runner-owned. The read reports
|
|
which of the two answered, and the panel names the source in the caption under the field.</p>
|
|
<h2 id="what-an-install-or-a-brand-switch-does">What an Install or a Brand Switch Does</h2>
|
|
<p>Object-Management Load, Paste and XML apply all install a runner through
|
|
<a class="xref" href="../../../../api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_SoftNcRunner">SoftNcRunner</a>, and a brand switch assigns the brand's
|
|
preset through the same setter. Both are followed by the same sweep, and for this plane the outcome
|
|
splits exactly along the storage column.</p>
|
|
<p>The <strong>runner-owned</strong> leaves take the incoming runner's values, so a brand switch returns the
|
|
tool-change position, the block-skip layers, the subprogram folders and the macro guards to the new
|
|
preset's defaults. Installing a controller file of the brand already in force replaces those same
|
|
four with the file's values while the project keeps its own parameter table — the same-brand
|
|
re-flash the REST surface's own remark calls per-case lossless, naming those four as what resets.
|
|
That re-flash is not reachable from the brand select, whose apply is enabled only while the staged
|
|
brand differs from the active one (<a class="xref" href="brand-switch.html">Brand Switch</a>); Load, Paste
|
|
and XML apply are the surfaces that issue it.</p>
|
|
<p>The <strong>project-owned</strong> leaves keep the project's table: the incoming proxy re-binds to it rather than
|
|
cloning its seed over it. Before the swap, any brand parameter table baked directly into the
|
|
outgoing runner's pipeline list — the storage a project file saved before that table went per-case
|
|
still uses — is moved into the per-case list so the incoming proxy can claim it, and a moved table
|
|
no proxy claims is dropped again afterwards. The chain walk that follows the re-bind is the only
|
|
part of the swap that writes into the surviving table: it stamps the chain's axes onto it, and with
|
|
them every rotary axis's reference position and rapid rate.</p>
|
|
<p>A switch to a <strong>different</strong> brand ends with the per-case tables the new runner resolves through no
|
|
proxy removed, so the previous brand's parameter table does not linger unread. Switching back does
|
|
not restore it; a fresh table is cloned from the new preset's seed instead.</p>
|
|
<p>Both writes are refused while an NC program is playing, and each answers with a conflict rather than
|
|
swapping the parser under a running session.</p>
|
|
<h2 id="one-table-two-forms">One Table, Two Forms</h2>
|
|
<p>Machine Limits, Rapid Feedrates, Home / G28 Reference, M-Code Declarations, most of Controller
|
|
Parameters and all of Parameters (Native) read and write one object: the brand parameter table.
|
|
<a class="xref" href="../../../../api/Hi.NcParsers.Dependencys.ControllerParameterTableBase.html">ControllerParameterTableBase</a> declares the role accessors — home
|
|
reference, axis set, rapid feedrates, stroke limits, spindle control, M-code declarations, the
|
|
tool-change trigger — and each brand subclass maps those roles onto its own parameter numbers. The
|
|
domain-grouped leaves call the accessors; the native leaf writes the raw dictionary cell under the
|
|
number. Editing one form changes what the other shows.</p>
|
|
<p>Where a brand stores a role in its own unit the two forms differ by that unit, and the peck
|
|
clearance is the case that ships: the Syntec table stores it in microns and its accessor converts,
|
|
while the Fanuc-family table stores millimetres directly. The interface leaf therefore shows the
|
|
same number on every brand and the native leaf shows the brand's raw stored value.</p>
|
|
<p>What a freshly switched brand shows is decided by that brand's default table. Every one of them
|
|
declares a linear X, Y and Z with a reference position of zero and a rapid rate per axis, so Rapid
|
|
Feedrates and Home / G28 Reference open populated. None of them declares a stroke limit, so Machine
|
|
Limits opens with empty cells on every brand; and only the Siemens default table pre-declares any
|
|
M-codes, so M-Code Declarations opens empty on the other four brands, Mazak included, because it
|
|
carries the Fanuc table. An axis with no rapid-rate row of its own reads a fixed default rather than
|
|
a blank cell.</p>
|
|
<p>The axis rows those leaves list are the parameter table's own axis entries. Whenever the suit or the
|
|
machine chain is re-bound, a chain walk stamps the chain's axis codes onto that table: it adds axes
|
|
and removes none, and a linear axis keeps what the table already holds, gaining a reference position
|
|
only where it had none. A rotary axis is the exception — every walk rewrites its reference position
|
|
to 0 deg and its rapid rate to 36000 deg/min, so a tuned rotary value does not survive the next
|
|
stamp. The chain itself is edited on <a class="xref" href="../../machine-tool.html">Machine Tool</a>.</p>
|
|
<h2 id="layout">Layout</h2>
|
|
<ul>
|
|
<li><strong>General Setup</strong> Control Tree — the left dock of <code>/general-setup</code>
|
|
<ul>
|
|
<li><strong>Controller</strong> Node Row
|
|
<ul>
|
|
<li><strong>Machine / Controller</strong> Group Row — <code>equipment/controller/machine</code>
|
|
<ul>
|
|
<li><strong>Controller Brand</strong> Node Row</li>
|
|
<li><strong>Machine Limits (Stroke)</strong> Node Row</li>
|
|
<li><strong>Rapid Feedrates</strong> Node Row</li>
|
|
<li><strong>Home / G28 Reference</strong> Node Row</li>
|
|
<li><strong>Tool-Change Position</strong> Node Row</li>
|
|
<li><strong>Controller Parameters</strong> Node Row</li>
|
|
<li><strong>M-Code Declarations</strong> Node Row — grown while the snapshot reports a brand parameter table</li>
|
|
<li><strong>Canned Cycle (Peck)</strong> Node Row — grown while it reports a peck-clearance provider</li>
|
|
<li><strong>Block Skip / Delete</strong> Node Row — grown while it reports a block-skip config</li>
|
|
<li><strong>Subprogram Folders</strong> Node Row — grown while it reports a subprogram-folder config</li>
|
|
<li><strong>Indexing Position Tables</strong> Node Row — grown while the brand table is the Siemens
|
|
machine-data table</li>
|
|
<li><strong>Parameters (Native)</strong> Node Row — grown on the same flag as <strong>M-Code Declarations</strong></li>
|
|
</ul>
|
|
</li>
|
|
<li><strong>Program Data</strong> Group Row — the plane beside this one</li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
<li>Editor Row — the panel of whichever node is selected
|
|
<ul>
|
|
<li><strong>Machine / Controller</strong> Group Panel
|
|
<ul>
|
|
<li>Intro Caption — the stem's introduction line</li>
|
|
<li>Child List — one bordered, separated row per leaf above, each showing the leaf's label in the
|
|
theme's primary colour with a right chevron; a click selects that leaf</li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
<p>The stem's own editor holds no field, so nothing on this plane is edited from the group row itself.</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/controlTree/softNcItemTypes.ts</code> — the branch builder: the machine
|
|
stem's id, label key and intro key, the leaves it pushes unconditionally, and the snapshot flag
|
|
each further leaf is pushed behind, in the order the table above lists them.</li>
|
|
<li><code>wwwroot-src/src/components/controlTree/GroupInfoPanel.vue</code> — the stem's editor: the intro caption
|
|
and the clickable child list that selects a leaf.</li>
|
|
<li><code>wwwroot-src/src/components/controlTree/useControlTreeHost.ts</code> — builds the <code>equipment/controller</code>
|
|
root this stem hangs from, inside the equipment group.</li>
|
|
<li><code>wwwroot-src/src/api/softNcRunner.ts</code> — the snapshot shape the builder reads its flags from, and
|
|
the typed wrappers over each leaf's reader and writers.</li>
|
|
<li><code>wwwroot-src/src/composables/useSoftNcRunner.ts</code> — the shared snapshot the leaf panels gate on, and
|
|
the install and brand-switch calls that regrow the branch.</li>
|
|
<li><code>wwwroot-src/src/i18n/en/softNc.ts</code> — the stem's introduction line and every leaf label in the
|
|
table above.</li>
|
|
<li><code>Mech/SoftNcRunnerController.cs</code> — the plane's REST surface: the presence flags, the per-group
|
|
readers and writers, the runner install, and the brand switch with its carry and its sweep of
|
|
per-case tables the new runner references through no proxy.</li>
|
|
</ul>
|
|
<h3 id="hiapi-engine">HiAPI Engine</h3>
|
|
<ul>
|
|
<li><code>HiMech/NcParsers/NcRunnerSuit.cs</code> — the suit: the runner, its optional side-file path, the
|
|
per-case list, the flat serialization that inlines the per-case half and file-references the
|
|
runner half, and the proxy wiring.</li>
|
|
<li><code>HiMech/NcParsers/SoftNcRunner.cs</code> — the pipeline list this plane's dependencies sit in, the five
|
|
brand presets that decide which of them a brand carries, the proxy resolution every read goes
|
|
through, and the chain configuration that stamps axis codes onto the table.</li>
|
|
<li><code>HiMech/NcParsers/ControllerPresetWriter.cs</code> — the canonical controller-file extension and the
|
|
writer that renders one brand preset as a standalone runner file.</li>
|
|
<li><code>HiMech/NcParsers/Dependencys/INcDependencyProxy.cs</code> — the maker-and-taker contract: what a proxy
|
|
may serialize, and why its resolved data is never written into the runner.</li>
|
|
<li><code>HiMech/NcParsers/Dependencys/Fanuc/FanucParameterTableProxy.cs</code> — the get-or-create proxy behind
|
|
the Fanuc-family table the Fanuc and Mazak presets share, and the shape the other three brand
|
|
tables each repeat in a proxy class of their own: a serialized seed on the runner, a deep clone
|
|
installed into the project only when the project has no table of that type, and a take thereafter.</li>
|
|
<li><code>HiMech/NcParsers/Dependencys/ControllerParameterTableBase.cs</code> — the role accessors the
|
|
domain-grouped leaves call, the per-brand parameter numbers they map onto, and the raw
|
|
dictionaries the native leaf edits.</li>
|
|
<li><code>HiMech/NcParsers/Dependencys/Fanuc/FanucParameterTable.cs</code>,
|
|
<code>HiMech/NcParsers/Dependencys/Syntec/SyntecParameterTable.cs</code>,
|
|
<code>HiMech/NcParsers/Dependencys/Siemens/SiemensMachineDataTable.cs</code>,
|
|
<code>HiMech/NcParsers/Dependencys/Heidenhain/HeidenhainParameterTable.cs</code> — the four brand tables and
|
|
their default seeds: the axis rows, the rapid rates, the peck clearance and its unit, and the only
|
|
pre-declared M-codes on the plane.</li>
|
|
<li><code>HiMech/NcParsers/Dependencys/Generic/ToolingMcConfig.cs</code>,
|
|
<code>HiMech/NcParsers/Dependencys/Generic/GenericBlockSkipConfig.cs</code>,
|
|
<code>HiMech/NcParsers/Dependencys/Generic/SubProgramFolderConfig.cs</code>,
|
|
<code>HiMech/NcParsers/Dependencys/Generic/FallbackConfig.cs</code> — the plain runner-owned dependencies
|
|
behind the tool-change, block-skip, subprogram and fallback-clearance leaves, and the values each
|
|
one serializes with the runner.</li>
|
|
<li><code>HiMech/NcParsers/Dependencys/Fanuc/FanucGotoIterationDependency.cs</code> — a macro guard, the
|
|
runner-owned half of the Controller Parameters leaf.</li>
|
|
<li><code>HiMech/NcParsers/Dependencys/CncBrandDependency.cs</code> — the brand marker the first leaf edits.</li>
|
|
<li><code>HiNc/MachiningProcs/LocalProjectService.cs</code> — the facade setter every install and brand switch
|
|
assigns through: the hoist of pre-proxy baked tables, the drop of the ones no proxy claims, the
|
|
proxy re-binding and the chain-driven axis stamp.</li>
|
|
<li><code>HiGeom/Common/XmlUtils/XmlUtil.cs</code> — the file-reference helper that decides whether the runner is
|
|
written to its side file or inlined.</li>
|
|
</ul>
|
|
<h2 id="pages">Pages</h2>
|
|
<p>Ordered by the first node each page owns, as the plane lists them.</p>
|
|
<ul>
|
|
<li><a class="xref" href="brand-switch.html">Controller Brand</a> — The brand select and its staged apply,
|
|
and what a brand change carries, resets and destroys</li>
|
|
<li><a class="xref" href="per-axis-tables.html">Per-Axis Tables</a> — The four leaves whose rows follow the
|
|
machine chain: stroke limits, rapid rates, the G28 reference and the tool-change position</li>
|
|
<li><a class="xref" href="interface-parameters.html">Interface Parameters</a> — The domain-grouped parameter form and
|
|
the peck-clearance leaf beside it, including the fields whose storage half differs</li>
|
|
<li><a class="xref" href="m-code-declarations.html">M-Code Declarations</a> — What a declared machine M-code consumes, the
|
|
tool-change trigger mode, and the codes an undeclared M word still warns about</li>
|
|
<li><a class="xref" href="program-reading.html">Program Reading</a> — The two leaves that decide how a program
|
|
is read rather than how the machine moves: block-skip layers and the subprogram lookup folders</li>
|
|
<li><a class="xref" href="indexing-positions.html">Indexing Positions</a> — The coded-position tables and the
|
|
per-axis assignment that decides which axis reads which</li>
|
|
<li><a class="xref" href="native-parameters.html">Native Parameters</a> — The raw parameter form: brand
|
|
numbering, raw stored units, and the same table every other leaf on this plane edits</li>
|
|
</ul>
|
|
<h2 id="see-also">See Also</h2>
|
|
<ul>
|
|
<li><a class="xref" href="../index.html">Controller Branch</a> — the branch this plane is half of, its runner root and the program-data
|
|
plane beside it</li>
|
|
<li><a class="xref" href="../program-data/index.html">Program Data Plane</a> — that plane itself, whose leaves are project-owned throughout
|
|
where this one's ownership splits between the runner file and the project</li>
|
|
<li><a class="xref" href="../brand-matrix.html">Brand Matrix</a> — which brand satisfies each gate named above, and what each
|
|
flag actually probes</li>
|
|
<li><a class="xref" href="../editing-contract.html">Editing Contract</a> — the commit, rollback and rendering rules every leaf on
|
|
this plane inherits, and the panels that depart from them</li>
|
|
<li><a class="xref" href="brand-switch.html">Controller Brand</a> — the control that replaces the runner, and therefore
|
|
everything in the runner-owned column here</li>
|
|
<li><a class="xref" href="per-axis-tables.html">Per-Axis Tables</a> — the per-axis leaves whose rows come from the machine chain
|
|
and whose values are stored on the project</li>
|
|
<li><a class="xref" href="interface-parameters.html">Interface Parameters</a> — the interface parameter form and the peck-clearance leaf, the
|
|
two entries that straddle the storage boundary</li>
|
|
<li><a class="xref" href="m-code-declarations.html">M-Code Declarations</a> — the declaration map on the same table the per-axis leaves edit</li>
|
|
<li><a class="xref" href="program-reading.html">Program Reading</a> — the block-skip and subprogram leaves, the two settings
|
|
that change how a program is read rather than how the machine moves</li>
|
|
<li><a class="xref" href="indexing-positions.html">Indexing Position Tables</a> — the leaf that grows only where the brand table is the
|
|
Siemens machine-data table</li>
|
|
<li><a class="xref" href="native-parameters.html">Native Parameters</a> — the raw form of the table behind most of this plane</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>
|