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/basics/finding-your-way.html
T
2026-09-16 00:00:49 +08:00

314 lines
16 KiB
HTML

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Finding Your Way | HiAPI-C# 2025 </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Finding Your Way | 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="finding-your-way">Finding Your Way</h1>
<p>The application is a handful of screens, and most of what a job configures lives inside a tree on
two of them. The <strong>Page</strong> menu reaches five of those screens, and it is not all of them. Every node
of a tree has an address of its own, so a place in the application can be linked to rather than
described.</p>
<h2 id="the-screens">The screens</h2>
<p>The <strong>Page</strong> dropdown on the menu bar carries five entries in two groups. The first group is the
job, in the order a job uses it:</p>
<ul>
<li><strong>Tool House</strong> — the tools, one editor per tool</li>
<li><strong>General Setup</strong> — the equipment: the machine tool, the spindle capability, the ambient and
coolant conditions, the fixture, the workpiece and the controller</li>
<li><strong>Execution</strong> — the run: the mission that is executed, the program as it was played, and what the
run reports</li>
</ul>
<p>Below a separator, the two utilities:</p>
<ul>
<li><strong>File Explorer</strong> — browsing the files under the roots the service exposes</li>
<li><strong>Mechanism Builder</strong> — authoring a kinematic chain</li>
</ul>
<p>No entry is ever greyed out. All five are selectable with no project open; what they lead to is what
changes.</p>
<p>Three screens have no entry in this menu:</p>
<ul>
<li><strong>Machine Tool</strong>, at <code>/machine-tool</code>, reached by address only. It shows the machine chain beside a
folder button — whose tooltip reads <strong>Browse</strong> once a project is open, and <strong>Load a project first</strong>
before that — and a GUI / XML view switch, so it is more than a look at the chain, and it needs a
project open.</li>
<li><strong>Log Viewer</strong>, reached from the <strong>Show Log</strong> button near the right-hand end of the menu bar. Its
address is <code>/preference/log</code>.</li>
<li>The sign-in page, which the service raises on its own when it wants one.</li>
</ul>
<h2 id="selecting-inside-a-tree">Selecting inside a tree</h2>
<p>General Setup and Execution each carry a Control Tree in their left dock, under a header reading
<strong>Control Tree</strong>, with the selected node's editor in the row beneath it. That editor row names the
path of the selection — <em>General Setup / Workpiece / Anchor / Geom To Fixture</em> — which is also how
these pages name a place in prose; the header shows as much of it as the dock is wide, so a deep
path arrives truncated.</p>
<p>General Setup's tree has four roots — <strong>Mechanism</strong> (holding <strong>Machine Tool</strong>, <strong>Fixture</strong> and
<strong>Workpiece</strong>), <strong>Spindle Capability</strong>, <strong>Environment</strong> (holding <strong>Ambient Temperature</strong> and
<strong>Coolant</strong>) and <strong>Controller</strong> — in that order. With a project open, a <strong>CSV Controller</strong> and a <strong>CL Controller</strong> node follow, each behind
its own Preference checkbox — as siblings of Controller at the same level, not as children of it.
With no project open neither node is built, whatever the preferences say. Execution's tree has one
root, <strong>Execution</strong>, holding <strong>Mission</strong> above <strong>Program</strong>.</p>
<p>General Setup's middle column belongs to the Spindle Capability branch: its items put their power
and torque charts there. Every other selection leaves the column reading <em>The selected item has no
expanded content.</em> That is the column's resting state rather than a fault.</p>
<p>General Setup at <code>/general-setup?tree=equipment/workpiece/anchor/geom-to-fixture</code>, with the
Workpiece branch's <strong>Anchor</strong> group expanded and <strong>Geom To Fixture</strong> selected. Its editor is the row
below the tree, the middle column carries the empty-content message, and the canvas on the right
draws the workpiece with its anchor labels.</p>
<p><img src="finding-your-way-img/general-setup-tree.en.png" alt="The General Setup Control Tree with Geom To Fixture selected under Workpiece and Anchor, the middle column reading that the selected item has no expanded content, and the workpiece on the canvas"></p>
<h2 id="linking-to-a-node">Linking to a node</h2>
<p>The selection rides in the address as a <code>?tree=</code> value, so the address bar is already the link:
copying it copies the node, not just the page.</p>
<ol>
<li>To take a link from the tree instead, right-click a node's label. Every label is a real link to
that node's address, so the browser's own copy-link and open-in-new-tab entries both apply to
it.</li>
<li>Ctrl-click or Cmd-click a label to open that node in a new tab; Shift-click and middle-click open
it wherever the browser opens any other link. The current tab's selection stays where it is.</li>
<li>A plain left click selects the node in place, without navigating.</li>
<li>Paste a <code>?tree=</code> value belonging to another page's tree and it redirects to the page that owns
it — the other tree page, or Tool House — so a link does not have to name the right screen to
reach the right node.</li>
</ol>
<p>Tool House has no <code>?tree=</code> at all — its address names the selection down to the sub-tab, as
<code>/tool-house/&lt;tool&gt;/&lt;tab&gt;/&lt;sub-tab&gt;</code>, so <code>/tool-house/1/cutter/material</code> is a link to one tool's
Material sub-tab.</p>
<p>Arriving at a tree page with no <code>?tree=</code> still lands on a selected node — the last selection this
browser made there, or the tree's root — and the address takes that node's <code>?tree=</code> value on as soon
as the tree is built, so the address bar is a whole link from then on.</p>
<div class="IMPORTANT">
<h5>Important</h5>
<p>An address for a node its Preference checkbox is currently hiding — a <strong>CSV Controller</strong> or <strong>CL
Controller</strong> node — is honoured only when the tree is built while that address is the current
one, and it reveals nothing without a project open. In practice that means the tree's first build
on that address: pasting the link into a new tab, reloading on it, or opening General Setup for the
first time since the page or the project was loaded. Jumping to it from a screen that has already
shown General Setup for the current project does not rebuild that tree, so the address is dropped
in silence: the address bar keeps the value, the node does not appear, and the selection stays
where it was.</p>
</div>
<p>The same page at <code>/general-setup?tree=equipment/controller-csv</code>, loaded fresh on that address with
the CSV Controller preference still off — the address alone is what puts the node in the tree.
<strong>CSV Controller</strong> sits below <strong>Controller</strong> at the same indent — a sibling of it — and its editor
describes the fields as column tags matched against the CSV header line: <strong>Machine coordinate
prefix</strong> <code>MC.</code>, <strong>Cutter location prefix</strong> <code>CL.</code> and <strong>Tool id column</strong> <code>ToolId</code>.</p>
<p><img src="finding-your-way-img/controller-csv-revealed.en.png" alt="The General Setup Control Tree with a CSV Controller node at the same indent as Controller, a sibling rather than a child of it, and the CSV column-tag editor below the tree"></p>
<h2 id="the-addresses">The addresses</h2>
<p>Eight addresses render a screen of their own. The bracketed segments are optional, so the bare
address resolves too and the screen fills them in from its own state; File Explorer's trailing path
carries as many segments as the browsed folder is deep.</p>
<table>
<thead>
<tr>
<th>Address</th>
<th>Screen</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>/execution</code></td>
<td>Execution</td>
</tr>
<tr>
<td><code>/general-setup</code></td>
<td>General Setup</td>
</tr>
<tr>
<td><code>/tool-house/&lt;tool&gt;/&lt;tab&gt;/&lt;sub-tab&gt;</code></td>
<td>Tool House</td>
</tr>
<tr>
<td><code>/machine-tool</code></td>
<td>Machine Tool</td>
</tr>
<tr>
<td><code>/util/file-explorer/&lt;root&gt;/&lt;path&gt;</code></td>
<td>File Explorer</td>
</tr>
<tr>
<td><code>/util/mech-builder</code></td>
<td>Mechanism Builder</td>
</tr>
<tr>
<td><code>/preference/log</code></td>
<td>Log Viewer</td>
</tr>
<tr>
<td><code>/login</code></td>
<td>the sign-in page</td>
</tr>
</tbody>
</table>
<p><code>/</code> lands on Execution. Seven further addresses render nothing of their own and redirect into a tree
page's node instead:</p>
<table>
<thead>
<tr>
<th>Address</th>
<th>Lands on</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>/controller</code>, and anything below it</td>
<td>General Setup, the Controller branch — the trailing path, the retired Legacy-Controller page's tab names included, is discarded</td>
</tr>
<tr>
<td><code>/spindle-capability/&lt;tab&gt;</code></td>
<td>General Setup, the Spindle Capability branch — on that tab's item when the segment names one, on the branch itself otherwise</td>
</tr>
<tr>
<td><code>/equipment/spindle</code></td>
<td>General Setup, the Spindle Capability branch</td>
</tr>
<tr>
<td><code>/fixture</code>, and anything below it</td>
<td>General Setup, the Fixture branch</td>
</tr>
<tr>
<td><code>/workpiece</code>, and anything below it</td>
<td>General Setup, the Workpiece branch</td>
</tr>
<tr>
<td><code>/equipment/background-coolant</code></td>
<td>General Setup, the Environment root (Ambient Temperature / Coolant)</td>
</tr>
<tr>
<td><code>/mission</code></td>
<td>Execution, the Mission branch</td>
</tr>
</tbody>
</table>
<p>An address matching none of these lands on the application's own <strong>404 Not Found</strong> page, which
prints the address it could not match and offers <strong>Back to Execution</strong>. A <code>?tree=</code> value naming no
node of the built tree is ignored instead: the page opens with nothing selected, and the editor row
reads <em>Select an item in the Control Tree to edit it here.</em></p>
<div class="WARNING">
<h5>Warning</h5>
<p>Tree ids are not promised to survive a version change. An old link keeps resolving because the
application migrates known older ids, but nothing should be built on an id staying the same.</p>
</div>
<h2 id="if-the-tree-is-not-there">If the tree is not there</h2>
<p>The left dock is one of the column toggles at the right-hand end of the menu bar, left of the page
title — three of them on General Setup, one per column — and its title is <em>Toggle the Control Tree /
editor dock</em>. Switching it off removes the dock whole, tree and editor together, and the browser
remembers the choice, so the dock is still gone after a reload. The same button switches it back
on. General Setup's middle column has a toggle of its own beside it, which is the other way that
page can arrive looking short of a column.</p>
<h2 id="see-also">See Also</h2>
<ul>
<li><a href="index.html">Basics</a> — the rest of what is true on every screen</li>
<li><a href="the-app-window.html">The Application Window</a> — the menu bar the Page dropdown sits on, and what keeps a visited screen alive between visits</li>
<li><a href="signing-in.html">Signing In</a> — the screen that has no menu entry because the service raises it</li>
<li><a href="projects.html">Projects</a> — what a project change does to a tree, and to the node an address selects</li>
<li><a href="preferences.html">Preferences</a> — the two checkboxes behind the controller nodes, and the setting that changes what a tree carries</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>