Archived
deploy.
This commit is contained in:
@@ -99,7 +99,7 @@
|
||||
Equipment --> Job --> Option --> Run --> View
|
||||
</code></pre>
|
||||
<h2 id="starting-from-client-deliverables">Starting from Client Deliverables</h2>
|
||||
<p>A real project usually starts from a bundle a customer hands over: NC programs, part/blank CAD, a tool sheet, sometimes a machine model and a few words about how the part is clamped and zeroed. Before building anything, reconcile that bundle against the <a href="../manual/setup/project-data-checklist.html">Project Data Checklist</a>, then map each item to the steps below:</p>
|
||||
<p>A real project usually starts from a bundle a customer hands over: NC programs, part/blank CAD, a tool sheet, sometimes a machine model and a few words about how the part is clamped and zeroed. Before building anything, reconcile that bundle against the <a class="xref" href="project-data-checklist.html">Project Data Checklist</a>, then map each item to the steps below:</p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
@@ -112,12 +112,12 @@
|
||||
<tr>
|
||||
<td>NC programs (<code>.nc</code>, <code>.anc</code>, …)</td>
|
||||
<td>NC files + controller brand</td>
|
||||
<td><a href="../manual/setup/controller-iso.html">General NC Code Support</a></td>
|
||||
<td><a class="xref" href="../technique/nc-dialects/controller-iso.html">General NC Code Support</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Tool sheet (diameters, corner radius, flute count, stick-out)</td>
|
||||
<td>Tool House</td>
|
||||
<td><a href="../manual/setup/cutter.html">Cutter</a>, <a href="../manual/setup/apt.html">APT</a></td>
|
||||
<td><a class="xref" href="../technique/milling-physics/cutter-geometry.html">Cutter Geometry</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Part CAD + blank/stock CAD</td>
|
||||
@@ -137,7 +137,7 @@
|
||||
<tr>
|
||||
<td>Material name</td>
|
||||
<td>Workpiece material + cutting parameters</td>
|
||||
<td><a href="../manual/setup/project-data-checklist.html">Project Data Checklist</a></td>
|
||||
<td><a class="xref" href="project-data-checklist.html">Project Data Checklist</a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
@@ -154,7 +154,7 @@
|
||||
<h3 id="machine-tool">Machine Tool</h3>
|
||||
<p>The machine tool (<code>.mt</code> file) provides the kinematic model and STL bodies. Once selected it rarely changes between simulations.</p>
|
||||
<h3 id="controller">Controller</h3>
|
||||
<p>Select the controller brand and type (e.g., Fanuc, Heidenhain, Siemens). This determines how NC code is interpreted. See <a href="../manual/setup/controller-heidenhain.html">Heidenhain Support</a> and <a href="../manual/setup/controller-iso.html">General NC Code Support</a> for details.</p>
|
||||
<p>Select the controller brand and type (e.g., Fanuc, Heidenhain, Siemens). This determines how NC code is interpreted. See <a class="xref" href="../technique/nc-dialects/controller-heidenhain.html">Heidenhain Support</a> and <a class="xref" href="../technique/nc-dialects/controller-iso.html">General NC Code Support</a> for details.</p>
|
||||
<h3 id="gui-operation">GUI Operation</h3>
|
||||
<p>Open or create a project in the HiNC application and configure machine tool and controller through the corresponding panels before setting up the job.</p>
|
||||
<hr>
|
||||
@@ -162,7 +162,7 @@
|
||||
<p>With equipment fixed, configure the job-specific components that change between simulations.</p>
|
||||
<div class="TIP">
|
||||
<h5>Tip</h5>
|
||||
<p>For the full list of data to collect before building a project (and a customer-facing checklist), see <a href="../manual/setup/project-data-checklist.html">Project Data Checklist</a>.</p>
|
||||
<p>For the full list of data to collect before building a project (and a customer-facing checklist), see <a class="xref" href="project-data-checklist.html">Project Data Checklist</a>.</p>
|
||||
</div>
|
||||
<h3 id="job-components">Job Components</h3>
|
||||
<table>
|
||||
@@ -220,7 +220,7 @@ var fixture = Fixture;
|
||||
</div>
|
||||
<div class="NOTE">
|
||||
<h5>Note</h5>
|
||||
<p>Going <em>finer</em> is what costs the <strong>8x</strong> — and at the fine resolutions real NC machining needs, geometry removal is usually the bottleneck. Going <em>coarser</em> only saves time while geometry removal is the bottleneck. Once the mesh is coarse enough that geometry removal is already cheap (1–2 mm is already very coarse for NC), the fixed per-step costs dominate and raising <code>MachiningResolution_mm</code> further barely changes total time (this is why 1.0 mm and 2.0 mm can run at nearly the same speed). To speed up in that regime, reduce the step count via <a href="#33-machining-motion-resolution">Machining Motion Resolution</a>. See <a href="../manual/analysis/cpu-usage.html">CPU Usage During Simulation</a>.</p>
|
||||
<p>Going <em>finer</em> is what costs the <strong>8x</strong> — and at the fine resolutions real NC machining needs, geometry removal is usually the bottleneck. Going <em>coarser</em> only saves time while geometry removal is the bottleneck. Once the mesh is coarse enough that geometry removal is already cheap (1–2 mm is already very coarse for NC), the fixed per-step costs dominate and raising <code>MachiningResolution_mm</code> further barely changes total time (this is why 1.0 mm and 2.0 mm can run at nearly the same speed). To speed up in that regime, reduce the step count via <a href="#33-machining-motion-resolution">Machining Motion Resolution</a>. See <a class="xref" href="../technique/simulation-performance/cpu-usage.html">CPU Usage During Simulation</a>.</p>
|
||||
</div>
|
||||
<h3 id="32-display-cache">3.2 Display Cache</h3>
|
||||
<pre><code class="lang-csharp">DispCache_Mb = 260;
|
||||
@@ -261,7 +261,7 @@ var fixture = Fixture;
|
||||
</table>
|
||||
<div class="IMPORTANT">
|
||||
<h5>Important</h5>
|
||||
<p><strong>Total simulation time is governed by whichever is slower: geometry removal or the per-step fixed costs.</strong> Geometry-removal cost is set by <a href="#31-workpiece-entity-resolution">mesh resolution</a>; the per-step fixed costs (physics, thermal/wear, per-step bookkeeping) are set by the <strong>number of steps</strong> — the motion-resolution mode plus the spindle revolutions along the toolpath, independent of mesh resolution and of workpiece size. At the fine resolutions real NC machining needs, <strong>geometry removal is usually the bottleneck</strong> (finer = much slower). Only once the mesh is coarse enough that geometry removal is already cheap do the fixed per-step costs dominate — then raising <code>MachiningResolution_mm</code> further will <strong>not</strong> speed things up (this is why 1.0 mm and 2.0 mm can run at nearly the same speed); reduce the step count instead — e.g. <code>ScaledFeedPerCycle(2)</code> takes one step per 2 revolutions, halving the steps, at the cost of sparser force-curve sampling. See <a href="../manual/analysis/cpu-usage.html">CPU Usage During Simulation</a>.</p>
|
||||
<p><strong>Total simulation time is governed by whichever is slower: geometry removal or the per-step fixed costs.</strong> Geometry-removal cost is set by <a href="#31-workpiece-entity-resolution">mesh resolution</a>; the per-step fixed costs (physics, thermal/wear, per-step bookkeeping) are set by the <strong>number of steps</strong> — the motion-resolution mode plus the spindle revolutions along the toolpath, independent of mesh resolution and of workpiece size. At the fine resolutions real NC machining needs, <strong>geometry removal is usually the bottleneck</strong> (finer = much slower). Only once the mesh is coarse enough that geometry removal is already cheap do the fixed per-step costs dominate — then raising <code>MachiningResolution_mm</code> further will <strong>not</strong> speed things up (this is why 1.0 mm and 2.0 mm can run at nearly the same speed); reduce the step count instead — e.g. <code>ScaledFeedPerCycle(2)</code> takes one step per 2 revolutions, halving the steps, at the cost of sparser force-curve sampling. See <a class="xref" href="../technique/simulation-performance/cpu-usage.html">CPU Usage During Simulation</a>.</p>
|
||||
</div>
|
||||
<div class="WARNING">
|
||||
<h5>Warning</h5>
|
||||
@@ -304,7 +304,7 @@ PlayNc($"G01 X{x} Y20 F100", "Generated Command");
|
||||
</code></pre>
|
||||
<div class="NOTE">
|
||||
<h5>Note</h5>
|
||||
<p>Unlike the file players above, CL playback drives a <a class="xref" href="../api/HiMachining.Milling.ClMillingDevice.html">ClMillingDevice</a> chain — the cutter location is applied straight to the tool — <strong>not</strong> the machine-tool chain from <a href="#1-set-machine-tool-and-controller">§1</a>. Use it to verify the programmed path itself, independent of machine and post-processor. See <a href="../manual/runtime/cutter-location-playback.html">Cutter-Location (CL) Playback</a> for the supported record set, tool creation from <code>TLDATA</code>, and the chain requirement.</p>
|
||||
<p>Unlike the file players above, CL playback drives a <a class="xref" href="../api/HiMachining.Milling.ClMillingDevice.html">ClMillingDevice</a> chain — the cutter location is applied straight to the tool — <strong>not</strong> the machine-tool chain from <a href="#1-set-machine-tool-and-controller">§1</a>. Use it to verify the programmed path itself, independent of machine and post-processor. See <a class="xref" href="../technique/scripting/cutter-location-playback.html">Cutter-Location (CL) Playback</a> for the supported record set, tool creation from <code>TLDATA</code>, and the chain requirement.</p>
|
||||
</div>
|
||||
<h3 id="45-player-control">4.5 Player Control</h3>
|
||||
<table>
|
||||
@@ -405,13 +405,13 @@ AppendMessagesToFile("Output/messages.txt");
|
||||
</table>
|
||||
<h2 id="see-also">See Also</h2>
|
||||
<ul>
|
||||
<li><a href="../manual/setup/controller-heidenhain.html">Heidenhain Support</a> — controller configuration</li>
|
||||
<li><a href="../manual/setup/controller-iso.html">General NC Code Support</a> — ISO NC support</li>
|
||||
<li><a href="../manual/runtime/cutter-location-playback.html">Cutter-Location (CL) Playback</a> — replay a CAM cutter-location file with <code>PlayClFile</code></li>
|
||||
<li><a href="../manual/runtime/step.html">Step</a> — what a step is, accessing and outputting step data</li>
|
||||
<li><a href="../manual/runtime/step-fields.html">Step Field Reference</a> — step field reference</li>
|
||||
<li><a class="xref" href="../manual/runtime/script-command.html">Glossary: Script Commands</a> — script command basics</li>
|
||||
<li><a class="xref" href="../manual/runtime/session-shell.html">Glossary: SessionShell Quick-Reference</a> — SessionShell quick-reference</li>
|
||||
<li><a class="xref" href="../technique/nc-dialects/controller-heidenhain.html">Heidenhain Support</a> — controller configuration</li>
|
||||
<li><a class="xref" href="../technique/nc-dialects/controller-iso.html">General NC Code Support</a> — ISO NC support</li>
|
||||
<li><a class="xref" href="../technique/scripting/cutter-location-playback.html">Cutter-Location (CL) Playback</a> — replay a CAM cutter-location file with <code>PlayClFile</code></li>
|
||||
<li><a class="xref" href="../technique/scripting/step.html">Step</a> — what a step is, accessing and outputting step data</li>
|
||||
<li><a class="xref" href="../technique/scripting/step-fields.html">Step Field Reference</a> — step field reference</li>
|
||||
<li><a class="xref" href="../technique/scripting/script-command.html">Script Commands</a> — script command basics</li>
|
||||
<li><a class="xref" href="../technique/scripting/session-shell.html">SessionShell</a> — SessionShell quick-reference</li>
|
||||
</ul>
|
||||
|
||||
</article>
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 327 KiB |
@@ -99,12 +99,13 @@
|
||||
<li>Flute4</li>
|
||||
<li>Helix35</li>
|
||||
</ul>
|
||||
<p>There are no specific restrictions on the number of flutes, helix angle, or rake angle, but these must be accurately recorded along with the tool brand and model.</p>
|
||||
<p>Flute count and rake angle are unrestricted, and all three of flute count, helix angle and rake angle must be accurately recorded along with the tool brand and model.</p>
|
||||
<p>The helix angle is the one that is not free. A cut set whose cutters all share one helix angle leaves a combination of the shear coefficients unobservable in the bending-moment channel, whatever the data quality, so a training that reads Mx/My needs at least two clearly different helix angles among its cutters — see <a href="../technique/measurement/training-cut-set-design.html">Designing a Training Cut Set</a>. Two stock cutters ground at different helix angles are enough; nothing custom is required.</p>
|
||||
<p>A 10 mm diameter is used to avoid tool breakage when cutting difficult materials. The 10 mm standard was established based on Inconel 718 as the safety baseline for this experiment.</p>
|
||||
<h2 id="workpiece--toolpath">Workpiece / Toolpath</h2>
|
||||
<p>Workpiece dimensions: dynamometer length × width × convenient clamping height (50 mm)</p>
|
||||
<p><img src="dynamometer-experiment-sop-img/fixWorkpiece.jpg" alt="fix-workpiece.jpg"></p>
|
||||
<p><img src="dynamometer-experiment-sop-img/StraightLineTraining-path.png" alt="training-path"></p>
|
||||
<p><img src="dynamometer-experiment-sop-img/StraightLineTraining-path.png" alt="The straight-line training path the experiment cuts"></p>
|
||||
<p>Cutting depth is 0.5 mm.</p>
|
||||
<p>Toolpath categories are identified by keywords: low, high, through.</p>
|
||||
<p>“low” denotes low spindle speed, “high” denotes high spindle speed, and “through” denotes a through-pass.
|
||||
|
||||
@@ -106,7 +106,7 @@
|
||||
<h2 id="1-prerequisites">1. Prerequisites</h2>
|
||||
<div class="TIP">
|
||||
<h5>Tip</h5>
|
||||
<p>For the complete data-collection checklist behind a project, see <a href="../manual/setup/project-data-checklist.html">Project Data Checklist</a>.</p>
|
||||
<p>For the complete data-collection checklist behind a project, see <a class="xref" href="project-data-checklist.html">Project Data Checklist</a>.</p>
|
||||
</div>
|
||||
<p>Before training you need:</p>
|
||||
<table>
|
||||
@@ -140,7 +140,8 @@
|
||||
<p>Before training, the workpiece + fixture must be correctly placed relative to the work offset, otherwise the simulated engagement (and therefore the trained coefficients) is wrong. See <a href="../manual/setup/program-zero-alignment.html">Program Zero Alignment</a> — particularly the high-fidelity caution that the G54 used must reflect the <strong>real</strong> machine offset, and the rough-resolution check for catching a wrong setup at the opening plunge.</p>
|
||||
</div>
|
||||
<h3 id="sensor-data-file-format">Sensor Data File Format</h3>
|
||||
<p>The CSV must contain a header row with <code>ActualTime</code> and at least one force/torque channel:</p>
|
||||
<p>The CSV must contain a header row with a time column and at least one force/torque channel. Each
|
||||
channel accepts more than one spelling, so a file written for an older release still reads:</p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
@@ -150,16 +151,20 @@
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Time</td>
|
||||
<td><code>ActualTime</code>, or <code>ActualDateTime</code> for the absolute instant. <code>TimeTag</code> and <code>Time</code> are read for compatibility with older files.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Dynamometer</td>
|
||||
<td><code>Fx</code> (or <code>Workpiece.Fx</code>), <code>Fy</code>, <code>Fz</code></td>
|
||||
<td><code>Fx</code> or <code>Workpiece.Fx</code> (same for <code>y</code>, <code>z</code>)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Smart tool holder</td>
|
||||
<td><code>Mx</code> (or <code>Holder.Mx</code>), <code>My</code>, <code>Mz</code></td>
|
||||
<td><code>Mx</code> or <code>Holder.Mx</code> (same for <code>y</code>, <code>z</code>). <code>Spindle.Mx</code> is an obsolete spelling, read but not written.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Accelerometer (optional)</td>
|
||||
<td><code>Ax</code>, <code>Ay</code>, <code>Az</code></td>
|
||||
<td><code>Ax</code>, <code>Ay</code>, <code>Az</code> — one spelling only</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
@@ -400,7 +405,7 @@ WriteShotFiles("Output/[NcName].shot.csv", 0.1); // 2nd arg = sampling
|
||||
<h5>Note</h5>
|
||||
<p>A fine period makes large files — the case above went from 13 MB at 1 ms to 128 MB at 0.1 ms for a 6-cut program. Budget disk accordingly, and do not commit such files to a repository.</p>
|
||||
</div>
|
||||
<p>For coordinate system explanations, see <a href="../manual/analysis/milling-physics-coordinates.html">Milling Physics Coordinates</a>.</p>
|
||||
<p>For coordinate system explanations, see <a class="xref" href="../technique/milling-physics/milling-physics-coordinates.html">Milling Physics Coordinates</a>.</p>
|
||||
<hr>
|
||||
<h2 id="6-train-milling-parameters">6. Train Milling Parameters</h2>
|
||||
<h3 id="trainmillingpara-new-training">TrainMillingPara (New Training)</h3>
|
||||
@@ -437,11 +442,18 @@ WriteShotFiles("Output/[NcName].shot.csv", 0.1); // 2nd arg = sampling
|
||||
<h5>Warning</h5>
|
||||
<p>Using only <code>Mx|My|Mz</code> without <code>Fz</code> loses one degree of freedom (torque = r × F loses the r-direction), making coefficient training unreliable. Always include <code>Fz</code> when using torque data.</p>
|
||||
</div>
|
||||
<p>The feed-per-tooth entry above is what the command refuses to run without, not what a usable
|
||||
training needs. One sample at a different feed satisfies it; separating the shear coefficients from
|
||||
the ploughing ones takes a <strong>range</strong> of chip loads across the passes.</p>
|
||||
<h3 id="training-conditions">Training Conditions</h3>
|
||||
<ul>
|
||||
<li>Samples should have <strong>stable, repeatable waveforms</strong> for at least two spindle revolutions</li>
|
||||
<li>Under unstable conditions, plowing coefficients tend to be over-estimated</li>
|
||||
<li>Any NC path shape (slot milling, side milling, any tool shape) is acceptable when samples are stable</li>
|
||||
<li><strong>Stable samples are necessary and not sufficient.</strong> Whether the coefficients can be recovered
|
||||
from a cut set at all is decided by what that set spans, not by how clean it is: a set with one
|
||||
helix angle leaves a combination of the shear coefficients exactly unobservable, and a set with a
|
||||
narrow feed-per-tooth range cannot separate shear from ploughing. Design the set before cutting —
|
||||
see <a href="../technique/measurement/training-cut-set-design.html">Designing a Training Cut Set</a></li>
|
||||
</ul>
|
||||
<hr>
|
||||
<h2 id="7-evaluate-training-quality">7. Evaluate Training Quality</h2>
|
||||
@@ -518,12 +530,12 @@ WriteShotFiles("Output/[NcName].shot.csv", 0.1);
|
||||
</code></pre>
|
||||
<h2 id="see-also">See Also</h2>
|
||||
<ul>
|
||||
<li><a href="../manual/analysis/milling-physics-coordinates.html">Milling Physics Coordinates</a> — coordinate system reference</li>
|
||||
<li><a class="xref" href="../technique/milling-physics/milling-physics-coordinates.html">Milling Physics Coordinates</a> — coordinate system reference</li>
|
||||
<li><a href="sensor-mapping.html">Sensor Mapping Workflow</a> — detailed mapping workflow</li>
|
||||
<li><a class="xref" href="basic-simulation.html">Workflow: Basic Machining Simulation</a> — basic simulation setup</li>
|
||||
<li><a class="xref" href="nc-optimization.html">Workflow: NC Optimization</a> — optimization after training</li>
|
||||
<li><a class="xref" href="../manual/runtime/step.html">Step</a> — step data reference</li>
|
||||
<li><a class="xref" href="../manual/runtime/session-shell.html">Glossary: SessionShell Quick-Reference</a> — SessionShell quick-reference</li>
|
||||
<li><a class="xref" href="../technique/scripting/step.html">Step</a> — step data reference</li>
|
||||
<li><a class="xref" href="../technique/scripting/session-shell.html">SessionShell</a> — SessionShell quick-reference</li>
|
||||
<li><a href="examples/milling-training-dynamometer.html">Training with a Dynamometer (Example)</a></li>
|
||||
<li><a href="examples/mapping-demo.html">Cascading Mapping (Example)</a></li>
|
||||
</ul>
|
||||
|
||||
@@ -256,7 +256,7 @@ WriteStepFiles("Output/[NcName].step.csv");
|
||||
<h2 id="see-also">See Also</h2>
|
||||
<ul>
|
||||
<li><a class="xref" href="basic-simulation.html">Workflow: Basic Machining Simulation</a> — basic simulation setup</li>
|
||||
<li><a class="xref" href="../manual/runtime/session-shell.html">Glossary: SessionShell Quick-Reference</a> — SessionShell quick-reference</li>
|
||||
<li><a class="xref" href="../technique/scripting/session-shell.html">SessionShell</a> — SessionShell quick-reference</li>
|
||||
</ul>
|
||||
|
||||
</article>
|
||||
|
||||
@@ -0,0 +1,134 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Workflows | HiAPI-C# 2025 </title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="title" content="Workflows | 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="">
|
||||
<h1 id="workflows">Workflows</h1>
|
||||
|
||||
<p>End-to-end task guides. Each page carries one job from the data you have to the result you want and
|
||||
is meant to be read start to finish, so a guide stays whole rather than being split into a
|
||||
procedure half and a knowledge half. Where a guide rests on durable theory it cites the Technique
|
||||
page instead of restating it.</p>
|
||||
<p>Ordered as a project goes: collect the data, stand the project up, run it, then the jobs that build
|
||||
on a run that has finished.</p>
|
||||
<h2 id="guides">Guides</h2>
|
||||
<ul>
|
||||
<li><a href="project-data-checklist.html">Project Data Checklist</a> — The canonical list of what to collect from the machine owner before a project can be built, with formats, tolerances and worked examples</li>
|
||||
<li><a href="basic-simulation.html">Basic Simulation</a> — Set up and run a machining simulation from scratch: project configuration, option tuning, NC execution and result inspection</li>
|
||||
<li><a href="project-construction.html">Project Construction</a> — How to build a project so that it is actually finished: the build order that avoids rework, how to shape the mission, and the acceptance test</li>
|
||||
<li><a href="force-training.html">Milling Force Parameter Training</a> — Train milling force coefficients from measured sensor data, evaluate their quality, and apply them</li>
|
||||
<li><a href="nc-optimization.html">NC Optimization</a> — Generate an optimized NC file by adjusting feed rates against power, torque, thermal and force limits</li>
|
||||
<li><a href="sensor-mapping.html">Sensor Data Mapping</a> — Map dynamometer, smart tool holder or accelerometer data onto simulation toolpaths so a step can index a real measurement</li>
|
||||
<li><a href="geometry-validation.html">Geometry Validation</a> — Collision detection, geometry difference comparison, defect scanning and flying-piece removal after a run</li>
|
||||
<li><a href="simulation-report.html">Simulation Report</a> — Turn a completed session into a focused set of result captures, keeping the panels that carry information and leaving out the chrome</li>
|
||||
<li><a href="dynamometer-experiment-sop.html">Dynamometer Experiment SOP</a> — The bench procedure for capturing three-axis force data and calculating milling force coefficients</li>
|
||||
<li><a href="examples/index.html">Example Projects</a> — Complete project-level examples that run the guides above against real data</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>
|
||||
@@ -235,6 +235,7 @@ LoadCuttingParaByFile("Material.mp");
|
||||
<li><strong>Physics-based constraints</strong> (spindle power, torque, thermal yield, preferred force)</li>
|
||||
</ol>
|
||||
<p>When constraints at the same priority conflict, the lowest feed rate is used.</p>
|
||||
<p>A floor above the ceiling neither fails nor lowers the feed: where the composed minimum feed per tooth exceeds the composed maximum — a minimum feed rate, a minimum feed per tooth or the cutter's minimum uncut chip thickness sitting above the maximum — the boundary collapses onto the <strong>minimum</strong>, and the step is solved there.</p>
|
||||
<h3 id="script-command-example">Script Command Example</h3>
|
||||
<pre><code class="lang-csharp">OptEnableFeedrate = true;
|
||||
OptEnableInterpolation = true;
|
||||
@@ -282,20 +283,161 @@ N0160 X-3.555 Y43.338 (;@EndPreserve();)
|
||||
<pre><code class="lang-csharp">OptimizeToFiles("Cache/Opt-[NcName]");
|
||||
</code></pre>
|
||||
<p>The <code>[NcName]</code> template is replaced with each input NC file name.</p>
|
||||
<h3 id="what-the-run-reports">What the Run Reports</h3>
|
||||
<p>An optimization reports itself to the <strong>Shell</strong> tab of the Session Messages panel, as a fixed
|
||||
sequence of rows:</p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Row</th>
|
||||
<th>Stage</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><code>Start NC optimization.</code></td>
|
||||
<td>the pass opens</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>Computing Optimized Feed by indivisual step..</code></td>
|
||||
<td>the per-step feed solve</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>Optimization Feedrate built.</code></td>
|
||||
<td>the feed solve closed</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>Constrain feedrate By expaneded segment..</code></td>
|
||||
<td>the extended-distance constraint</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>Constrain Feedrate By Acceleration..</code></td>
|
||||
<td>the acceleration constraint</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>Build Compensation..</code></td>
|
||||
<td>the compensation build</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>Regenerate NC commands..</code></td>
|
||||
<td>the NC text is rewritten</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>File optimized: <path></code></td>
|
||||
<td>one row per written file</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>Total N files optimized.</code></td>
|
||||
<td>the pass is over</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>optimization cache cleared.</code></td>
|
||||
<td>the step cache is released</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<p>Two of those stages tick while they work, and they are the only instrument for telling a slow
|
||||
optimization from a stopped one. The feed solve adds <code>Computing Optimized Feed by indivisual step.. FileNo:<n>, LineNo:<m></code> every thousand steps solved — <code>StepIndex:<i></code> instead, for a step that
|
||||
carries no source line — and the writer adds <code>Now optimizing to: FileNo.<n>, LineNo.<m></code> every
|
||||
thousand lines written. Each names the source file and line the run has reached, so a ladder whose
|
||||
last row keeps advancing is a run still moving through the program, and one that has gone quiet
|
||||
without reaching <code>Total N files optimized.</code> is not. A stage with fewer than a thousand steps or
|
||||
lines to get through announces its start and then says nothing until it ends, so a short program
|
||||
crosses the whole ladder in near-silence.</p>
|
||||
<p><strong>Stop reaches inside an optimization.</strong> The transport's Stop is tested between every pair of
|
||||
stages, inside the per-step feed solve, and once per destination piece while files are written, so a
|
||||
stopped optimization halts at the next step or piece boundary rather than running to the end. The
|
||||
Shell ladder says so twice: the feed solve closes with <code>Optimization Feed Process canceled.</code> in
|
||||
place of <code>Optimization Feedrate built.</code>, and an <code>optimization canceled.</code> row is added before the
|
||||
pass ends.</p>
|
||||
<div class="IMPORTANT">
|
||||
<h5>Important</h5>
|
||||
<p>A stopped optimization still ends on the green <code>Total N files optimized.</code> row a completed one ends
|
||||
on. That row is not a statement that the optimization finished — read the row above it. <code>N</code> counts
|
||||
the files the run had begun writing, so a Stop during the feed solve ends on
|
||||
<code>Total 0 files optimized.</code>, and a Stop during writing counts the file it was in the middle of,
|
||||
which is left short.</p>
|
||||
</div>
|
||||
<hr>
|
||||
<h2 id="5-verify-optimization-results">5. Verify Optimization Results</h2>
|
||||
<h3 id="optimization-logs">Optimization Logs</h3>
|
||||
<p>Enable the per-step log to see which constraint limited each step:</p>
|
||||
<pre><code class="lang-csharp">EnableIndividualStepAdjustmentLog = true;
|
||||
<p>The per-step log is written by default. Every optimization drops one <code>.IndependentStepAdjustment.log</code>
|
||||
beside each optimized NC file that had steps to solve, named after that optimized file, and it
|
||||
records which constraint limited each step.
|
||||
<a class="xref" href="../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_EnableIndividualStepAdjustmentLog">EnableIndividualStepAdjustmentLog</a> is the switch that stops it
|
||||
being written:</p>
|
||||
<pre><code class="lang-csharp">EnableIndividualStepAdjustmentLog = false;
|
||||
</code></pre>
|
||||
<p>The <code>.IndependentStepAdjustment.log</code> file records per-step calculations including:</p>
|
||||
<ul>
|
||||
<li><code>FrtByPreferedForce_mm</code> — feed per tooth from target force</li>
|
||||
<li><code>FrtByYieldingStressRatio_mm</code> — feed per tooth from yielding stress</li>
|
||||
<li><code>FrtBySpindleTorqueRatio_mm</code> — feed per tooth from spindle torque</li>
|
||||
<li><code>FrtBySpindlePowerRatio_mm</code> — feed per tooth from spindle power</li>
|
||||
<li><code>FrtByThermalYieldingRatio_mm</code> — feed per tooth from thermal yield</li>
|
||||
</ul>
|
||||
<p>A stopped or failed optimization leaves that file short. Its buffered tail is written out only when
|
||||
the feed solve runs to completion; when the pass is cut off, the lines still in the buffer are
|
||||
dropped, and so is any step line held back in the ordering window waiting for a lower step index
|
||||
that never arrived. Batches reach the file at most once a second, so the missing tail can cover the
|
||||
last second of solving as well as the steps that were never reached. Read the log as a complete
|
||||
record only for a run whose feed solve closed with <code>Optimization Feedrate built.</code></p>
|
||||
<p>Each row of the <code>.IndependentStepAdjustment.log</code> file opens with the source NC file and line, the step index and the cutter location, then lists the feed per tooth every active criterion allowed:</p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Criterion</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><code>FrtByPreferedForce_mm</code></td>
|
||||
<td>target cutting force</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>FrtByYieldingStressRatio_mm</code></td>
|
||||
<td>yielding stress</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>FrtBySpindleTorqueRatio_mm</code></td>
|
||||
<td>spindle torque</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>FrtBySpindlePowerRatio_mm</code></td>
|
||||
<td>spindle power</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>FrtByThermalYieldingRatio_mm</code></td>
|
||||
<td>thermal yield</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>FrtByCustom_mm(n)</code></td>
|
||||
<td>the n-th custom criterion the script registered</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>FrtByReliefAngle_mm</code></td>
|
||||
<td>relief-face contact — see <a class="xref" href="../technique/milling-physics/relief-face-avoidance.html">Relief Face Avoidance</a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<p>The step's feed per tooth is the <strong>lowest</strong> of the first six; the relief-angle pass then runs on that value, so its row is the last word rather than one vote among the others.</p>
|
||||
<p>Every row carries the solver's status for that criterion in brackets: <code>Solved</code> when the binary solve converged, <code>Singular</code> / <code>OverIteration</code> / <code>Iterating</code> when it did not, and — on the relief-angle row only — <code>Acceptable</code>, which means the relief face was clear at the feed already chosen, so that row states the feed instead of a limit on it. A criterion with no row at all was switched off (its safety factor is <code>0</code>) or was not evaluable for that tool.</p>
|
||||
<p>Three rows replace that list rather than joining it:</p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Meaning</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><code>FrtByUnTouched: inf</code></td>
|
||||
<td>the step cuts nothing, so no physical criterion applies</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>FeedrateByNoData_mmdmin: <feed></code></td>
|
||||
<td>no tool or no milling coefficients on the step; it keeps its feed</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>StepFailed: <exception></code></td>
|
||||
<td>the solve threw; the step keeps its simulated feed and is reported as an error — see <a href="../technique/nc-optimization/nc-optimization-principles.html#when-a-step-cannot-be-solved">When a Step Cannot Be Solved</a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h3 id="embedded-log-comments">Embedded Log Comments</h3>
|
||||
<p>Control embedded log verbosity with <a class="xref" href="../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_EmbeddedLogMode_">EmbeddedLogMode</a>:</p>
|
||||
<table>
|
||||
@@ -320,16 +462,34 @@ N0160 X-3.555 Y43.338 (;@EndPreserve();)
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<p>Example output: <code>G01 X10.0 Y20.0 F500 (src(LineNo: 140, StepIndex: 256))</code></p>
|
||||
<div class="IMPORTANT">
|
||||
<h5>Important</h5>
|
||||
<p>The mode is read by the legacy optimization path. While
|
||||
<a class="xref" href="../api/Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_EnableSoftNcRunner">EnableSoftNcRunner</a> is on and the session holds played
|
||||
NC — the default — the optimizer writes the <code>SimpleLog</code> shape whatever the mode says: every
|
||||
re-interpolated fragment carries its <code>StepIndex</code>, the last fragment of each source line adds that
|
||||
line's <code>LineNo</code>, and a line the optimizer did not split carries no note.</p>
|
||||
</div>
|
||||
<p>The note is written in the controller's comment grammar, so the optimized file stays legal for the
|
||||
control that reads it. On the Fanuc family it is parenthesized:</p>
|
||||
<pre><code>G01 X10.0 Y20.0 F500 (src(LineNo: 140, StepIndex: 256))
|
||||
</code></pre>
|
||||
<p>On Heidenhain it is a <code>;</code> comment, because a TNC reads parentheses as code:</p>
|
||||
<pre><code>120 L X+35 Y-11.7 R0 F500 ;src(LineNo: 140, StepIndex: 256)
|
||||
</code></pre>
|
||||
<p>On a Heidenhain project a feed word the optimizer has to insert is also placed in the element order
|
||||
a TNC enforces — after the coordinate words, after the rotation direction <code>DR+</code> / <code>DR-</code>, and after
|
||||
the radius compensation <code>RL</code> / <code>RR</code> / <code>R0</code>. A block that read <code>L X+10 Y+20 RL</code> comes back as
|
||||
<code>L X+10 Y+20 RL F500</code>.</p>
|
||||
<h3 id="tracking-individual-step-constraints">Tracking Individual Step Constraints</h3>
|
||||
<p>To isolate which physical quantity limits each step, disable smoothing:</p>
|
||||
<pre><code class="lang-csharp">OptMaxAcceleration_mmds2 = double.PositiveInfinity;
|
||||
OptFeedrateAssignmentRatio = 0;
|
||||
OptExtendedPreDistance_mm = 0;
|
||||
OptExtendedPostDistance_mm = 0;
|
||||
EnableIndividualStepAdjustmentLog = true;
|
||||
EmbeddedLogMode = NcOptimizationEmbeddedLogMode.FullLog;
|
||||
</code></pre>
|
||||
<p>The four smoothing settings are what this block changes. The per-step log is already on, and
|
||||
<code>EmbeddedLogMode</code> does not reach the pipeline that runs by default — see above.</p>
|
||||
<h3 id="post-optimization-simulation-differences">Post-Optimization Simulation Differences</h3>
|
||||
<p>Optimized feed rates produce different interpolation points, causing:</p>
|
||||
<ul>
|
||||
@@ -339,7 +499,7 @@ EmbeddedLogMode = NcOptimizationEmbeddedLogMode.FullLog;
|
||||
<p>Simulated physical quantities after optimization may be slightly above target values due to these differences.</p>
|
||||
<div class="TIP">
|
||||
<h5>Tip</h5>
|
||||
<p>For abnormally low optimized feed rates at corners, refer to <a href="../manual/analysis/corner-behavior.html">Corner Feed Rate Optimization</a>.</p>
|
||||
<p>For abnormally low optimized feed rates at corners, refer to <a class="xref" href="../technique/nc-optimization/corner-behavior.html">Corner Feed Rate Optimization</a>.</p>
|
||||
</div>
|
||||
<hr>
|
||||
<h2 id="tool-breakage-solutions">Tool Breakage Solutions</h2>
|
||||
@@ -374,11 +534,11 @@ WriteStepFiles("Output/[NcName].step.csv");
|
||||
</code></pre>
|
||||
<h2 id="see-also">See Also</h2>
|
||||
<ul>
|
||||
<li><a href="../manual/analysis/nc-optimization-principles.html">NC Optimization (Concepts)</a> — theory and objectives</li>
|
||||
<li><a href="../manual/analysis/corner-behavior.html">Corner Feed Rate Optimization</a></li>
|
||||
<li><a class="xref" href="../technique/nc-optimization/nc-optimization-principles.html">NC Optimization (Concepts)</a> — theory and objectives</li>
|
||||
<li><a class="xref" href="../technique/nc-optimization/corner-behavior.html">Corner Feed Rate Optimization</a></li>
|
||||
<li><a class="xref" href="force-training.html">Workflow: Milling Force Parameter Training</a> — prerequisite: training cutting parameters</li>
|
||||
<li><a class="xref" href="basic-simulation.html">Workflow: Basic Machining Simulation</a> — basic simulation setup</li>
|
||||
<li><a class="xref" href="../manual/runtime/session-shell.html">Glossary: SessionShell Quick-Reference</a> — SessionShell quick-reference</li>
|
||||
<li><a class="xref" href="../technique/scripting/session-shell.html">SessionShell</a> — SessionShell quick-reference</li>
|
||||
</ul>
|
||||
|
||||
</article>
|
||||
|
||||
@@ -284,7 +284,7 @@ total is wall clock including tool changes and inter-operation moves. Two differ
|
||||
when the real value arrives. Recurring items: work offsets, blank size and material, tool helix
|
||||
angle, stick-out, holder dimensions, the spindle's power–torque curve, fixture geometry, and the
|
||||
cycle-time inputs above.</p>
|
||||
<p>Cross-reference: <a href="../manual/setup/project-data-checklist.html">Project Data Checklist</a> is the list to
|
||||
<p>Cross-reference: <a class="xref" href="project-data-checklist.html">Project Data Checklist</a> is the list to
|
||||
hand the customer <em>before</em> building; this section is what you hand back <em>after</em>.</p>
|
||||
|
||||
</article>
|
||||
|
||||
+121
@@ -0,0 +1,121 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 720 540" font-family="'Segoe UI',Arial,sans-serif">
|
||||
<!-- nameplate background -->
|
||||
<rect x="2" y="2" width="716" height="536" rx="10" fill="#f7f3df" stroke="#9a8f5c" stroke-width="2"/>
|
||||
|
||||
<!-- header -->
|
||||
<text x="30" y="46" font-size="22" font-weight="700" fill="#333" letter-spacing="2">FANUC</text>
|
||||
<text x="30" y="72" font-size="15" font-weight="600" fill="#333" letter-spacing="3">AC SPINDLE MOTOR</text>
|
||||
|
||||
<text x="30" y="106" font-size="13" fill="#777">MODEL</text>
|
||||
<text x="92" y="106" font-size="15" font-weight="700" fill="#222">αiI 6/12000</text>
|
||||
<text x="30" y="130" font-size="13" fill="#777">TYPE</text>
|
||||
<text x="92" y="130" font-size="14" fill="#222">A06B-1466-B123#0S21</text>
|
||||
|
||||
<text x="430" y="106" font-size="13" fill="#777">DATE</text>
|
||||
<text x="480" y="106" font-size="14" fill="#222">2015.01</text>
|
||||
<text x="430" y="130" font-size="13" fill="#777">NO.</text>
|
||||
<text x="480" y="130" font-size="14" fill="#999">——</text>
|
||||
|
||||
<text x="30" y="158" font-size="12" fill="#777">FANUC CORPORATION · YAMANASHI, MADE IN JAPAN</text>
|
||||
<line x1="20" y1="170" x2="700" y2="170" stroke="#cabf8c" stroke-width="1"/>
|
||||
|
||||
<!-- rating table grid -->
|
||||
<g stroke="#8a7f4c" stroke-width="1">
|
||||
<!-- verticals -->
|
||||
<line x1="20" y1="182" x2="20" y2="444"/>
|
||||
<line x1="110" y1="182" x2="110" y2="444"/>
|
||||
<line x1="230" y1="182" x2="230" y2="444"/>
|
||||
<line x1="360" y1="182" x2="360" y2="444"/>
|
||||
<line x1="600" y1="182" x2="600" y2="444"/>
|
||||
<line x1="700" y1="182" x2="700" y2="444"/>
|
||||
<!-- top / header / bottom -->
|
||||
<line x1="20" y1="182" x2="700" y2="182"/>
|
||||
<line x1="20" y1="210" x2="700" y2="210"/>
|
||||
<line x1="20" y1="444" x2="700" y2="444"/>
|
||||
<!-- row separators (skip WINDING column) -->
|
||||
<line x1="110" y1="236" x2="700" y2="236"/>
|
||||
<line x1="110" y1="262" x2="700" y2="262"/>
|
||||
<line x1="110" y1="288" x2="700" y2="288"/>
|
||||
<line x1="110" y1="314" x2="700" y2="314"/>
|
||||
<line x1="110" y1="340" x2="700" y2="340"/>
|
||||
<line x1="110" y1="366" x2="700" y2="366"/>
|
||||
<line x1="110" y1="392" x2="700" y2="392"/>
|
||||
<line x1="110" y1="418" x2="700" y2="418"/>
|
||||
<!-- winding group separator -->
|
||||
<line x1="20" y1="340" x2="110" y2="340"/>
|
||||
</g>
|
||||
|
||||
<!-- header labels -->
|
||||
<g font-size="12" font-weight="700" fill="#444" text-anchor="middle">
|
||||
<text x="65" y="200">WINDING</text>
|
||||
<text x="170" y="200">RATING</text>
|
||||
<text x="295" y="200">kW</text>
|
||||
<text x="480" y="200">min⁻¹</text>
|
||||
<text x="650" y="200">A(~) max</text>
|
||||
</g>
|
||||
|
||||
<!-- winding group labels -->
|
||||
<g font-size="14" font-weight="700" fill="#333" text-anchor="middle">
|
||||
<text x="65" y="279">Y · LOW</text>
|
||||
<text x="65" y="396">Δ · HIGH</text>
|
||||
</g>
|
||||
|
||||
<!-- rating rows -->
|
||||
<g font-size="13" fill="#222">
|
||||
<!-- RATING column (left aligned) -->
|
||||
<g text-anchor="start">
|
||||
<text x="120" y="228">S1 CONT</text>
|
||||
<text x="120" y="254">S2 30min</text>
|
||||
<text x="120" y="280">S3 60%</text>
|
||||
<text x="120" y="306">S3 25%</text>
|
||||
<text x="120" y="332">S3 15%</text>
|
||||
<text x="120" y="358">S1 CONT</text>
|
||||
<text x="120" y="384">S2 30min</text>
|
||||
<text x="120" y="410">S3 60%</text>
|
||||
<text x="120" y="436">S3 25%</text>
|
||||
</g>
|
||||
<!-- kW column (centered) -->
|
||||
<g text-anchor="middle">
|
||||
<text x="295" y="228">5.5 / 2.2</text>
|
||||
<text x="295" y="254">7.5 / 3.7</text>
|
||||
<text x="295" y="280">7.5 / 3.7</text>
|
||||
<text x="295" y="306">13 / 7.5</text>
|
||||
<text x="295" y="332">15 / 13</text>
|
||||
<text x="295" y="358">5.5</text>
|
||||
<text x="295" y="384">7.5</text>
|
||||
<text x="295" y="410">7.5</text>
|
||||
<text x="295" y="436">18.5 / 11</text>
|
||||
</g>
|
||||
<!-- min^-1 column (centered) -->
|
||||
<g text-anchor="middle">
|
||||
<text x="480" y="228">1500–8000 / 12000</text>
|
||||
<text x="480" y="254">1500–8000 / 12000</text>
|
||||
<text x="480" y="280">1500–8000 / 12000</text>
|
||||
<text x="480" y="306">1500–4000 / 8000</text>
|
||||
<text x="480" y="332">1500–3000 / 4000</text>
|
||||
<text x="480" y="358">4000–12000</text>
|
||||
<text x="480" y="384">4000–12000</text>
|
||||
<text x="480" y="410">4000–12000</text>
|
||||
<text x="480" y="436">4000–7000 / 12000</text>
|
||||
</g>
|
||||
<!-- A column (centered) -->
|
||||
<g text-anchor="middle">
|
||||
<text x="650" y="228">37</text>
|
||||
<text x="650" y="254">47</text>
|
||||
<text x="650" y="280">47</text>
|
||||
<text x="650" y="306">77</text>
|
||||
<text x="650" y="332">86</text>
|
||||
<text x="650" y="358">43</text>
|
||||
<text x="650" y="384">43</text>
|
||||
<text x="650" y="410">36</text>
|
||||
<text x="650" y="436">81</text>
|
||||
</g>
|
||||
</g>
|
||||
|
||||
<!-- footer electrical specs -->
|
||||
<g font-size="12" fill="#333">
|
||||
<text x="20" y="470">MOTOR INPUT (~) 122 / 226 V · AMP INPUT 200 / 230 V · 4 POLES · 3 PHASES</text>
|
||||
<text x="20" y="492">50 / 60 Hz · IP40 · POWER FACTOR 71 % · AMB TEMP 0–40 °C · INS. CLASS H</text>
|
||||
</g>
|
||||
<text x="700" y="520" font-size="11" fill="#998" text-anchor="end">範例銘牌(已移除單機序號)· example plate, unit serial removed</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 5.1 KiB |
@@ -0,0 +1,489 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Project Data Checklist | HiAPI-C# 2025 </title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="title" content="Project Data Checklist | 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="Setup-ProjectDataChecklist">
|
||||
<h1 id="project-data-checklist">Project Data Checklist</h1>
|
||||
|
||||
<p>A HiNC project (<code>.hincproj</code>) is a <strong>digital twin</strong> of a real machining setup: machine, spindle, workpiece, fixture, tooling, controller, and the NC program. To build one, you must first collect the data that describes the physical setup.</p>
|
||||
<p>This page is the single, canonical list of that data. Hand it to the machine owner / customer as a <strong>data-collection checklist</strong> before a project is built. The <a href="https://superhightech.com.tw/hinc/index.en.html#parameters-for-analysis">product site</a> shows the same grouping in short form for orientation; the formats, tolerances and worked examples below are here and only here.</p>
|
||||
<p>You do not need a strict form — write the items here up as a short free-text note and hand it over <strong>with the CAD and NC files</strong>; that is what a HiNC engineer needs to build the <code>.hincproj</code> (see the <a href="#examples">worked examples</a> below).</p>
|
||||
<p>This page is the list to collect <em>before</em> a project is built. For what the engineer then does with it — build order, mission structure, and how completeness is verified — see <a href="project-construction.html">Project Construction</a>.</p>
|
||||
<div class="IMPORTANT">
|
||||
<h5>Important</h5>
|
||||
<p><strong>Identifiers beat half-remembered numbers.</strong> Customers rarely have every detail. Where a value is missing, give an <strong>identifier</strong> — <em>cutter brand + product ID</em>, <em>spindle/machine make + model</em> — and the HiNC engineer sources the rest (cutter geometry from the catalog, the power–torque chart from the spindle datasheet). Capture what you can; the engineer fills the gaps.</p>
|
||||
</div>
|
||||
<pre><code class="lang-mermaid">graph TD
|
||||
subgraph Equipment["Equipment (one-time, fixed)"]
|
||||
M["Machine Configuration"]
|
||||
S["Spindle Capability"]
|
||||
E["Environment"]
|
||||
end
|
||||
subgraph Job["Job (per part)"]
|
||||
W["Workpiece"]
|
||||
F["Fixture"]
|
||||
T["Tooling"]
|
||||
C["Controller + NC Program"]
|
||||
end
|
||||
Equipment --> P[".hincproj"]
|
||||
Job --> P
|
||||
</code></pre>
|
||||
<h2 id="at-a-glance">At a Glance</h2>
|
||||
<p>Each item is marked:</p>
|
||||
<ul>
|
||||
<li><strong>Required</strong> — a project cannot be built without it.</li>
|
||||
<li><strong>Optional</strong> — improves realism but the project still runs without it.</li>
|
||||
<li><strong>Conditional</strong> — only needed for a specific check <em>beyond</em> the core cutting-force simulation (e.g. collision detection, geometry validation, spindle-overload analysis), noted in <em>Used for</em>.</li>
|
||||
</ul>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Category</th>
|
||||
<th>Item</th>
|
||||
<th>Required?</th>
|
||||
<th>Used for</th>
|
||||
<th>Detail</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Machine</td>
|
||||
<td>Kinematic model & axis configuration (3-/5-axis, motion methods)</td>
|
||||
<td><strong>Required</strong></td>
|
||||
<td>Toolpath, collision</td>
|
||||
<td><a href="../manual/setup/machine-tool.html">Machine Tool</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Machine</td>
|
||||
<td>Simplified component CAD/STL (table, column, spindle housing…)</td>
|
||||
<td>Conditional</td>
|
||||
<td>Collision detection</td>
|
||||
<td><a href="../manual/setup/machine-tool.html">Machine Tool</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Machine</td>
|
||||
<td>Travel/stroke limits</td>
|
||||
<td>Conditional</td>
|
||||
<td>Stroke-overrun check</td>
|
||||
<td>—</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Machine</td>
|
||||
<td>Rapid feedrate, max spindle & rotary speeds</td>
|
||||
<td>Optional</td>
|
||||
<td>Feedrate precision → tighter optimization & physics/timing estimates</td>
|
||||
<td>—</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Spindle</td>
|
||||
<td>Brand/model + product description (so the chart can be sourced)</td>
|
||||
<td>Conditional</td>
|
||||
<td>Power/torque & overload analysis — a default spindle capability is applied if omitted (fine for light cuts in small/soft stock)</td>
|
||||
<td>—</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Spindle</td>
|
||||
<td>Speed–power–torque diagram (kW & Nm vs RPM, duty ratings)</td>
|
||||
<td>Conditional (sourced from the brand/model above)</td>
|
||||
<td>Power/torque & overload analysis</td>
|
||||
<td><a class="xref" href="../technique/machine-capability/spindle-capability.html">Spindle Capability</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Environment</td>
|
||||
<td>Coolant type (other thermal values keep their defaults)</td>
|
||||
<td>Optional</td>
|
||||
<td>Thermal / wear analysis — a default is applied if omitted</td>
|
||||
<td><a href="../manual/setup/coolant.html">Coolant</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Workpiece</td>
|
||||
<td>Material (named or property set)</td>
|
||||
<td><strong>Required</strong></td>
|
||||
<td>Force, thermal</td>
|
||||
<td>—</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Workpiece</td>
|
||||
<td>Initial (stock) CAD + Finished CAD (STL or parametric)</td>
|
||||
<td><strong>Required</strong> (stock)</td>
|
||||
<td>Cut simulation; finished = geometry check</td>
|
||||
<td><a href="geometry-validation.html">Geometry Validation</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Workpiece</td>
|
||||
<td>Program-zero position in plain words (e.g. “G54 = top centre”)</td>
|
||||
<td><strong>Required</strong></td>
|
||||
<td>Correct engagement</td>
|
||||
<td><a href="../manual/setup/program-zero-alignment.html">Program Zero Alignment</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Fixture</td>
|
||||
<td>Fixture CAD/STL</td>
|
||||
<td>Optional</td>
|
||||
<td>Collision detection</td>
|
||||
<td>—</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Tooling</td>
|
||||
<td>Per tool: geometry + cutter & coating material (ideally via <strong>cutter brand + product ID</strong>)</td>
|
||||
<td><strong>Required</strong></td>
|
||||
<td>Force, deflection, geometry</td>
|
||||
<td><a href="../manual/setup/cutter.html">Cutter</a>, <a class="xref" href="../technique/milling-physics/cutter-geometry.html">Cutter Geometry</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Tooling</td>
|
||||
<td>Per tool: holder brand+ID (or rough height/radius)</td>
|
||||
<td>Conditional</td>
|
||||
<td>Collision check; how deep the tool reaches</td>
|
||||
<td>—</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Controller</td>
|
||||
<td>CNC brand/type (Fanuc, Heidenhain, Siemens…)</td>
|
||||
<td><strong>Required</strong></td>
|
||||
<td>NC interpretation</td>
|
||||
<td><a class="xref" href="../technique/nc-dialects/controller-iso.html">Controllers</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Controller</td>
|
||||
<td>NC / CL program(s)</td>
|
||||
<td><strong>Required</strong></td>
|
||||
<td>The process to simulate</td>
|
||||
<td><a class="xref" href="../technique/nc-dialects/controller-iso.html">ISO / General NC</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Controller</td>
|
||||
<td>Work offsets (G54…) and tool offset table</td>
|
||||
<td>Optional</td>
|
||||
<td>Estimated/relative values work for evaluation; HiNC can set an assumed offset</td>
|
||||
<td><a href="../manual/setup/program-zero-alignment.html">Program Zero Alignment</a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<hr>
|
||||
<h2 id="1-machine-configuration">1. Machine Configuration</h2>
|
||||
<p>The machine is <strong>one-time, fixed</strong> data: collected once, reused across every job on that machine.</p>
|
||||
<ul>
|
||||
<li><strong>Kinematic model & axis configuration</strong> — number of axes and how each axis moves (the motion chain from ground → table and ground → spindle). <strong>Required.</strong> On a multi-axis machine the <strong>rotary configuration matters most</strong>: name each rotary axis and its <strong>pivot location</strong> (e.g. <em>table-C / spindle-B</em>). The pivot defines the entire kinematic chain, rotary swings are the most collision-prone motions, and the rotary bodies' geometry makes that motion intelligible — so describe it carefully.</li>
|
||||
<li><strong>Simplified component CAD/STL</strong> — table, column, spindle housing, and other bodies, exported from a single coordinate system. <strong>Only needed for collision detection</strong> — though on a multi-axis machine the <strong>rotary bodies (table, cradle, tilt head)</strong> are especially worth including, as their geometry also makes the machine's motion intelligible. Keep the mesh simplified; too many triangles slow loading and collision checks.</li>
|
||||
<li><strong>Travel/stroke limits</strong> — from the machine spec sheet. <strong>Conditional.</strong> Only matters when a stroke-overrun check is the goal — and the operator has usually already confirmed the program fits the machine, so it is not needed unless that is the specific thing you want to test.</li>
|
||||
<li><strong>Rapid feedrate, max spindle & rotary speeds</strong> — from the machine spec sheet. <strong>Optional.</strong> Real values let the simulation use a more accurate achievable feedrate, which tightens the optimization and the physics / timing estimates. Helpful but not essential — defaults still produce a valid run.</li>
|
||||
</ul>
|
||||
<p>See <a href="../manual/setup/machine-tool.html">Machine Tool</a> for how the kinematic chain and anchors are built, and <a href="../manual/setup/anchor.html">Anchor</a> for coordinate anchors.</p>
|
||||
<h2 id="2-spindle-capability">2. Spindle Capability</h2>
|
||||
<ul>
|
||||
<li><strong>Spindle brand / model + product description</strong> — name the spindle (or the machine) make and model, with a short description or catalog link, so the chart can be <strong>sourced and verified</strong> by whoever builds the project. <strong>Conditional</strong> — needed only when spindle power/torque/overload could matter. Omit it and a <strong>default spindle capability</strong> is applied; light cuts in small or soft stock rarely stress the spindle, so the default is fine.</li>
|
||||
<li><strong>Speed–power–torque diagram</strong> — the spindle's power (kW) and torque (Nm) against RPM, including duty ratings (e.g. S1 continuous / S6 / 15-minute). From the machine or spindle spec sheet. <strong>Required for power, torque, and spindle-overload analysis.</strong></li>
|
||||
</ul>
|
||||
<p>This is the kind of chart needed — power and torque vs spindle speed, with the continuous (S1) and short-duration (S3) ratings:</p>
|
||||
<p><img src="../technique/machine-capability/spindle-capability-img/fanuc-at12-12000i.jpg" alt="Spindle power and torque vs speed (FANUC aT12/12000i)"></p>
|
||||
<div class="TIP">
|
||||
<h5>Tip</h5>
|
||||
<p><strong>Easier than transcribing: photograph the spindle motor nameplate.</strong> The same ratings are printed on the spindle <strong>motor's spec nameplate</strong>, usually attached to the machine (on the spindle or motor body). A clear photo of it is enough — the model, type, and the S1/S2/S3 rating table (kW and speeds) recover the power–torque behaviour. Example (a FANUC αiI 6/12000 plate, unit serial removed):</p>
|
||||
<p><img src="project-data-checklist-img/spindle-motor-label.svg" alt="Example spindle motor spec nameplate"></p>
|
||||
</div>
|
||||
<p>See <a class="xref" href="../technique/machine-capability/spindle-capability.html">Spindle Capability</a>.</p>
|
||||
<h2 id="3-environment">3. Environment</h2>
|
||||
<ul>
|
||||
<li><strong>Coolant type</strong> — which coolant is used. <strong>Optional</strong> — if omitted, a default coolant setting is applied. The remaining coolant/thermal values (temperature, convection, background temperature) keep their defaults too; they only affect thermal and wear results.</li>
|
||||
</ul>
|
||||
<p>See <a href="../manual/setup/coolant.html">Coolant</a>.</p>
|
||||
<h2 id="4-workpiece">4. Workpiece</h2>
|
||||
<ul>
|
||||
<li><strong>Material</strong> — a named material from the database, or its mechanical/thermal properties. <strong>Required.</strong></li>
|
||||
<li><strong>Raw (stock) geometry</strong> — STL or simple parametric dimensions (e.g. block <code>120 x 80 x 40</code> or round billet <code>Ø65 x 50</code>). Used for the starting shape and size. <strong>Required.</strong> For a <strong>casting or forging</strong>, give the as-cast shape as an <strong>STL</strong> and note its <strong>casting tolerance</strong> (the stock scatters part-to-part). <strong>Finished/design CAD</strong> is <strong>optional</strong>, used to compare the simulated shape against the target (geometry validation).</li>
|
||||
<li><strong>Program-zero position, in plain words</strong> — where each work offset (G54, G55…) sits on the part, e.g. <em>“G54 = top centre of the stock; Z0 at the top face, X0/Y0 on the axis”</em>. <strong>Required.</strong></li>
|
||||
</ul>
|
||||
<div class="NOTE">
|
||||
<h5>Note</h5>
|
||||
<p>Describe the program zero by <strong>position on the part</strong>, not the machine-coordinate offset numbers — for evaluation/planning a relative or assumed alignment is fine and HiNC aligns it for you. See <a href="../manual/setup/program-zero-alignment.html">Program Zero Alignment</a>.</p>
|
||||
</div>
|
||||
<h2 id="5-fixture">5. Fixture</h2>
|
||||
<ul>
|
||||
<li><strong>Fixture CAD/STL</strong> — <strong>optional</strong>, only needed when the fixture participates in collision detection.</li>
|
||||
</ul>
|
||||
<h2 id="6-tooling">6. Tooling</h2>
|
||||
<p>For <strong>each</strong> tool used by the program, collect:</p>
|
||||
<ul>
|
||||
<li><strong>Cutter brand + product ID</strong> — the maker and catalog number (with datasheet/link if handy). <strong>The single most useful field, when the cutter has one</strong>: from it the engineer looks up the geometry, flute count, helix, and grade, so give it even if the geometry below is incomplete. Off-brand cutters with no brand, manual, or traceable vendor are common (it depends on the shop) — then skip this and provide the geometry below directly, measured if needed.</li>
|
||||
<li><strong>Cutter geometry</strong> — <strong>Required</strong> (or derivable from the brand + product ID above):
|
||||
<ul>
|
||||
<li>type (flat-end / ball / corner-radius / insert), <strong>diameter</strong> <code>D</code>, <strong>corner radius</strong> <code>R</code></li>
|
||||
<li><strong>flute (cuttable) length</strong> — the cutting portion</li>
|
||||
<li><strong>overall tool length / stick-out</strong> — how far the cutter reaches from the holder to the flute tip; this sets where the holder grips and affects deflection and reach. A plain cylindrical cutter can use a small default exposed length (~5 mm); a cutter that is <strong>not a simple cylinder</strong> — a stepped or necked shank, or a body wider than the cutting diameter — needs a longer stick-out so the wider non-cutting part clears the workpiece.</li>
|
||||
<li><strong>flute count</strong>, <strong>helix angle</strong>, <strong>rake angle</strong> (relief angle if known)</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><strong>Cutter & coating material</strong> — body material and coating layers. <strong>Required.</strong></li>
|
||||
<li><strong>Holder</strong> — give the <strong>brand + product ID</strong>, or at least a <strong>rough height + radius</strong> (e.g. <code>Ø40 x 60 mm</code>). Full CAD is <strong>optional</strong> and only needed for collision detection; the rough size is enough to see whether the holder would hit the workpiece and how deep the tool can reach. Where the holder grips the tool comes from the cutter's stick-out above, so the tool can be placed even without holder geometry.</li>
|
||||
</ul>
|
||||
<div class="TIP">
|
||||
<h5>Tip</h5>
|
||||
<p>The cutter <strong>brand + product ID</strong> (or a datasheet image) is usually faster and more reliable than transcribing every dimension — the engineer reads the geometry off the catalog.</p>
|
||||
</div>
|
||||
<p>See <a href="../manual/setup/cutter.html">Cutter</a>, <a class="xref" href="../technique/milling-physics/cutter-geometry.html">Cutter Geometry</a> and <a class="xref" href="../technique/measurement/smart-tool-holder.html">Smart Tool Holder</a>.</p>
|
||||
<h2 id="7-controller">7. Controller</h2>
|
||||
<ul>
|
||||
<li><strong>CNC brand/type</strong> — determines how the NC code is interpreted. <strong>Required.</strong></li>
|
||||
<li><strong>NC / CL program(s)</strong> — the actual programs that run on the machine. <strong>Required.</strong></li>
|
||||
<li><strong>Work offsets (G54…) and tool offset table</strong> — <strong>not required</strong> for evaluation/planning. Relative or estimated values work; HiNC can set a workable assumed tool offset for you. Provide the real values only when a high-fidelity match is needed.</li>
|
||||
<li><strong>Stroke limits and machine-specific configuration parameters</strong> — <strong>optional</strong>.</li>
|
||||
</ul>
|
||||
<p>See <a class="xref" href="../technique/nc-dialects/controller-iso.html">ISO / General NC</a> and <a class="xref" href="../technique/nc-dialects/controller-heidenhain.html">Heidenhain Support</a>.</p>
|
||||
<hr>
|
||||
<h2 id="delivery-formats">Delivery Formats</h2>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Data</th>
|
||||
<th>Preferred format</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Machine / fixture geometry</td>
|
||||
<td><strong>STL</strong>, all exported from the <em>same</em> coordinate system (see <a href="../manual/setup/machine-tool.html">Machine Tool</a> best practices)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Workpiece geometry</td>
|
||||
<td>STL (stock + finished) or parametric dimensions</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Cutter</td>
|
||||
<td><strong>Brand + product ID</strong> (best), or geometry parameters / datasheet image</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Holder</td>
|
||||
<td>Brand + product ID, or rough height + radius</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Spindle capability</td>
|
||||
<td><strong>Brand + model</strong>, plus spec-sheet table or chart image (power & torque vs RPM)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>NC program</td>
|
||||
<td>The original <code>.nc</code> / <code>.cl</code> files</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h2 id="examples">Examples</h2>
|
||||
<p>The examples below show how to write it. Provide the item values together with the CAD and NC files; mark estimates, and give the spindle model and cutter brand + product ID where you can, so the engineer can fill any gap.</p>
|
||||
<p>These files include spindle chart photos, cutter catalog pages (e.g. <code>cmtec-CEXCRSH3120005.pdf</code>), CAD (STL/STEP), and NC programs; note the filename next to the matching item.</p>
|
||||
<h3 id="example-1--pocketed-plate-3-axis-steel">Example 1 — Pocketed plate, 3-axis, steel</h3>
|
||||
<pre><code class="lang-markdown"># Cover plate — TMV-720A 3-axis
|
||||
|
||||
Pocketed S50C cover plate roughed and finished on a 3-axis vertical machining center (VMC).
|
||||
Goal: verify spindle load on the deep pocket and trim cycle time.
|
||||
|
||||
## Machine
|
||||
Model: TongTai TMV-720A, 3-axis VMC
|
||||
Tool mount: (0, 0, 0) mm (where the tool is equipped; taken as the reference point)
|
||||
Table mount: (-450, -340, -630) mm (fixture & workpiece, relative to the tool mount)
|
||||
Controller: Fanuc
|
||||
Strokes: X720 Y420 Z460 mm ; rapid 20000 mm/min ; max spindle 8000 rpm
|
||||
|
||||
## Spindle
|
||||
Brand/model: TongTai TMV-720A standard 8000 rpm spindle (BT40)
|
||||
Source: TMV-720A catalog power–torque chart — attachment fanuc-at12-12000i.png (15-min rating below; with the image you need not transcribe these)
|
||||
Power (kW vs rpm): 0@0, 7.5@1500, 7.5@4500, 4@8000
|
||||
Torque (Nm vs rpm): 50@1500, 37@2000, 30@2600, 19@4000, 12@6000, 8@8000
|
||||
|
||||
## Workpiece
|
||||
Raw stock: block 140 x 90 x 50 mm
|
||||
Design: cover-plate.stl
|
||||
Material: S50C
|
||||
|
||||
## Program zero
|
||||
G54 = top centre of the block — Z0 at the top face, X0/Y0 at the block centre.
|
||||
|
||||
## Fixture
|
||||
Machine vise — vise.stl, clamps below the part top (collision only).
|
||||
|
||||
## Coolant
|
||||
Water-soluble emulsion (flood)
|
||||
|
||||
## Tools
|
||||
T1 face mill brand NTM, product TXE1000 (D50, exact P/N missing)
|
||||
D50 6 inserts flute 6 tool length 60 holder Ø60 x 50 mm stick-out 80
|
||||
T2 flat end brand cmtec, product CEXCRSH3120005 (catalog: cmtec-CEXCRSH3120005.pdf)
|
||||
D12 R0 4 flutes helix 30° rake 10° flute 30 tool length 90 holder Ø40 x 63 stick-out 95
|
||||
T3 flat end brand cmtec (no exact P/N)
|
||||
D6 R0 4 flutes helix 30° flute 20 tool length 70 holder Ø25 x 60 stick-out 75
|
||||
|
||||
## NC Files (folder `NC/`)
|
||||
O0010.NC face + rough the pocket with T1/T2 — watch spindle load near the deep pocket
|
||||
O0020.NC profile + floor finish with T3
|
||||
</code></pre>
|
||||
<h3 id="example-2--relief-part-5-axis-aluminum">Example 2 — Relief part, 5-axis, aluminum</h3>
|
||||
<pre><code class="lang-markdown"># Airplane relief — 5-axis VMC
|
||||
|
||||
Airplane + logo lettering milled from a round Al6061T6 billet on a
|
||||
5-axis vertical machining center (VMC). Goal: check the 5-axis toolpath for collisions/gouges, then optimize feed.
|
||||
|
||||
## Machine
|
||||
Model: 5-axis VMC (example machine) (machine file: MachineTool/Vmc5x/Vmc5x.mt)
|
||||
Config: table-C / spindle-B (C rotary on the table, B tilt on the spindle head)
|
||||
Pivots: C at (0, 0, 0), B at (-70, -180, 220) mm (relative to the C pivot)
|
||||
Tool mount: (-70, 70, 175) mm (where the tool is equipped)
|
||||
Controller: Fanuc
|
||||
Strokes: unbounded for this study ; rapid 20000 mm/min ; max spindle 8000 rpm
|
||||
|
||||
## Spindle
|
||||
Brand/model: built-in 8000 rpm spindle, ~5.5 kW (BT30 class)
|
||||
Source: machine builder spindle datasheet (power–torque chart; attachment b1-spindle-chart.png)
|
||||
Power (kW vs rpm): 0@0, 5.5@1500, 5.5@4500, 3@8000
|
||||
Torque (Nm vs rpm): 50@1500, 30@2000, 20@3000, 15@4000, 8@6000, 5@8000
|
||||
|
||||
## Workpiece
|
||||
Raw stock: round billet Ø65 x 50 mm
|
||||
Design: airplane.stl
|
||||
Material: Al6061T6
|
||||
|
||||
## Program zero
|
||||
G54 = top centre of the billet — Z0 at the top face, X0/Y0 on the axis. (G55+ unused.)
|
||||
|
||||
## Fixture
|
||||
Round fixture Ø100 x 10 mm under the billet (collision only).
|
||||
|
||||
## Coolant
|
||||
Air blast (dry)
|
||||
|
||||
## Tools
|
||||
<!-- brand given but NO product ID, so the engineer recovers the exact geometry
|
||||
and grade by measurement — slower and more error-prone. A brand + product ID
|
||||
is very helpful when the tool has one; off-brand tools without one must be measured. -->
|
||||
(all: brand cmtec, aluminum grade — product ID not given; carbide, 3 flutes,
|
||||
helix 37°, rake 15°, relief 5° [helix/rake estimated];
|
||||
holder Ø25 x 60 mm, 8 mm flute-to-nose clearance)
|
||||
T1 flat end D6 R0 flute 20 tool length 75
|
||||
T2 ball end D6 flute 20 tool length 75
|
||||
T3 ball end D3 flute 20 tool length 75
|
||||
T4 ball end D2 flute 8 tool length 75
|
||||
|
||||
## NC Files (34 programs in folder `NC/`; actual filenames below)
|
||||
01-ED6L20.NC, 02-ED6L20.NC … 10-ED6L28.NC roughing with T1 (flat D6)
|
||||
11-R3L25.NC … 22-R3L25.NC semi-finish with T2 (ball D6)
|
||||
23-R2L25.NC … 30-R2L25.NC finishing
|
||||
airplane-R1L12.NC, logo1-R1L12.NC, logo2-R1L12.NC, logo3-R1L12.NC detail airplane + logo with T4 (ball D2)
|
||||
(filename = seq-toolcode+cutlength; ED6 = flat end mill D6, R3/R2/R1 = ball, digit = nose radius)
|
||||
</code></pre>
|
||||
<div class="NOTE">
|
||||
<h5>Note</h5>
|
||||
<p>Example 2 mirrors a real <code>.hincproj</code> (machine name anonymized); Example 1 is representative with estimated values. The spindle model and the cutter <strong>brand + product ID</strong> are the anchors from which the engineer recovers the geometry and the power–torque chart.</p>
|
||||
</div>
|
||||
<h2 id="see-also">See Also</h2>
|
||||
<ul>
|
||||
<li><a class="xref" href="basic-simulation.html">Workflow: Basic Machining Simulation</a> — set up and run a simulation once the data is collected</li>
|
||||
<li><a href="../manual/setup/cutter.html">Cutter</a> — create the tools this list collects data for</li>
|
||||
<li><a href="../manual/setup/machine-tool.html">Machine Tool</a> — build the kinematic model from CAD</li>
|
||||
<li><a href="../manual/setup/program-zero-alignment.html">Program Zero Alignment</a> — how HiNC aligns the program zero</li>
|
||||
<li><a class="xref" href="../technique/machine-capability/spindle-capability.html">Spindle Capability</a> — the speed–power–torque model</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>
|
||||
@@ -143,10 +143,35 @@
|
||||
</code></pre>
|
||||
<p>The time format is <code><hours>:<minutes>:<seconds>.<fractional seconds></code>. Additional fields (e.g., <code>CH1</code>, <code>CH2</code>) may be included and will be available after mapping.</p>
|
||||
<h3 id="controller-data-format-for-two-layer-mapping">Controller Data Format (for Two-Layer Mapping)</h3>
|
||||
<p>The controller CSV must contain at least <code>FileNo</code>, <code>LineNo</code>, and <code>ActualTime</code>:</p>
|
||||
<pre><code class="lang-csv">FileNo,LineNo,ActualTime,MC.X,MC.Y,MC.Z,...
|
||||
1,6,00:00:00.030,0,0,0.37,...
|
||||
<p>The controller CSV must contain <code>FileNo</code>, <code>LineNo</code> and <strong>one of three time columns</strong>:</p>
|
||||
<pre><code class="lang-csv">FileNo,LineNo,ActualTimecode,ActualDateTime,MC.X,MC.Y,MC.Z,...
|
||||
1,6,00:00:00.030,2026-03-16 15:57:45.559000,0,0,0.37,...
|
||||
</code></pre>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Time column</th>
|
||||
<th>What it carries</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><code>ActualTimecode</code></td>
|
||||
<td>The run-relative timecode written by <a class="xref" href="../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_WriteStepFiles_">WriteStepFiles</a><small>(API)</small>. <code>ActualDateTime</code>, the absolute controller instant, rides beside it and is optional.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>ActualTime</code></td>
|
||||
<td>The legacy single column, still read. A bare timecode cell is used as-is; an absolute date-time cell is rebased through the mapping anchor's converter.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>EndTimecode</code></td>
|
||||
<td>The simulated end timecode, used as a fallback when neither of the above parses. Files written before that rename carry <code>AccumulatedTime</code>, which is also accepted.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<p>A header row with none of the three is refused by name rather than mapped to nothing. <strong>A file this
|
||||
product exported carries the first pair</strong>, not the legacy column — which is why a step file plays
|
||||
back and maps without editing its headers.</p>
|
||||
<hr>
|
||||
<h2 id="2-configure-time-mapping">2. Configure Time Mapping</h2>
|
||||
<h3 id="strategy-a-one-to-one-mapping-mapsinglebycsvfile">Strategy A: One-to-One Mapping (MapSingleByCsvFile)</h3>
|
||||
@@ -309,8 +334,8 @@ WriteStepFiles("Output/[NcName].step.csv");
|
||||
<ul>
|
||||
<li><a class="xref" href="force-training.html">Workflow: Milling Force Parameter Training</a> — using mapped data for coefficient training</li>
|
||||
<li><a class="xref" href="basic-simulation.html">Workflow: Basic Machining Simulation</a> — basic simulation setup</li>
|
||||
<li><a class="xref" href="../manual/runtime/step.html">Step</a> — step data model</li>
|
||||
<li><a class="xref" href="../manual/runtime/session-shell.html">Glossary: SessionShell Quick-Reference</a> — SessionShell quick-reference</li>
|
||||
<li><a class="xref" href="../technique/scripting/step.html">Step</a> — step data model</li>
|
||||
<li><a class="xref" href="../technique/scripting/session-shell.html">SessionShell</a> — SessionShell quick-reference</li>
|
||||
<li><a class="xref" href="examples/mapping-demo.html">Example Project: Mapping Controller and Sensor Data to Simulated NC Toolpaths and Updating Milling Coefficients</a> — mapping demo example project</li>
|
||||
<li><a class="xref" href="examples/milling-training-dynamometer.html">Example Project: Training Milling Coefficients with a Dynamometer</a> — dynamometer training example project</li>
|
||||
</ul>
|
||||
|
||||
@@ -115,12 +115,12 @@
|
||||
<td>The finished part — the headline image</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="../app-anatomy/player/strip-charts.html">Strip Charts</a></td>
|
||||
<td><a class="xref" href="../anatomy/execution/strip-charts.html">Strip Charts</a></td>
|
||||
<td><strong>Keep</strong></td>
|
||||
<td>Machining loads / availability over the whole program</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="../app-anatomy/session-message-panel/index.html">Session Messages</a></td>
|
||||
<td><a class="xref" href="../anatomy/shell/session-message-panel.html">Session Messages</a></td>
|
||||
<td><strong>Keep (optional)</strong></td>
|
||||
<td>The run log — proof the run was clean</td>
|
||||
</tr>
|
||||
@@ -130,7 +130,7 @@
|
||||
<td>Navigation only; no result content</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="../app-anatomy/player/selected-step-info-panel.html">Selected-Step Info column</a></td>
|
||||
<td><a class="xref" href="../anatomy/execution/selected-step-info-panel.html">Selected-Step Info column</a></td>
|
||||
<td>Drop</td>
|
||||
<td>Single-step detail; not a whole-run summary</td>
|
||||
</tr>
|
||||
@@ -138,28 +138,28 @@
|
||||
</table>
|
||||
<p>Use the three region quick-toggles in the top toolbar to collapse the columns you are not capturing, so each kept panel gets the full width/height.</p>
|
||||
<h2 id="3-main-3d-canvas--several-views">3. Main 3D Canvas — Several Views</h2>
|
||||
<p>Capture the finished part from several angles. Use the <strong>View</strong> menu on the <a href="../app-anatomy/renderingcanvas-tool-bar.html">Rendering Canvas Tool Bar</a> to switch between the orthographic and isometric presets (Isometric, Front, Back, Left, Right, Top, Bottom).</p>
|
||||
<p>Capture the finished part from several angles. Use the <strong>View</strong> menu on the <a class="xref" href="../anatomy/widget/renderingcanvas-tool-bar.html">Rendering Canvas Tool Bar</a> to switch between the orthographic and isometric presets (Isometric, Front, Back, Left, Right, Top, Bottom).</p>
|
||||
<ul>
|
||||
<li><strong>Isometric + Top</strong> are the most informative for most parts.</li>
|
||||
<li>Add <strong>Front / Right</strong> for thin or shallow parts, where the side profile carries the wall thickness.</li>
|
||||
</ul>
|
||||
<div class="TIP">
|
||||
<h5>Tip</h5>
|
||||
<p><strong>The tool-path overlay carries information too — capture both.</strong> The machined tool-path overlay (the CL strip) shows the machining coverage and the retract/plunge motion, but it can be dense enough to obscure the part shape underneath. It is worth capturing each view <strong>both ways</strong>: with the tool path on (machining coverage) and off (clean part). Toggle it with the <strong>Tool Path</strong> button on the <a href="../app-anatomy/player/player-extended-renderingcanvas-tool-bar.html">Player Extended Rendering-Canvas Tool Bar</a> (and <strong>Path Points</strong> off with it). The workpiece geometry is a separate display flag, so it stays visible when the tool path is off.</p>
|
||||
<p><strong>The tool-path overlay carries information too — capture both.</strong> The machined tool-path overlay (the CL strip) shows the machining coverage and the retract/plunge motion, but it can be dense enough to obscure the part shape underneath. It is worth capturing each view <strong>both ways</strong>: with the tool path on (machining coverage) and off (clean part). Toggle it with the <strong>Tool Path</strong> button on the <a class="xref" href="../anatomy/execution/execution-extended-renderingcanvas-tool-bar.html">Execution Extended RenderingCanvas Tool Bar</a> (and <strong>Path Points</strong> off with it). The workpiece geometry is a separate display flag, so it stays visible when the tool path is off.</p>
|
||||
</div>
|
||||
<h2 id="4-strip-charts--capture-wide">4. Strip Charts — Capture Wide</h2>
|
||||
<p>The strip charts read best <strong>wide</strong>: at full width the whole-program time axis is legible and the per-series peaks are distinct. Before capturing, widen the right dock (drag its divider, or collapse the Selected-Step Info column so the charts fill the dock). See <a href="../app-anatomy/player/strip-charts.html">Strip Charts</a> for the chart types (Availability, Roughness, Color-Index) and their legends.</p>
|
||||
<p>The strip charts read best <strong>wide</strong>: at full width the whole-program time axis is legible and the per-series peaks are distinct. Before capturing, widen the right dock (drag its divider, or collapse the Selected-Step Info column so the charts fill the dock). See <a class="xref" href="../anatomy/execution/strip-charts.html">Strip Charts</a> for the chart types (Availability, Roughness, Color-Index) and their legends.</p>
|
||||
<h2 id="5-session-messages--the-run-log">5. Session Messages — the Run Log</h2>
|
||||
<p>The <a href="../app-anatomy/session-message-panel/index.html">Session Messages</a> panel's <strong>Shell / NC / Step</strong> tabs are the run log. <strong>Zero errors across all three tabs</strong> is the single strongest piece of report evidence that the run was clean. Use the panel's <strong>Export</strong> action to save the full log alongside the report.</p>
|
||||
<p>The <a class="xref" href="../anatomy/shell/session-message-panel.html">Session Messages</a> panel's <strong>Shell / NC / Step</strong> tabs are the run log. <strong>Zero errors across all three tabs</strong> is the single strongest piece of report evidence that the run was clean. Use the panel's <strong>Export</strong> action to save the full log alongside the report.</p>
|
||||
<h2 id="6-assemble">6. Assemble</h2>
|
||||
<p>Combine the captures into the report: a multi-view montage of the finished part, the wide strip charts, and (optionally) the session log. Pair each with a one-line caption stating what it shows (part geometry, load history, clean run).</p>
|
||||
<h2 id="see-also">See Also</h2>
|
||||
<ul>
|
||||
<li><a href="basic-simulation.html">Basic Machining Simulation</a> — build and run the project first</li>
|
||||
<li><a href="../app-anatomy/player/strip-charts.html">Strip Charts</a> — chart types and legends</li>
|
||||
<li><a href="../app-anatomy/player/player-extended-renderingcanvas-tool-bar.html">Player Extended Rendering-Canvas Tool Bar</a> — the Tool Path / Path Points toggles</li>
|
||||
<li><a href="../app-anatomy/session-message-panel/index.html">Session Message Panel</a> — Shell / NC / Step tabs and Export</li>
|
||||
<li><a class="xref" href="../manual/runtime/session-shell.html">Glossary: SessionShell Quick-Reference</a> — SessionShell quick-reference</li>
|
||||
<li><a class="xref" href="../anatomy/execution/strip-charts.html">Strip Charts</a> — chart types and legends</li>
|
||||
<li><a class="xref" href="../anatomy/execution/execution-extended-renderingcanvas-tool-bar.html">Execution Extended RenderingCanvas Tool Bar</a> — the Tool Path / Path Points toggles</li>
|
||||
<li><a class="xref" href="../anatomy/shell/session-message-panel.html">Session Message Panel</a> — Shell / NC / Step tabs and Export</li>
|
||||
<li><a class="xref" href="../technique/scripting/session-shell.html">SessionShell</a> — SessionShell quick-reference</li>
|
||||
</ul>
|
||||
|
||||
</article>
|
||||
|
||||
@@ -12,6 +12,12 @@
|
||||
<div class="toc" id="toc">
|
||||
|
||||
<ul class="nav level1">
|
||||
<li>
|
||||
<a href="index.html" name="" title="Overview">Overview</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="project-data-checklist.html" name="" title="Project Data Checklist">Project Data Checklist</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="basic-simulation.html" name="" title="Basic Simulation">Basic Simulation</a>
|
||||
</li>
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
|
||||
{"items":[{"name":"Basic Simulation","href":"basic-simulation.html","topicHref":"basic-simulation.html"},{"name":"Project Construction","href":"project-construction.html","topicHref":"project-construction.html"},{"name":"Milling Force Parameter Training","href":"force-training.html","topicHref":"force-training.html"},{"name":"NC Optimization","href":"nc-optimization.html","topicHref":"nc-optimization.html"},{"name":"Sensor Data Mapping","href":"sensor-mapping.html","topicHref":"sensor-mapping.html"},{"name":"Geometry Validation","href":"geometry-validation.html","topicHref":"geometry-validation.html"},{"name":"Simulation Report","href":"simulation-report.html","topicHref":"simulation-report.html"},{"name":"Dynamometer Experiment SOP","href":"dynamometer-experiment-sop.html","topicHref":"dynamometer-experiment-sop.html"},{"name":"Examples","href":"examples/index.html","tocHref":"examples/toc.html","topicHref":"examples/index.html","homepage":"examples/index.html"}]}
|
||||
{"items":[{"name":"Overview","href":"index.html","topicHref":"index.html"},{"name":"Project Data Checklist","href":"project-data-checklist.html","topicHref":"project-data-checklist.html"},{"name":"Basic Simulation","href":"basic-simulation.html","topicHref":"basic-simulation.html"},{"name":"Project Construction","href":"project-construction.html","topicHref":"project-construction.html"},{"name":"Milling Force Parameter Training","href":"force-training.html","topicHref":"force-training.html"},{"name":"NC Optimization","href":"nc-optimization.html","topicHref":"nc-optimization.html"},{"name":"Sensor Data Mapping","href":"sensor-mapping.html","topicHref":"sensor-mapping.html"},{"name":"Geometry Validation","href":"geometry-validation.html","topicHref":"geometry-validation.html"},{"name":"Simulation Report","href":"simulation-report.html","topicHref":"simulation-report.html"},{"name":"Dynamometer Experiment SOP","href":"dynamometer-experiment-sop.html","topicHref":"dynamometer-experiment-sop.html"},{"name":"Examples","href":"examples/index.html","tocHref":"examples/toc.html","topicHref":"examples/index.html","homepage":"examples/index.html"}]}
|
||||
|
||||
Reference in New Issue
Block a user