This repository has been archived on 2026-10-11. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
HiNC-2025-win-desktop-Deploy/App/wwwroot/HiAPI-docsite/manual/utilities/legacy-controller.html
T
2026-09-09 17:35:23 +08:00

209 lines
12 KiB
HTML

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Legacy Controller | HiAPI-C# 2025 </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Legacy Controller | 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 &quot;{query}&quot;">
<meta name="loc:searchNoResults" content="No results for &quot;{query}&quot;">
<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="">
<h1 id="legacy-controller">Legacy Controller</h1>
<p>The Legacy Controller screen owns three settings that have no editor anywhere else in the
application. It edits a different controller model from the General Setup page's Controller branch,
and neither screen sees the other's edits: those three are edited here, and everything else on the
branch.</p>
<h2 id="where-it-is">Where it is</h2>
<p>Its own page, reached from the menu bar's <strong>Page → Legacy-Controller</strong>, at <code>/controller/:tab?</code>. It is
not a Control-Tree branch; nothing in a tree reaches it. The left pane is a strip of seven tabs, each
addressable as the last URL segment: <strong>Coordinate Table</strong> (<code>coordinate-table</code>, which a bare
<code>/controller</code> opens), <strong>Datum Preset</strong>, <strong>Datum Shift</strong>, <strong>Offset Table</strong>, <strong>Machine</strong>, <strong>Brand</strong> and
<strong>Config</strong>; the two datum tab buttons are shown only while the brand reads Heidenhain. The right pane
is a 3D view, described under <a href="#what-the-right-pane-draws">What the right pane draws</a> below.</p>
<h2 id="which-face-to-edit">Which face to edit</h2>
<p>Controller setup for a project belongs on the General Setup page's Controller branch —
<a href="../setup/controller.html">Controller</a>. The brand, the stroke limits, the rapid feedrate, the
tool-change time, the tool offset table, the work coordinates and the Heidenhain datum tables all
have an editor there as well, and apart from one shared project flag — <strong>Set ideal offset dependent
on tool house</strong>, which this screen's Offset Table tab and the branch's Tool Offsets leaf both write —
the two screens edit different models. A value changed on one is not the value the other shows.</p>
<h2 id="align-program-zero-onto-a-work-offset">Align program zero onto a work offset</h2>
<p><strong>Align P0</strong> is on the <strong>Coordinate Table</strong> tab and nowhere else. The branch's Work Coordinates leaf
carries <strong>P0</strong> and <strong>M0</strong> on every row too; the alignment is this screen's. Which direction an
alignment runs — the work offset moved onto program zero, or program zero moved onto the offset as
this button does — and where program zero sits on the workpiece in the first place, are both
<a href="../setup/program-zero-alignment.html">Program Zero Alignment</a>.</p>
<ol>
<li>Find the row holding the work offset program zero should sit at. Ticking the table's selection
column is not part of this — that only moves the viewer's coordinate marker onto the row, and
that marker is not drawn until <strong>Show on Display</strong> in the tab's toolbar is on. It ships off, so
on an untouched project the selection column appears to do nothing.</li>
<li>Press <strong>Align P0</strong> in that row. It does not write the coordinate — it moves the workpiece and
fixture together so that program zero lands on the offset the row already holds. The toast names
the translation it assigned. It needs a workpiece, a fixture and a machine tool on the project —
<a href="../setup/index.html">Setup</a> — and without them nothing is written and the button says so.</li>
<li><strong>Undo Align</strong> and <strong>Redo Align</strong>, in the tab's toolbar, step back and forward through the
alignments this screen has recorded.</li>
</ol>
<p>That history belongs to the screen rather than to the project: it holds 32 steps, survives a walk to
another page and back, and is cleared when the project changes or the browser reloads the page. Each
step restores the whole transform from a snapshot taken earlier, so if the fixture's placement was
changed on another screen in between, an undo replaces that change rather than merging with it.</p>
<p><img src="legacy-controller-img/coordinate-table.en.png" alt="The Legacy Controller on its Coordinate Table tab: five tab buttons, the ISO Coordinate Table with its Undo Align, Redo Align and Show on Display toolbar, and fifteen work-offset rows each carrying P0, M0 and Align P0 in an Actions column"></p>
<p><em>At <code>/controller/coordinate-table</code>. <strong>Align P0 is a row action</strong> — every offset from G54 to G59.9
has its own, and there is no single button for the table. The tab strip shows five buttons here
rather than seven because this project's brand is not Heidenhain; the two datum tabs appear only
under that brand, though their addresses stay valid under any of them.</em></p>
<h2 id="the-two-switches-nothing-else-carries">The two switches nothing else carries</h2>
<table>
<thead>
<tr>
<th>Tab</th>
<th>Setting</th>
<th>What it is for</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Config</strong></td>
<td><strong>Enable Shortest Rotary Path</strong></td>
<td>Takes each rotary axis of a block to the equivalent angle nearest the previous block's, so an axis turns the short way round instead of unwinding a whole turn. It arrives on. Under Heidenhain the same normalisation runs whatever the box reads, so clearing it changes nothing there.</td>
</tr>
<tr>
<td><strong>Brand</strong></td>
<td><strong>Master-axis character</strong></td>
<td>Which rotary axis — <code>A</code>, <code>B</code> or <code>C</code> — the Heidenhain <code>PLANE … SEQ</code> orientations are resolved against; what that dialect's words do is <a href="../../technique/nc-dialects/index.html">NC Dialects</a>. The card holding it is present only while the brand reads Heidenhain.</td>
</tr>
</tbody>
</table>
<p>Both commit on the click. If the master-axis write is refused a toast says so, but the select goes on
showing the character that was picked, so a reload is what shows which one actually took — and a
reloaded <code>A</code> settles nothing, because the Brand tab also falls back to <code>A</code>, silently, when the read
itself fails.</p>
<p><img src="legacy-controller-img/config-tab.en.png" alt="The Config tab: a single Options card holding the Enable Shortest Rotary Path switch, turned on, above an information banner restating what it does"></p>
<p><em>At <code>/controller/config</code>. The whole tab is that one switch. The master-axis select is not beside it
— it is on the <strong>Brand</strong> tab and, as the table above says, only while the brand reads Heidenhain,
which is why it is absent here.</em></p>
<h2 id="what-the-right-pane-draws">What the right pane draws</h2>
<p>The 3D view beside the tabs draws the same scene as the <a href="../run/index.html">Execution page</a>, and
its <strong>Scene</strong> dropdown writes the same switches — so what is ticked here is ticked there. It offers
three groups: the machine tool, the cutter, the workpiece and the fixture; the program-zero and
work-offset markers, the Heidenhain one appearing only under that brand; and the dimension bar and
colour scale bar. Of those, only the <strong>workpiece, the fixture and the dimension bar arrive on</strong>. The
machine tool and the cutter arrive off, and so do the coordinate markers — the work-offset one is
exactly what <strong>Show on Display</strong> turns on for this screen's table. A freshly loaded project
therefore opens this pane with little or nothing in it, and that is the shipped state rather than a
failure to draw.</p>
<h2 id="see-also">See Also</h2>
<ul>
<li><a href="index.html">Utilities</a> — the other screens the Page menu lists beside this one</li>
<li><a href="mech-builder.html">Mechanism Builder</a> — another of the supporting screens the Page menu lists, for assembling a machine chain</li>
<li><a href="../setup/controller.html">Controller</a> — the branch that owns controller setup for a project, and every setting this screen does not exclusively hold</li>
<li><a href="../setup/program-zero-alignment.html">Program Zero Alignment</a> — which direction an alignment runs, where program zero sits on the workpiece, and why this screen's table is not the one a run reads</li>
<li><a class="xref" href="../../anatomy/legacy-controller.html">Legacy Controller Page</a> — the component behind this page: its seven tabs, the model it edits and the one it does not</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>