This commit is contained in:
2026-09-09 17:35:23 +08:00
parent 2a98ae7556
commit 161af68fe3
1271 changed files with 58251 additions and 98639 deletions
@@ -2,9 +2,9 @@
<html>
<head>
<meta charset="utf-8">
<title>Component Assembly and Anchors | HiAPI-C# 2025 </title>
<title>Anchor | HiAPI-C# 2025 </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Component Assembly and Anchors | HiAPI-C# 2025 ">
<meta name="title" content="Anchor | HiAPI-C# 2025 ">
<link rel="icon" href="../../img/HiAPI.favicon.ico">
@@ -85,29 +85,125 @@
</div>
<article data-uid="">
<h1 id="component-assembly-and-anchors">Component Assembly and Anchors</h1>
<h1 id="anchor">Anchor</h1>
<p><strong>Anchors</strong> are used for assembly purposes. When anchors between geometries coincide, assembly is completed.</p>
<p>Strictly speaking, an <strong>Anchor</strong> is not a point, but a coordinate system. For two coordinate systems to be equal, their origins must coincide and their rotation directions must be the same.</p>
<div class="NOTE">
<h5>Note</h5>
<p><strong>Anchor Assembly Example</strong></p>
<p>As shown in the figure below, there are two components, each with two anchors, {<code>AnchorA</code>,<code>AnchorB</code>} and {<code>AnchorC</code>,<code>AnchorD</code>} respectively.
The two components are assembled by making <code>AnchorB</code> and <code>AnchorC</code> coincide.</p>
<p><img src="anchor-img/Anchor%20for%20contact.png" alt="anc-contact"></p>
</div>
<h2 id="worktable-anchor-and-workpiece-anchor">Worktable Anchor and Workpiece Anchor</h2>
<p>Both workpiece and fixture have a workpiece anchor (<code>WorkpieceBuckle</code>), and both machine tool and fixture have a worktable anchor (<code>TableBuckle</code>), used to assemble workpiece, fixture, and machine tool.</p>
<div class="NOTE">
<h5>Note</h5>
<p><strong>Workpiece Fixture Assembly Example</strong></p>
<p>Workpiece and fixture are assembled by making their workpiece anchors (<code>WorkpieceBuckle</code>) coincide.</p>
<p><img src="anchor-img/Anchor%20for%20contact%20workpiece%20and%20fixture.png" alt=""></p>
</div>
<p>If no fixture is set, the workpiece will be assembled with the machine tool through the workpiece anchor and the machine tool through the worktable anchor.</p>
<h2 id="spindle-anchor-and-tool-holder-anchor">Spindle Anchor and Tool Holder Anchor</h2>
<p>Both tool holder and machine tool have a spindle anchor (<code>SpindleBuckle</code>), and both tool holder and tool head have a tool holder anchor (<code>HolderBuckle</code>), used to assemble tool head, tool holder, and machine tool.</p>
<p>If no tool holder is set, the tool head will be assembled with the machine tool through the tool holder anchor and the machine tool through the spindle anchor.</p>
<p>Placing the workpiece, the fixture and the tool relative to the machine. Each of them carries named
anchors, and the setup task is to give each geometry the transform that puts its anchor where it
belongs — four transforms in all, on two branches of the Control Tree.</p>
<p>What an anchor is — a coordinate system rather than a point — and which named buckles hold the scene
together is <a class="xref" href="../../technique/mechanism/assembly-anchors.html">Assembly Anchors</a>. This page is where they are set.</p>
<h2 id="where-it-is">Where it is</h2>
<p>The General Setup page, at <code>/general-setup</code>. The transforms hang from the two branches that own the
geometry being placed, each under an <strong>Anchor</strong> group:</p>
<table>
<thead>
<tr>
<th>Branch</th>
<th>Node</th>
<th>What it places</th>
</tr>
</thead>
<tbody>
<tr>
<td>Fixture</td>
<td><strong>Geom To Table</strong><br><code>equipment/fixture/geom-to-table</code></td>
<td>The fixture geometry onto the machine's table buckle</td>
</tr>
<tr>
<td>Fixture</td>
<td><strong>Geom To Workpiece</strong><br><code>equipment/fixture/geom-to-workpiece</code></td>
<td>The workpiece buckle — the place the workpiece attaches — relative to the fixture geometry</td>
</tr>
<tr>
<td>Workpiece</td>
<td><strong>Geom To Fixture</strong><br><code>equipment/workpiece/anchor/geom-to-fixture</code></td>
<td>The workpiece geometry onto that workpiece buckle</td>
</tr>
<tr>
<td>Workpiece</td>
<td><strong>Geom To Program Zero</strong><br><code>equipment/workpiece/anchor/geom-to-program-zero</code></td>
<td>Program zero, the NC origin, relative to the workpiece geometry</td>
</tr>
</tbody>
</table>
<p>The tool is not placed here. It arrives on the spindle through the tool house, and how far it stands
out of the holder is part of the tool itself — see <a href="cutter.html">Cutter</a>.</p>
<h2 id="the-order-to-work-in">The order to work in</h2>
<ol>
<li><strong>Attach a machine tool first.</strong> The table buckle the fixture is placed against belongs to the
machine chain, so there is nothing to place against until one is loaded —
<a href="machine-tool.html">Machine Tool</a>.</li>
<li><strong>Place the fixture on the table</strong> with Geom To Table.</li>
<li><strong>Place the workpiece on the fixture</strong> — Geom To Workpiece on the fixture side, then Geom To
Fixture on the workpiece side. A project carrying no fixture skips both: the workpiece is then
assembled onto the machine's table buckle directly.</li>
<li><strong>Set program zero last</strong>, once the workpiece is where it belongs. Which direction to align it,
and what to align it against, are <a href="program-zero-alignment.html">Program Zero Alignment</a>.</li>
</ol>
<h2 id="the-numbers-are-on-the-child-node">The numbers are on the child node</h2>
<p>Each of the four nodes is a <strong>kind picker and nothing else</strong>. Its panel offers one field,
<strong>Transformer type</strong>, and the editor holding the actual numbers is the <strong>child</strong> node underneath it —
which is why a node that looks empty has an expand arrow beside it.</p>
<p><strong>Geom To Program Zero</strong> selected on a demo project, at
<code>/general-setup?tree=equipment/workpiece/anchor/geom-to-program-zero</code>. The panel under the tree
carries only <strong>Transformer type</strong>, reading <em>Static Translation</em>; the node's own child, one level
deeper in the tree, is where that translation's values are typed.</p>
<p><img src="anchor-img/geom-to-program-zero.en.png" alt="The Workpiece branch of the Control Tree fully expanded, showing Raw Geometry, Target Geometry, an Anchor group holding Geom To Fixture and Geom To Program Zero, Mesh, and a Material group; Geom To Program Zero is selected and its panel below the tree shows a single Transformer type field reading Static Translation"></p>
<p>Seven kinds are offered on all four nodes:</p>
<table>
<thead>
<tr>
<th>Kind</th>
<th>Use it for</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Static Translation</strong></td>
<td>A fixed offset. The usual answer for all four.</td>
</tr>
<tr>
<td><strong>Static Rotation</strong></td>
<td>A fixed turn — stock clamped at an angle, a fixture mounted rotated.</td>
</tr>
<tr>
<td><strong>Static Freeform</strong></td>
<td>A fixed transform given as a matrix.</td>
</tr>
<tr>
<td><strong>General Transform</strong></td>
<td>Several transforms composed into one.</td>
</tr>
<tr>
<td><strong>Dynamic Translation</strong> / <strong>Dynamic Rotation</strong></td>
<td>A value that moves at run time. These are what a machine's own axes carry; a setup placement is not one of them.</td>
</tr>
<tr>
<td><strong>No Transform</strong></td>
<td>No offset at all — the two things coincide.</td>
</tr>
</tbody>
</table>
<p>Changing the kind replaces the editor beneath it, so a value typed under one kind does not carry
over to another.</p>
<h2 id="checking-the-result">Checking the result</h2>
<p>The <strong>Scene</strong> dropdown above the canvas has an <strong>Anchors</strong> group that draws what has just been
placed: <strong>Fixture Geometry Anchor</strong>, <strong>Workpiece Buckle</strong>, <strong>Table Buckle</strong>, <strong>Workpiece Geometry
Anchor</strong> and <strong>Program-Zero Anchor</strong>. Turning on the two ends of a transform you have just set is the
quickest way to see whether it landed where you meant — a workpiece sitting a plate's thickness
below the fixture is obvious as soon as both buckles are drawn.</p>
<p>The same dropdown's <strong>Solid</strong> group has a <strong>Machine</strong> checkbox, cleared to begin with, which brings
the machine chain into the same scene so the assembly can be checked against the table it is
supposed to be sitting on.</p>
<h2 id="see-also">See Also</h2>
<ul>
<li><a class="xref" href="../../technique/mechanism/assembly-anchors.html">Assembly Anchors</a> — what an anchor is, and the named buckles the scene is assembled at</li>
<li><a href="program-zero-alignment.html">Program Zero Alignment</a> — aligning the program origin once the workpiece is placed</li>
<li><a href="machine-tool.html">Machine Tool</a> — the chain that carries the table and spindle anchors</li>
<li><a href="fixture.html">Fixture</a> — the branch carrying the two fixture transforms named above</li>
<li><a href="workpiece.html">Workpiece</a> — the branch carrying the two workpiece transforms named above, and the rest of the workpiece setup</li>
<li><a href="index.html">Setup</a> — the rest of the pre-simulation configuration</li>
</ul>
</article>