fix SoftNcRunner GM code normalization.

This commit is contained in:
2026-05-16 18:08:13 +08:00
parent e026da61b3
commit 8b285cc863
765 changed files with 18689 additions and 9785 deletions
Binary file not shown.

After

Width:  |  Height:  |  Size: 155 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

@@ -0,0 +1,185 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CAM Floating-Point Drift Triggers Floor-Contact Force Peaks | HiAPI-C# 2025 </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="CAM Floating-Point Drift Triggers Floor-Contact Force Peaks | HiAPI-C# 2025 ">
<link rel="icon" href="../../img/HiAPI.favicon.ico">
<link rel="stylesheet" href="../../public/docfx.min.css">
<link rel="stylesheet" href="../../public/main.css">
<meta name="docfx:navrel" content="../../toc.html">
<meta name="docfx:tocrel" content="toc.html">
<meta name="docfx:rel" content="../../">
<meta name="loc:inThisArticle" content="In this article">
<meta name="loc:searchResultsCount" content="{count} results for &quot;{query}&quot;">
<meta name="loc:searchNoResults" content="No results for &quot;{query}&quot;">
<meta name="loc:tocFilter" content="Filter by title">
<meta name="loc:nextArticle" content="Next">
<meta name="loc:prevArticle" content="Previous">
<meta name="loc:themeLight" content="Light">
<meta name="loc:themeDark" content="Dark">
<meta name="loc:themeAuto" content="Auto">
<meta name="loc:changeTheme" content="Change theme">
<meta name="loc:copy" content="Copy">
<meta name="loc:downloadPdf" content="Download PDF">
<script type="module" src="./../../public/docfx.min.js"></script>
<script>
const theme = localStorage.getItem('theme') || 'auto'
document.documentElement.setAttribute('data-bs-theme', theme === 'auto' ? (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light') : theme)
</script>
</head>
<body class="tex2jax_ignore" data-layout="" data-yaml-mime="">
<header class="bg-body border-bottom">
<nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
<div class="container-xxl flex-nowrap">
<a class="navbar-brand" href="../../index.html">
<img id="logo" class="svg" src="../../img/HiAPI.logo.png" alt="">
</a>
<button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">
<i class="bi bi-three-dots"></i>
</button>
<div class="collapse navbar-collapse" id="navpanel">
<div id="navbar">
<form class="search" role="search" id="search">
<i class="bi bi-search"></i>
<input class="form-control" id="search-query" type="search" disabled placeholder="Search" autocomplete="off" aria-label="Search">
</form>
</div>
</div>
</div>
</nav>
</header>
<main class="container-xxl">
<div class="toc-offcanvas">
<div class="offcanvas-md offcanvas-start" tabindex="-1" id="tocOffcanvas" aria-labelledby="tocOffcanvasLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="tocOffcanvasLabel">Table of Contents</h5>
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" data-bs-target="#tocOffcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
<nav class="toc" id="toc"></nav>
</div>
</div>
</div>
<div class="content">
<div class="actionbar">
<button class="btn btn-lg border-0 d-md-none" type="button" data-bs-toggle="offcanvas" data-bs-target="#tocOffcanvas" aria-controls="tocOffcanvas" aria-expanded="false" aria-label="Show table of contents">
<i class="bi bi-list"></i>
</button>
<nav id="breadcrumb"></nav>
</div>
<article data-uid="">
<h1 id="cam-floating-point-drift-triggers-floor-contact-force-peaks">CAM Floating-Point Drift Triggers Floor-Contact Force Peaks</h1>
<p>Layered (Z-stepped) cuts can produce force peaks that look like simulation bugs but reflect a real physical sensitivity: sub-micron contact between the cutter bottom face and the previous-layer floor produces a large force difference, and CAM-generated NC programs often drift between layers by similar amounts on whichever axis carries the repeated path. This coupling between CAM floating-point drift and sub-micron floor sensitivity is rarely recognized in typical workflows; HiNC surfaces and diagnoses it through smart-tool-holder validation and force-simulation comparison.</p>
<p>See also <a class="xref" href="nc-optimization-principles.html">NC Optimization</a> and <a href="corner-behavior.html">Corner Feedrate Behavior</a>.</p>
<h2 id="phenomenon">Phenomenon</h2>
<p>In a Z-stepped uniform cut, one or two specific layers occasionally show a sharp force spike. In the example below, the X-direction force peak reaches ~865 N where adjacent layers stay near a ~477 N steady level on a D16 mm cutter in aluminum. Users often interpret this as a simulation anomaly because the NC optimizer slows the feedrate dramatically at the spike.</p>
<p><img src="cam-floating-point-drift-img/layered-cut.png" alt="Layered cut schematic">
<em>Schematic of a Z-stepped layered cut. Each horizontal trace is one layer; sub-thousandth-mm in-plane drift between layers (Y in this example) shifts where each layer enters and exits the previous-layer floor.</em></p>
<p><img src="cam-floating-point-drift-img/spike-per-rev-force.png" alt="Per-revolution force on a spike layer">
<em>Spike layer that contacts the previous-layer ridge — X peaks reach ~865 N.</em></p>
<p><img src="cam-floating-point-drift-img/normal-per-rev-force.png" alt="Per-revolution force on a normal layer">
<em>Adjacent normal layer at the &ldquo;same&rdquo; XY — X stays near ~477 N.</em></p>
<h2 id="mechanism">Mechanism</h2>
<p>Smart-tool-holder measurements show that the cutter bottom face is sensitive to sub-micron contact with the previous-layer floor:</p>
<ul>
<li>A gap of less than 1 μm already produces a measurable force difference.</li>
<li>Below the minimum effective chip thickness — 7.5 μm in this example, and in general varying with workpiece material and cutter edge geometry — no chip is formed, but friction on the cutter's lower contact band still loads the spindle.</li>
<li>In simulation, modeling the cutter floor as lifted by 0.15 μm versus not lifted yields visibly different spindle-torque waveforms — and only the lifted version matches the real smart-holder torque shape.</li>
</ul>
<p>Simulation force peaks driven by floor contact therefore reflect a real sensitivity, not a numerical artifact.</p>
<h2 id="nc-side-trigger-layer-to-layer-drift">NC-Side Trigger: Layer-to-Layer Drift</h2>
<p>CAM-generated NC programs frequently drift by ~0.001 mm between consecutive Z layers when they traverse the &ldquo;same&rdquo; position. In the example below, the drift falls on Y; in other programs it may fall on X or any in-plane axis along the repeated path.</p>
<pre><code>N1000 G01 Y10.001 (layers 1..4)
N1100 G01 Y10.002 (layer 5)
N… G01 Y10.005 (last layer)
</code></pre>
<p>Each layer lands at a slightly different position relative to the previous floor. Some layers contact the leftover ridge from the layer above; others miss it. The contacting layers exhibit the peak.</p>
<h2 id="why-the-simulation-peak-is-real">Why the Simulation Peak Is Real</h2>
<p>The simulation force model simplifies how the cutter upper portion engages when the gap is below the minimum effective chip thickness, so the simulated peak may be slightly larger than the real peak. For ductile materials (aluminum being a representative case), friction dominates the cutting force, so the overestimate is small.</p>
<p>The actual machine has independent safety margins: the controller decelerates at corners (see <a href="corner-behavior.html">Corner Feedrate Behavior</a>), and cutter rotation provides a flute-level <a href="#probabilistic-peak-dodging">Probabilistic Peak Dodging</a> effect.</p>
<p>In the example above, the cutter remains inside its safe limits at the spike peak (~865 N versus the ~477 N baseline). Harder materials would be more prone to flute breakage at the same NC, but the fix is the same.</p>
<h2 id="probabilistic-peak-dodging">Probabilistic Peak Dodging</h2>
<p>For a multi-flute cutter, whether a contacting layer actually produces a peak depends on the flute phase at the contact moment. Force samples within one flute period typically split into:</p>
<ul>
<li>~6 samples in the high-force window (e.g., above ~500 N in the spike-layer chart above)</li>
<li>~3 samples low enough to &ldquo;miss&rdquo; the spike</li>
</ul>
<p>i.e., ~2/3 fall in the high-force window and ~1/3 miss it. This is why neighboring layers can give different results despite nominally identical geometry. It also explains why the issue is a yield problem rather than a deterministic failure — and why peaks still appear after fixing some, but not all, of the drifting NC lines.</p>
<h2 id="mitigation-fix-the-nc">Mitigation: Fix the NC</h2>
<p>Clean up the NC program rather than tune the simulation:</p>
<ul>
<li>Identify the drifting positions (typically a few dozen lines in a layered pocket) and snap the drifting coordinate to a consistent value across layers.</li>
<li>This restores a clean floor-to-floor relationship and removes the spurious peaks.</li>
</ul>
<p>Tuning the simulation around the peak would mask a signal that the controller and the cutter both feel in practice.</p>
<h2 id="when-the-nc-cannot-be-modified">When the NC Cannot Be Modified</h2>
<p>For mature client products the NC is often a frozen standard, and the floor-contact peaks have to be accepted on the simulation side. Two optimizer-side levers absorb the peaks without modifying the NC:</p>
<ul>
<li><p><strong><a class="xref" href="../../api/Hi.NcOpt.NcOptOption.html#Hi_NcOpt_NcOptOption_MinFeedPerTooth_mm">MinFeedPerTooth_mm</a> (API)</strong> — a floor on the optimizer's chosen feed-per-tooth. Set it to a scaled fraction of the original feed so the optimizer cannot slow further at a single-revolution spike:</p>
<pre><code class="lang-csharp">MachiningStepBuilt += (preStep, curStep) =&gt;
{
curStep.UpdateNcOptOption(opt =&gt;
{
opt.MinFeedPerTooth_mm = FeedPerTooth_mm * scale;
});
};
</code></pre>
</li>
<li><p><strong><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_OptYieldingUtilizationFactor">OptYieldingUtilizationFactor</a> (API)</strong> — raise the acceptance threshold for the yield-stress ratio based on the observed stable extreme (e.g., if 150 % is routinely tolerated, set <code>1.5</code>). See <a href="nc-optimization-principles.html#tuning-peak-tolerance">Tuning Peak Tolerance</a> for the full set of per-metric factors and which can be relaxed.</p>
</li>
</ul>
<p>Prefer these over modifying cutting coefficients to suppress peaks. The coefficients describe material behaviour; tuning them away from physical values masks the real signal for every downstream calculation (force, moment, wear, thermal).</p>
<div class="NOTE">
<h5>Note</h5>
<p>The current API does not filter single-revolution spikes out of the optimization basis. If a client policy requires excluding such spikes, apply the levers above at the <a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_MachiningStepBuilt">MachiningStepBuilt</a> (API) callback so per-step settings can be overridden without disturbing the global option.</p>
</div>
<h2 id="see-also">See Also</h2>
<ul>
<li><a href="corner-behavior.html">Corner Feedrate Behavior</a> — Force-peak interaction with controller deceleration at corners</li>
<li><a href="smart-holder-training.html">Smart Holder Training</a> — Smart tool holder measurement that confirms sub-micron sensitivity</li>
<li><a href="relief-face-avoidance.html">Relief Face Avoidance</a> — Related geometry sensitivity on the relief side</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>
@@ -101,6 +101,15 @@
<li>low1/low2/low3: S1200, F200/F400/F600</li>
<li>high1/high2/high3: S7200, F1200/F2400/F3600</li>
</ul>
<h2 id="why-corners-produce-force-peaks">Why Corners Produce Force Peaks</h2>
<p>Independently of feed-rate optimization, corners themselves generate force peaks that can be 34× the straight-line steady force. The mechanism is geometric:</p>
<ul>
<li><strong>Contact area grows at the corner.</strong> Two cut segments share the corner's swept volume, so during the turn the engaged arc on the cutter exceeds the steady-state arc.</li>
<li><strong>Friction force scales with contact area.</strong> For ductile materials (aluminum, nickel) friction is a large share of the cutting force, so the area increase translates directly into a torque/force peak. Both bending moment and torque feel it.</li>
<li><strong>CAM can amplify the contact area.</strong> Layer-to-layer drift or imperfect corner alignment in CAM-generated NC leaves residual ridges that increase the corner sweep on subsequent layers; the peak then reflects both the geometric corner effect and the CAM-side drift. See <a href="cam-floating-point-drift.html">CAM Floating-Point Drift</a> for the floor-contact mechanism that compounds with this.</li>
<li><strong>Peaks are expected, not artifacts.</strong> As long as the corner geometry is correctly aligned, peaks will appear in simulation; absent them, suspect a misalignment.</li>
</ul>
<p>A peak contained inside a single revolution is itself a partial safety margin — controller corner smoothing and spindle inertia together absorb a single-rev overshoot. Sustained peaks across multiple revolutions are a different story: they drag the spindle below commanded rpm and compound through feed-per-tooth growth. See <a href="nc-optimization-principles.html#tuning-peak-tolerance">Tuning Peak Tolerance</a> for which metrics can be relaxed in response and which cannot.</p>
<h2 id="force-simulation-error-analysis">Force Simulation Error Analysis</h2>
<p>The figure below shows the force simulation error after applying and comparing dynamometer data, with blue-to-red indicating error ratio from low to high:</p>
<p><img src="corner-behavior-img/corner-force-overview.png" alt="Corner force error overview"></p>
@@ -0,0 +1,134 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Cutter Adjustment Levers for Force Reduction | HiAPI-C# 2025 </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Cutter Adjustment Levers for Force Reduction | HiAPI-C# 2025 ">
<link rel="icon" href="../../img/HiAPI.favicon.ico">
<link rel="stylesheet" href="../../public/docfx.min.css">
<link rel="stylesheet" href="../../public/main.css">
<meta name="docfx:navrel" content="../../toc.html">
<meta name="docfx:tocrel" content="toc.html">
<meta name="docfx:rel" content="../../">
<meta name="loc:inThisArticle" content="In this article">
<meta name="loc:searchResultsCount" content="{count} results for &quot;{query}&quot;">
<meta name="loc:searchNoResults" content="No results for &quot;{query}&quot;">
<meta name="loc:tocFilter" content="Filter by title">
<meta name="loc:nextArticle" content="Next">
<meta name="loc:prevArticle" content="Previous">
<meta name="loc:themeLight" content="Light">
<meta name="loc:themeDark" content="Dark">
<meta name="loc:themeAuto" content="Auto">
<meta name="loc:changeTheme" content="Change theme">
<meta name="loc:copy" content="Copy">
<meta name="loc:downloadPdf" content="Download PDF">
<script type="module" src="./../../public/docfx.min.js"></script>
<script>
const theme = localStorage.getItem('theme') || 'auto'
document.documentElement.setAttribute('data-bs-theme', theme === 'auto' ? (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light') : theme)
</script>
</head>
<body class="tex2jax_ignore" data-layout="" data-yaml-mime="">
<header class="bg-body border-bottom">
<nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
<div class="container-xxl flex-nowrap">
<a class="navbar-brand" href="../../index.html">
<img id="logo" class="svg" src="../../img/HiAPI.logo.png" alt="">
</a>
<button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">
<i class="bi bi-three-dots"></i>
</button>
<div class="collapse navbar-collapse" id="navpanel">
<div id="navbar">
<form class="search" role="search" id="search">
<i class="bi bi-search"></i>
<input class="form-control" id="search-query" type="search" disabled placeholder="Search" autocomplete="off" aria-label="Search">
</form>
</div>
</div>
</div>
</nav>
</header>
<main class="container-xxl">
<div class="toc-offcanvas">
<div class="offcanvas-md offcanvas-start" tabindex="-1" id="tocOffcanvas" aria-labelledby="tocOffcanvasLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="tocOffcanvasLabel">Table of Contents</h5>
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" data-bs-target="#tocOffcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
<nav class="toc" id="toc"></nav>
</div>
</div>
</div>
<div class="content">
<div class="actionbar">
<button class="btn btn-lg border-0 d-md-none" type="button" data-bs-toggle="offcanvas" data-bs-target="#tocOffcanvas" aria-controls="tocOffcanvas" aria-expanded="false" aria-label="Show table of contents">
<i class="bi bi-list"></i>
</button>
<nav id="breadcrumb"></nav>
</div>
<article data-uid="">
<h1 id="cutter-adjustment-levers-for-force-reduction">Cutter Adjustment Levers for Force Reduction</h1>
<p>When force peaks push close to or beyond tool limits, three cutter-side levers reduce peaks without changing the NC or the toolpath.</p>
<h2 id="shorten-tool-overhang">Shorten Tool Overhang</h2>
<p>The unsupported tool length above the cut multiplies bending stress. A common installation leaves 15 mm or more above the flute start; reducing this exposure toward ~5 mm typically produces a large drop in the yield-stress ratio for the same NC.</p>
<p>Process documents may fix the overhang for procedural reasons. If the engineering envelope allows, shortening the overhang is the cheapest mitigation before tuning anything else.</p>
<h2 id="adjust-core-radius">Adjust Core Radius</h2>
<p>Heavy-cut cutters narrow the chip-evacuation flute to thicken the cutter core, raising bending strength. The exact core radius cannot be measured externally; it is an empirical input.</p>
<p>The HiNC default is <code>0.6</code> (cutter-core radius as a fraction of cutter radius) for 4-flute end mills. If the cutter routinely tolerates yield-stress ratios around 200 % without breakage, the actual core is thicker than the default — raise the value in steps (e.g., <code>0.7</code>) until the simulated ratio aligns with the observed safety margin.</p>
<h2 id="upgrade-cutter-material">Upgrade Cutter Material</h2>
<p>The default <code>WC-Co6-800nm</code> is a low-cost grade. Finer-grain or coated grades have higher yielding stress and better thermal tolerance:</p>
<ul>
<li><strong><code>WC-Co6-TiC-400nm</code></strong> — finer grain with TiC. A reasonable upgrade when the cutter quality is unknown but suspected better than the baseline.</li>
</ul>
<p>For a known cutter, configure the matching material file under <code>Resource/CutterMaterial/</code> rather than guessing the grade.</p>
<h2 id="see-also">See Also</h2>
<ul>
<li><a href="machinability.html">Evaluating Process Machinability</a> — Reading the yield-stress ratio and the spindle ratios</li>
<li><a href="nc-optimization-principles.html#tuning-peak-tolerance">Tuning Peak Tolerance</a> — Per-metric utilization factors and when each is safe to relax</li>
<li><a href="wear.html">Tool Life &amp; Wear</a> — Wear modes affected by material grade</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>
@@ -96,8 +96,10 @@
<ul>
<li><a href="machinability.html">Process Machinability</a> — Evaluating process machinability</li>
<li><a href="wear.html">Tool Life &amp; Wear</a> — Tool life and wear modes</li>
<li><a href="cutter-adjustment-levers.html">Cutter Adjustment Levers</a> — Overhang, core radius, and material-grade levers for reducing force peaks without changing the NC</li>
<li><a href="relief-face-avoidance.html">Relief Face Avoidance</a> — Minimum relief angle and clearance</li>
<li><a href="radial-angle-measurement.html">Radial Angle Measurement</a> — Measuring radial rake and relief angles</li>
<li><a href="cam-floating-point-drift.html">CAM Floating-Point Drift</a> — A subtle CAM-NC issue that most workflows miss: sub-thousandth-mm drift between layers triggers floor-contact force peaks. HiNC detects and diagnoses it.</li>
</ul>
<h2 id="simulation-performance">Simulation Performance</h2>
<ul>
@@ -93,7 +93,7 @@ If the value significantly exceeds 100% — roughly speaking, above 200% — too
<blockquote>
<p><strong>Note</strong>: The default simulation uses per-revolution milling mode, where one simulation step equals one spindle revolution.</p>
</blockquote>
<p><strong>Yielding Stress Ratio</strong> is a percentage indicator with the tool material's breakage force as the denominator. The numerator is the simulation step's absolute force <a class="xref" href="../../api/Hi.MachiningSteps.MachiningStep.html#Hi_MachiningSteps_MachiningStep_MaxAbsForce_N">MaxAbsForce_N</a><small>(API)</small>. Compared to using the absolute force value directly as a limit, the ratio incorporates tool material mechanics and more accurately reflects the tool's actual safety margin. The optimization target force <a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_OptPreferedForce_N">OptPreferedForce_N</a><small>(API)</small> represents the desired MaxAbsForce_N after optimization.</p>
<p><strong>Yielding Stress Ratio</strong> is a percentage indicator with the tool material's breakage force as the denominator. The numerator is the simulation step's absolute force <a class="xref" href="../../api/Hi.MachiningSteps.MachiningStep.html#Hi_MachiningSteps_MachiningStep_MaxAbsForce_N">MaxAbsForce_N</a><small>(API)</small>. Compared to using the absolute force value directly as a limit, the ratio incorporates tool material mechanics and more accurately reflects the tool's actual safety margin. The optimization target force <a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_OptPreferedForce_N">OptPreferedForce_N</a><small>(API)</small> represents the desired MaxAbsForce_N after optimization.</p>
<p>For small tools, breakage is typically caused by insufficient tool force capacity, and breakage is based on the <strong>Yielding Stress Ratio</strong>.</p>
<p>For small-to-medium tools, breakage is typically caused by insufficient spindle performance, and breakage is based on the <strong>Max Spindle Torque Ratio</strong> or <strong>Max Spindle Power Ratio</strong>.
When cutting resistance exceeds spindle performance, the machine feed rate remains constant but the spindle speed continuously decreases, causing the feed per tooth to continuously increase, which drives cutting forces to spike until tool breakage or machine stoppage.
@@ -119,6 +119,41 @@ however, for non-re-interpolatable regions, although acceleration/deceleration l
<h2 id="tool-breakage-solutions">Tool Breakage Solutions</h2>
<p>Modify the toolpath to reduce cutting width/depth, or use HiNC's optimization feature to adjust feed rates, bringing the <strong>yielding stress ratio</strong>, <strong>max spindle torque ratio</strong>, and <strong>max spindle power ratio</strong> below 100%.</p>
<p>For detailed descriptions of these indicators and tool breakage criteria, refer to &quot;<a href="machinability.html">Evaluating Process Machinability</a>&quot;.</p>
<h2 id="tuning-peak-tolerance">Tuning Peak Tolerance</h2>
<p>Optimization defaults treat the 100 % line on every ratio as a hard ceiling. In practice some metrics tolerate routine excursions and others don't. The per-metric <code>Opt*UtilizationFactor</code> levers let the optimizer accept higher peaks where physically safe.</p>
<table>
<thead>
<tr>
<th>Metric</th>
<th>Factor (API)</th>
<th>When to raise</th>
</tr>
</thead>
<tbody>
<tr>
<td>Yielding stress</td>
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_OptYieldingUtilizationFactor">OptYieldingUtilizationFactor</a></td>
<td><strong>Per-instant.</strong> Safe to raise. If 150 % is routinely tolerated without breakage, set <code>1.5</code>. Controller corner smoothing and spindle inertia absorb a single-revolution overshoot.</td>
</tr>
<tr>
<td>Spindle torque</td>
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_OptSpindleTorqueUtilizationFactor">OptSpindleTorqueUtilizationFactor</a></td>
<td><strong>Cumulative.</strong> Keep at 1. Sustained excursions stall the spindle: feed continues, rpm drops, feed-per-tooth grows, forces spike further.</td>
</tr>
<tr>
<td>Spindle power</td>
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_OptSpindlePowerUtilizationFactor">OptSpindlePowerUtilizationFactor</a></td>
<td><strong>Cumulative.</strong> Keep at 1. Same reason as torque.</td>
</tr>
<tr>
<td>Thermal yield</td>
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_OptThermalYieldUtilizationFactor">OptThermalYieldUtilizationFactor</a></td>
<td><strong>Long-term.</strong> Can be raised modestly if the calibrated tool material is more thermally tolerant than the conservative defaults — see <a href="machinability.html#thermal-plastic-deformation-of-cutting-edge">Thermal Plastic Deformation of Cutting Edge</a>.</td>
</tr>
</tbody>
</table>
<p>Rule of thumb: relax per-instant per-step metrics based on observed stable extremes; never relax cumulative metrics.</p>
<p>For a complementary feed-rate floor lever — useful when the NC cannot be modified to remove single-revolution peaks — see <a class="xref" href="../../api/Hi.NcOpt.NcOptOption.html#Hi_NcOpt_NcOptOption_MinFeedPerTooth_mm">MinFeedPerTooth_mm</a> (API) and <a href="cam-floating-point-drift.html#when-the-nc-cannot-be-modified">When the NC Cannot Be Modified</a>.</p>
<h2 id="thermal-edge-chipping-solutions">Thermal Edge Chipping Solutions</h2>
<p>After addressing tool breakage issues, reduce the spindle speed to allow sufficient time for the cutting edge to dissipate heat.</p>
<p>Note that whether the coolant is properly directed at the cutting edge has a significant impact.</p>
@@ -24,12 +24,18 @@
<li>
<a href="wear.html" name="" title="Tool Life &amp; Wear">Tool Life &amp; Wear</a>
</li>
<li>
<a href="cutter-adjustment-levers.html" name="" title="Cutter Adjustment Levers">Cutter Adjustment Levers</a>
</li>
<li>
<a href="relief-face-avoidance.html" name="" title="Relief Face Avoidance">Relief Face Avoidance</a>
</li>
<li>
<a href="radial-angle-measurement.html" name="" title="Radial Angle Measurement">Radial Angle Measurement</a>
</li>
<li>
<a href="cam-floating-point-drift.html" name="" title="CAM Floating-Point Drift">CAM Floating-Point Drift</a>
</li>
<li>
<a href="cpu-usage.html" name="" title="CPU Usage in Simulation">CPU Usage in Simulation</a>
</li>
@@ -1,2 +1,2 @@
{"items":[{"name":"Overview","href":"index.html","topicHref":"index.html"},{"name":"Milling Physics Coordinates","href":"milling-physics-coordinates.html","topicHref":"milling-physics-coordinates.html"},{"name":"Process Machinability","href":"machinability.html","topicHref":"machinability.html"},{"name":"Tool Life & Wear","href":"wear.html","topicHref":"wear.html"},{"name":"Relief Face Avoidance","href":"relief-face-avoidance.html","topicHref":"relief-face-avoidance.html"},{"name":"Radial Angle Measurement","href":"radial-angle-measurement.html","topicHref":"radial-angle-measurement.html"},{"name":"CPU Usage in Simulation","href":"cpu-usage.html","topicHref":"cpu-usage.html"},{"name":"Corner Feedrate Behavior","href":"corner-behavior.html","topicHref":"corner-behavior.html"},{"name":"Smart Holder Training","href":"smart-holder-training.html","topicHref":"smart-holder-training.html"},{"name":"Spindle Capability","href":"spindle-capability.html","topicHref":"spindle-capability.html"},{"name":"Spindle Power Evaluation","href":"spindle-power-evaluation.html","topicHref":"spindle-power-evaluation.html"},{"name":"NC Optimization Principles","href":"nc-optimization-principles.html","topicHref":"nc-optimization-principles.html"}]}
{"items":[{"name":"Overview","href":"index.html","topicHref":"index.html"},{"name":"Milling Physics Coordinates","href":"milling-physics-coordinates.html","topicHref":"milling-physics-coordinates.html"},{"name":"Process Machinability","href":"machinability.html","topicHref":"machinability.html"},{"name":"Tool Life & Wear","href":"wear.html","topicHref":"wear.html"},{"name":"Cutter Adjustment Levers","href":"cutter-adjustment-levers.html","topicHref":"cutter-adjustment-levers.html"},{"name":"Relief Face Avoidance","href":"relief-face-avoidance.html","topicHref":"relief-face-avoidance.html"},{"name":"Radial Angle Measurement","href":"radial-angle-measurement.html","topicHref":"radial-angle-measurement.html"},{"name":"CAM Floating-Point Drift","href":"cam-floating-point-drift.html","topicHref":"cam-floating-point-drift.html"},{"name":"CPU Usage in Simulation","href":"cpu-usage.html","topicHref":"cpu-usage.html"},{"name":"Corner Feedrate Behavior","href":"corner-behavior.html","topicHref":"corner-behavior.html"},{"name":"Smart Holder Training","href":"smart-holder-training.html","topicHref":"smart-holder-training.html"},{"name":"Spindle Capability","href":"spindle-capability.html","topicHref":"spindle-capability.html"},{"name":"Spindle Power Evaluation","href":"spindle-power-evaluation.html","topicHref":"spindle-power-evaluation.html"},{"name":"NC Optimization Principles","href":"nc-optimization-principles.html","topicHref":"nc-optimization-principles.html"}]}
@@ -98,7 +98,7 @@
</ul>
<h2 id="api-reference">API Reference</h2>
<ul>
<li><a href="runtime-api.html">RuntimeApi Reference</a> — Categorized quick-reference table of all script commands</li>
<li><a href="session-shell.html">SessionShell Reference</a> — Categorized quick-reference table of all script commands</li>
</ul>
</article>
@@ -304,7 +304,7 @@
</table>
<hr>
<h2 id="registering-custom-step-variables">Registering Custom Step Variables</h2>
<p>Beyond default properties, you can register custom step variables using <a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_RegisterStepVariable_">RegisterStepVariable</a>:</p>
<p>Beyond default properties, you can register custom step variables using <a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_RegisterStepVariable_">RegisterStepVariable</a>:</p>
<pre><code class="lang-csharp">RegisterStepVariable(
&quot;ChipVolume&quot;, // key
&quot;Chip Volume&quot;, // display name
@@ -323,7 +323,7 @@ PlayNcFile(&quot;NC/file1.nc&quot;);
<li><strong>formatString</strong>: .NET numeric format string (can be null)</li>
<li><strong>variableFunction</strong>: Lambda that computes the value from a step (can be null)</li>
</ul>
<p>Registered variables appear in the UI and in output files from <a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_WriteStepFiles_">WriteStepFiles</a>.</p>
<p>Registered variables appear in the UI and in output files from <a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_WriteStepFiles_">WriteStepFiles</a>.</p>
<h3 id="indexer-access">Indexer Access</h3>
<p>Use the <a class="xref" href="../../api/Hi.MachiningSteps.MachiningStep.html#Hi_MachiningSteps_MachiningStep_Item_System_String_">this[string]</a> indexer to read/write custom data on a step:</p>
<pre><code class="lang-csharp">SessionStepBuilt += (preStep, curStep) =&gt; {
@@ -334,7 +334,7 @@ PlayNcFile(&quot;NC/file1.nc&quot;);
<hr>
<h2 id="accessing-step-data">Accessing Step Data</h2>
<h3 id="getmillingstep">GetMillingStep</h3>
<p><a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_GetMillingStep_">GetMillingStep</a> retrieves a step by index:</p>
<p><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_GetMillingStep_">GetMillingStep</a> retrieves a step by index:</p>
<pre><code class="lang-csharp">var step = GetMillingStep(100);
if (step != null)
{
@@ -342,7 +342,7 @@ if (step != null)
}
</code></pre>
<h3 id="stepcount">StepCount</h3>
<p><a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_StepCount">StepCount</a> returns the total number of steps:</p>
<p><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_StepCount">StepCount</a> returns the total number of steps:</p>
<pre><code class="lang-csharp">Message($&quot;Total steps: {StepCount}&quot;);
</code></pre>
<h3 id="iterating-all-steps">Iterating All Steps</h3>
@@ -354,16 +354,16 @@ if (step != null)
</code></pre>
<hr>
<h2 id="step-output-files">Step Output Files</h2>
<p>Steps can be exported to CSV using <a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_WriteStepFiles_">WriteStepFiles</a>:</p>
<p>Steps can be exported to CSV using <a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_WriteStepFiles_">WriteStepFiles</a>:</p>
<pre><code class="lang-csharp">WriteStepFiles(&quot;Output/[NcName].step.csv&quot;);
</code></pre>
<p>The CSV contains all default properties plus any registered custom variables. The file can be read back with <a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_PlayCsvFile_">PlayCsvFile</a>.</p>
<p>For waveform-level data (sub-step time resolution), use <a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_WriteShotFiles_">WriteShotFiles</a>:</p>
<p>The CSV contains all default properties plus any registered custom variables. The file can be read back with <a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_PlayCsvFile_">PlayCsvFile</a>.</p>
<p>For waveform-level data (sub-step time resolution), use <a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_WriteShotFiles_">WriteShotFiles</a>:</p>
<pre><code class="lang-csharp">WriteShotFiles(&quot;Output/[NcName].shot.csv&quot;, 1); // 1 ms time resolution
</code></pre>
<hr>
<h2 id="dynamically-registered-variables-training">Dynamically Registered Variables (Training)</h2>
<p>After executing <a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_TrainMillingPara_">TrainMillingPara</a> or <a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_ReTrainMillingPara_">ReTrainMillingPara</a>, two additional step variables are automatically registered for steps within the training region:</p>
<p>After executing <a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_TrainMillingPara_">TrainMillingPara</a> or <a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_ReTrainMillingPara_">ReTrainMillingPara</a>, two additional step variables are automatically registered for steps within the training region:</p>
<table>
<thead>
<tr>
@@ -387,7 +387,7 @@ if (step != null)
<ul>
<li><a href="step-intro.html">Simulation Step</a> — concept definition</li>
<li><a href="step-output.html">Simulation Step Output</a> — complete field reference</li>
<li><a class="xref" href="runtime-api.html">Glossary: RuntimeApi Quick-Reference</a>RuntimeApi quick-reference</li>
<li><a class="xref" href="session-shell.html">Glossary: SessionShell Quick-Reference</a>SessionShell quick-reference</li>
<li><a class="xref" href="../../workflows/basic-simulation.html">Workflow: Basic Machining Simulation</a> — simulation workflow producing steps</li>
<li><a class="xref" href="../../workflows/force-training.html">Workflow: Milling Force Parameter Training</a> — training workflow that adds step variables</li>
</ul>
@@ -88,8 +88,8 @@
<h1 id="glossary-script-commands">Glossary: Script Commands</h1>
<h2 id="what-is-a-script-command">What Is a Script Command?</h2>
<p>A <strong>script command</strong> is a C# statement executed by the HiNC scripting engine. Scripts directly reference members and methods of <a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html">RuntimeApi</a>, which serves as the global scope — no explicit object reference is needed.</p>
<pre><code class="lang-csharp">// These are all RuntimeApi members used directly as globals
<p>A <strong>script command</strong> is a C# statement executed by the HiNC scripting engine. Scripts directly reference members and methods of <a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html">SessionShell</a>, which serves as the global scope — no explicit object reference is needed.</p>
<pre><code class="lang-csharp">// These are all SessionShell members used directly as globals
EnablePhysics = true;
MachiningResolution_mm = 0.125;
PlayNcFile(&quot;NC/file1.nc&quot;);
@@ -145,19 +145,19 @@ Message(&quot;Done&quot;);
<h3 id="session-lifecycle">Session Lifecycle</h3>
<ol>
<li>Scripts execute in order on the <strong>Task</strong> page</li>
<li>A <a class="xref" href="../../api/Hi.Common.PacePlayer.html">PacePlayer</a><small>(API)</small> controls playback — script commands like <a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_PlayNcFile_">PlayNcFile</a><small>(API)</small> block until the NC program completes</li>
<li>Player control commands (<a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_Pace">Pace()</a><small>(API)</small>, <a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_Pause">Pause()</a><small>(API)</small>, <a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_Reset">Reset()</a><small>(API)</small>) interact with the <a class="xref" href="../../api/Hi.Common.PacePlayer.html">PacePlayer</a><small>(API)</small></li>
<li><a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_ResetRuntime_">ResetRuntime</a><small>(API)</small> clears event handlers, buffers, and runtime state</li>
<li>A <a class="xref" href="../../api/Hi.Common.PacePlayer.html">PacePlayer</a><small>(API)</small> controls playback — script commands like <a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_PlayNcFile_">PlayNcFile</a><small>(API)</small> block until the NC program completes</li>
<li>Player control commands (<a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_Pace">Pace()</a><small>(API)</small>, <a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_Pause">Pause()</a><small>(API)</small>, <a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_Reset">Reset()</a><small>(API)</small>) interact with the <a class="xref" href="../../api/Hi.Common.PacePlayer.html">PacePlayer</a><small>(API)</small></li>
<li><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_ResetRuntime_">ResetRuntime</a><small>(API)</small> clears event handlers, buffers, and runtime state</li>
</ol>
<h3 id="event-driven-execution">Event-Driven Execution</h3>
<p>Events like <a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_SessionStepBuilt">SessionStepBuilt</a><small>(API)</small> fire during simulation and allow per-step logic:</p>
<p>Events like <a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_SessionStepBuilt">SessionStepBuilt</a><small>(API)</small> fire during simulation and allow per-step logic:</p>
<pre><code class="lang-csharp">SessionStepBuilt += (preStep, curStep) =&gt; {
if (curStep != null)
Message($&quot;Step: ToolId={curStep.ToolId}&quot;);
};
PlayNcFile(&quot;NC/file1.nc&quot;);
</code></pre>
<p>Events are cleared by <a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_ResetRuntime_">ResetRuntime</a>.</p>
<p>Events are cleared by <a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_ResetRuntime_">ResetRuntime</a>.</p>
<hr>
<h2 id="script-commands-in-nc-code">Script Commands in NC Code</h2>
<p>Script commands can be embedded inside NC code comments. Lines starting with <code>;@</code> execute before that NC line runs:</p>
@@ -184,11 +184,11 @@ WriteShotFiles(&quot;Output/[NcName].shot.csv&quot;, 1);
<li><strong>Do not save the project during simulation.</strong> System-internal configuration (e.g., training-specific resolution overrides) may overwrite your settings.</li>
<li><strong>Do not reset the player during milling coefficient training.</strong> Close the project instead of pressing the reset button to avoid unexpected errors.</li>
<li><strong>Do not modify resolution, tool, or controller settings during training.</strong> Changing these mid-training invalidates the results.</li>
<li><strong>Do not combine <code>UpdateNcOptOption</code> in <a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_SessionStepBuilt">SessionStepBuilt</a><small>(API)</small> with NC-embedded optimization commands.</strong> Parallel computation may cause undefined behavior.</li>
<li><strong>Do not combine <code>UpdateNcOptOption</code> in <a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_SessionStepBuilt">SessionStepBuilt</a><small>(API)</small> with NC-embedded optimization commands.</strong> Parallel computation may cause undefined behavior.</li>
</ul>
<hr>
<h2 id="global-variables">Global Variables</h2>
<p><a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_Global">Global</a> provides a key-value dictionary for sharing data across scripts:</p>
<p><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_Global">Global</a> provides a key-value dictionary for sharing data across scripts:</p>
<pre><code class="lang-csharp">Global[&quot;material&quot;] = &quot;Steel&quot;;
var material = Global[&quot;material&quot;];
</code></pre>
@@ -196,12 +196,12 @@ var material = Global[&quot;material&quot;];
<h2 id="full-api-reference">Full API Reference</h2>
<p>For the complete list of available commands, properties, and events, see:</p>
<ul>
<li><a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html">RuntimeApi</a> — full API documentation</li>
<li><a class="xref" href="runtime-api.html">Glossary: RuntimeApi Quick-Reference</a> — categorized quick-reference table</li>
<li><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html">SessionShell</a> — full API documentation</li>
<li><a class="xref" href="session-shell.html">Glossary: SessionShell Quick-Reference</a> — categorized quick-reference table</li>
</ul>
<h2 id="see-also">See Also</h2>
<ul>
<li><a class="xref" href="runtime-api.html">Glossary: RuntimeApi Quick-Reference</a>RuntimeApi quick-reference</li>
<li><a class="xref" href="session-shell.html">Glossary: SessionShell Quick-Reference</a>SessionShell quick-reference</li>
<li><a class="xref" href="machining-step.html">Glossary: Machining Step</a> — machining step data model</li>
<li><a class="xref" href="../../workflows/basic-simulation.html">Workflow: Basic Machining Simulation</a> — using scripts in a simulation workflow</li>
</ul>
@@ -88,7 +88,7 @@
<h1 id="glossary-session-progress-messages">Glossary: Session Progress (Messages)</h1>
<h2 id="what-is-sessionprogress">What Is SessionProgress?</h2>
<p><strong>SessionProgress</strong> (<a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_SessionProgress">SessionProgress</a>) is the message host object that manages all messages generated during a HiNC scripting session. It serves as the central hub for logging, filtering, and exporting diagnostic information.</p>
<p><strong>SessionProgress</strong> (<a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_SessionProgress">SessionProgress</a>) is the message host object that manages all messages generated during a HiNC scripting session. It serves as the central hub for logging, filtering, and exporting diagnostic information.</p>
<div class="NOTE">
<h5>Note</h5>
<p>The older name <code>SessionMessageHost</code> is marked <code>[Obsolete]</code>. Use <code>SessionProgress</code> instead.</p>
@@ -108,25 +108,25 @@
<tbody>
<tr>
<td><strong>Message</strong></td>
<td><a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_Message_">Message</a></td>
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_Message_">Message</a></td>
<td>General informational message</td>
<td>Message panel</td>
</tr>
<tr>
<td><strong>ProgressMessage</strong></td>
<td><a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_ProgressMessage_">ProgressMessage</a></td>
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_ProgressMessage_">ProgressMessage</a></td>
<td>Progress-related status update</td>
<td>Progress bar / status area</td>
</tr>
<tr>
<td><strong>WarningMessage</strong></td>
<td><a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_WarningMessage_">WarningMessage</a></td>
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_WarningMessage_">WarningMessage</a></td>
<td>Warning (does not interrupt execution)</td>
<td>Message panel (yellow)</td>
</tr>
<tr>
<td><strong>ErrorMessage</strong></td>
<td><a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_ErrorMessage_">ErrorMessage</a></td>
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_ErrorMessage_">ErrorMessage</a></td>
<td>Error (may affect execution flow)</td>
<td>Message panel (red)</td>
</tr>
@@ -149,7 +149,7 @@ ErrorMessage(&quot;Workpiece does not exist&quot;);
</code></pre>
<hr>
<h2 id="exporting-messages">Exporting Messages</h2>
<p><a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_AppendMessagesToFile_">AppendMessagesToFile</a> writes messages to a text file, with optional tag-based filtering:</p>
<p><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_AppendMessagesToFile_">AppendMessagesToFile</a> writes messages to a text file, with optional tag-based filtering:</p>
<pre><code class="lang-csharp">// Export all messages
AppendMessagesToFile(&quot;Output/messages.txt&quot;);
@@ -207,7 +207,7 @@ PlayNcFile(&quot;NC/file1.nc&quot;);
<h2 id="see-also">See Also</h2>
<ul>
<li><a class="xref" href="script-command.html">Glossary: Script Commands</a> — script command basics</li>
<li><a class="xref" href="runtime-api.html">Glossary: RuntimeApi Quick-Reference</a>RuntimeApi quick-reference</li>
<li><a class="xref" href="session-shell.html">Glossary: SessionShell Quick-Reference</a>SessionShell quick-reference</li>
<li><a class="xref" href="../../workflows/basic-simulation.html">Workflow: Basic Machining Simulation</a> — using messages in a simulation workflow</li>
</ul>
@@ -2,9 +2,9 @@
<html>
<head>
<meta charset="utf-8">
<title>Glossary: RuntimeApi Quick-Reference | HiAPI-C# 2025 </title>
<title>Glossary: SessionShell Quick-Reference | HiAPI-C# 2025 </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Glossary: RuntimeApi Quick-Reference | HiAPI-C# 2025 ">
<meta name="title" content="Glossary: SessionShell Quick-Reference | HiAPI-C# 2025 ">
<link rel="icon" href="../../img/HiAPI.favicon.ico">
@@ -84,10 +84,10 @@
<nav id="breadcrumb"></nav>
</div>
<article data-uid="Glossary-RuntimeApi">
<h1 id="glossary-runtimeapi-quick-reference">Glossary: RuntimeApi Quick-Reference</h1>
<article data-uid="Glossary-SessionShell">
<h1 id="glossary-sessionshell-quick-reference">Glossary: SessionShell Quick-Reference</h1>
<p><a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html">RuntimeApi</a> is the global scope for all HiNC script commands. This page organizes every command by category with a one-line description and links to the workflow where each is typically used.</p>
<p><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html">SessionShell</a> is the global scope for all HiNC script commands. This page organizes every command by category with a one-line description and links to the workflow where each is typically used.</p>
<hr>
<h2 id="simulation-control">Simulation Control</h2>
<table>
@@ -100,57 +100,57 @@
</thead>
<tbody>
<tr>
<td><a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_PlayNcFile_">PlayNcFile</a></td>
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_PlayNcFile_">PlayNcFile</a></td>
<td>Execute an NC file</td>
<td><a class="xref" href="../../workflows/basic-simulation.html">Workflow: Basic Machining Simulation</a></td>
</tr>
<tr>
<td><a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_PlayNc_">PlayNc</a></td>
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_PlayNc_">PlayNc</a></td>
<td>Execute NC code from a string</td>
<td><a class="xref" href="../../workflows/basic-simulation.html">Workflow: Basic Machining Simulation</a></td>
</tr>
<tr>
<td><a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_PlayCsvFile_">PlayCsvFile</a></td>
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_PlayCsvFile_">PlayCsvFile</a></td>
<td>Drive simulation from a CSV file</td>
<td><a class="xref" href="../../workflows/basic-simulation.html">Workflow: Basic Machining Simulation</a>, <a class="xref" href="../../workflows/sensor-mapping.html">Workflow: Sensor Data Mapping</a></td>
</tr>
<tr>
<td><a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_RunNcFile_">RunNcFile</a></td>
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_RunNcFile_">RunNcFile</a></td>
<td>Parse NC file and return action sequence (no auto-pacing)</td>
<td></td>
</tr>
<tr>
<td><a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_RunNc_">RunNc</a></td>
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_RunNc_">RunNc</a></td>
<td>Parse NC string and return action sequence (no auto-pacing)</td>
<td></td>
</tr>
<tr>
<td><a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_Pace_">Pace</a></td>
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_Pace_">Pace</a></td>
<td>Insert a pausable checkpoint during playback</td>
<td><a class="xref" href="../../workflows/basic-simulation.html">Workflow: Basic Machining Simulation</a></td>
</tr>
<tr>
<td><a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_Pause_">Pause</a></td>
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_Pause_">Pause</a></td>
<td>Pause player execution</td>
<td><a class="xref" href="../../workflows/basic-simulation.html">Workflow: Basic Machining Simulation</a></td>
</tr>
<tr>
<td><a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_Reset_">Reset</a></td>
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_Reset_">Reset</a></td>
<td>Reset player state</td>
<td><a class="xref" href="../../workflows/basic-simulation.html">Workflow: Basic Machining Simulation</a></td>
</tr>
<tr>
<td><a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_PlayAct_">PlayAct</a></td>
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_PlayAct_">PlayAct</a></td>
<td>Execute a custom action object</td>
<td></td>
</tr>
<tr>
<td><a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_PlayToolingTeleport_">PlayToolingTeleport</a></td>
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_PlayToolingTeleport_">PlayToolingTeleport</a></td>
<td>Teleport a tool to a new position</td>
<td></td>
</tr>
<tr>
<td><a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_PlayClTeleport_">PlayClTeleport</a></td>
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_PlayClTeleport_">PlayClTeleport</a></td>
<td>Teleport tool to a specified CL position and orientation</td>
<td></td>
</tr>
@@ -168,17 +168,17 @@
</thead>
<tbody>
<tr>
<td><a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_MachiningResolution_mm">MachiningResolution_mm</a></td>
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_MachiningResolution_mm">MachiningResolution_mm</a></td>
<td>Set workpiece entity resolution (power-of-2 cube width in mm)</td>
<td><a class="xref" href="../../workflows/basic-simulation.html">Workflow: Basic Machining Simulation</a></td>
</tr>
<tr>
<td><a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_DispCache_Mb">DispCache_Mb</a></td>
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_DispCache_Mb">DispCache_Mb</a></td>
<td>Set display cache size (Mb)</td>
<td><a class="xref" href="../../workflows/basic-simulation.html">Workflow: Basic Machining Simulation</a></td>
</tr>
<tr>
<td><a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_MachiningMotionResolution">MachiningMotionResolution</a></td>
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_MachiningMotionResolution">MachiningMotionResolution</a></td>
<td>Set machining motion resolution mode</td>
<td><a class="xref" href="../../workflows/basic-simulation.html">Workflow: Basic Machining Simulation</a></td>
</tr>
@@ -196,37 +196,37 @@
</thead>
<tbody>
<tr>
<td><a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_EnablePhysics">EnablePhysics</a></td>
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_EnablePhysics">EnablePhysics</a></td>
<td>Enable/disable milling force evaluation</td>
<td><a class="xref" href="../../workflows/force-training.html">Workflow: Milling Force Parameter Training</a>, <a class="xref" href="../../workflows/nc-optimization.html">Workflow: NC Optimization</a></td>
</tr>
<tr>
<td><a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_EnableWearEffect">EnableWearEffect</a></td>
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_EnableWearEffect">EnableWearEffect</a></td>
<td>Enable/disable tool wear effects</td>
<td></td>
</tr>
<tr>
<td><a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_MillingForceCycleDivisionNum">MillingForceCycleDivisionNum</a></td>
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_MillingForceCycleDivisionNum">MillingForceCycleDivisionNum</a></td>
<td>Divisions per revolution for force calculation</td>
<td><a class="xref" href="../../workflows/force-training.html">Workflow: Milling Force Parameter Training</a></td>
</tr>
<tr>
<td><a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_InitSpindleTemperature_C">InitSpindleTemperature_C</a></td>
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_InitSpindleTemperature_C">InitSpindleTemperature_C</a></td>
<td>Initial spindle temperature (°C)</td>
<td></td>
</tr>
<tr>
<td><a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_EnablePauseOnFailure">EnablePauseOnFailure</a></td>
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_EnablePauseOnFailure">EnablePauseOnFailure</a></td>
<td>Pause execution on failure</td>
<td><a class="xref" href="../../workflows/geometry-validation.html">Workflow: Geometry Validation</a></td>
</tr>
<tr>
<td><a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_EnableCollisionDetection">EnableCollisionDetection</a></td>
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_EnableCollisionDetection">EnableCollisionDetection</a></td>
<td>Enable collision detection</td>
<td><a class="xref" href="../../workflows/geometry-validation.html">Workflow: Geometry Validation</a></td>
</tr>
<tr>
<td><a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_EnablePauseOnCollision">EnablePauseOnCollision</a></td>
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_EnablePauseOnCollision">EnablePauseOnCollision</a></td>
<td>Pause on collision</td>
<td><a class="xref" href="../../workflows/geometry-validation.html">Workflow: Geometry Validation</a></td>
</tr>
@@ -244,12 +244,12 @@
</thead>
<tbody>
<tr>
<td><a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_WriteShotFiles_">WriteShotFiles</a></td>
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_WriteShotFiles_">WriteShotFiles</a></td>
<td>Export waveform (shot) data CSV at given time resolution</td>
<td><a class="xref" href="../../workflows/force-training.html">Workflow: Milling Force Parameter Training</a></td>
</tr>
<tr>
<td><a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_WriteStepFiles_">WriteStepFiles</a></td>
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_WriteStepFiles_">WriteStepFiles</a></td>
<td>Export step-level data CSV</td>
<td><a class="xref" href="../../workflows/basic-simulation.html">Workflow: Basic Machining Simulation</a>, <a class="xref" href="../../workflows/force-training.html">Workflow: Milling Force Parameter Training</a></td>
</tr>
@@ -267,42 +267,42 @@
</thead>
<tbody>
<tr>
<td><a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_MapSingleByCsvFile_">MapSingleByCsvFile</a></td>
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_MapSingleByCsvFile_">MapSingleByCsvFile</a></td>
<td>One-to-one time-interpolation mapping from CSV</td>
<td><a class="xref" href="../../workflows/sensor-mapping.html">Workflow: Sensor Data Mapping</a></td>
</tr>
<tr>
<td><a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_MapSeriesByCsvFile_">MapSeriesByCsvFile</a></td>
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_MapSeriesByCsvFile_">MapSeriesByCsvFile</a></td>
<td>One-to-many series mapping from CSV (via ActualTime)</td>
<td><a class="xref" href="../../workflows/sensor-mapping.html">Workflow: Sensor Data Mapping</a></td>
</tr>
<tr>
<td><a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_AddTimeDataByFile_">AddTimeDataByFile</a></td>
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_AddTimeDataByFile_">AddTimeDataByFile</a></td>
<td>Specify input data with time range for local mapping</td>
<td><a class="xref" href="../../workflows/sensor-mapping.html">Workflow: Sensor Data Mapping</a>, <a class="xref" href="../../workflows/force-training.html">Workflow: Milling Force Parameter Training</a></td>
</tr>
<tr>
<td><a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_ClearTimeMappingData_">ClearTimeMappingData</a></td>
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_ClearTimeMappingData_">ClearTimeMappingData</a></td>
<td>Clear all mapping data</td>
<td><a class="xref" href="../../workflows/sensor-mapping.html">Workflow: Sensor Data Mapping</a></td>
</tr>
<tr>
<td><a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_BeginSelection_">BeginSelection</a></td>
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_BeginSelection_">BeginSelection</a></td>
<td>Set range mapping start point (in NC comments)</td>
<td><a class="xref" href="../../workflows/sensor-mapping.html">Workflow: Sensor Data Mapping</a></td>
</tr>
<tr>
<td><a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_EndSelection_">EndSelection</a></td>
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_EndSelection_">EndSelection</a></td>
<td>Set range mapping end point (in NC comments)</td>
<td><a class="xref" href="../../workflows/sensor-mapping.html">Workflow: Sensor Data Mapping</a></td>
</tr>
<tr>
<td><a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_LineSelection_">LineSelection</a></td>
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_LineSelection_">LineSelection</a></td>
<td>Single-line data mapping (in NC comments)</td>
<td><a class="xref" href="../../workflows/sensor-mapping.html">Workflow: Sensor Data Mapping</a></td>
</tr>
<tr>
<td><a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_EnableMapOnSelectionEnd">EnableMapOnSelectionEnd</a></td>
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_EnableMapOnSelectionEnd">EnableMapOnSelectionEnd</a></td>
<td>Auto-trigger mapping when selection ends (default: true)</td>
<td><a class="xref" href="../../workflows/sensor-mapping.html">Workflow: Sensor Data Mapping</a></td>
</tr>
@@ -320,22 +320,22 @@
</thead>
<tbody>
<tr>
<td><a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_TrainMillingPara_">TrainMillingPara</a></td>
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_TrainMillingPara_">TrainMillingPara</a></td>
<td>Train new milling coefficients from mapped data</td>
<td><a class="xref" href="../../workflows/force-training.html">Workflow: Milling Force Parameter Training</a></td>
</tr>
<tr>
<td><a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_ReTrainMillingPara_">ReTrainMillingPara</a></td>
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_ReTrainMillingPara_">ReTrainMillingPara</a></td>
<td>Calibrate existing milling coefficients (10% original / 90% new)</td>
<td><a class="xref" href="../../workflows/force-training.html">Workflow: Milling Force Parameter Training</a></td>
</tr>
<tr>
<td><a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_LoadCuttingParaByFile_">LoadCuttingParaByFile</a></td>
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_LoadCuttingParaByFile_">LoadCuttingParaByFile</a></td>
<td>Load cutting parameters from file into workpiece</td>
<td><a class="xref" href="../../workflows/force-training.html">Workflow: Milling Force Parameter Training</a></td>
</tr>
<tr>
<td><a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_MillingCycleDivisionNum">MillingCycleDivisionNum</a></td>
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_MillingCycleDivisionNum">MillingCycleDivisionNum</a></td>
<td>Number of angular divisions per revolution</td>
<td><a class="xref" href="../../workflows/force-training.html">Workflow: Milling Force Parameter Training</a></td>
</tr>
@@ -353,97 +353,97 @@
</thead>
<tbody>
<tr>
<td><a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_OptimizeToFiles_">OptimizeToFiles</a></td>
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_OptimizeToFiles_">OptimizeToFiles</a></td>
<td>Output optimized NC files</td>
<td><a class="xref" href="../../workflows/nc-optimization.html">Workflow: NC Optimization</a></td>
</tr>
<tr>
<td><a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_OptEnableFeedrate">OptEnableFeedrate</a></td>
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_OptEnableFeedrate">OptEnableFeedrate</a></td>
<td>Enable sequential feed rate optimization</td>
<td><a class="xref" href="../../workflows/nc-optimization.html">Workflow: NC Optimization</a></td>
</tr>
<tr>
<td><a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_OptEnableInterpolation">OptEnableInterpolation</a></td>
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_OptEnableInterpolation">OptEnableInterpolation</a></td>
<td>Enable re-interpolation</td>
<td><a class="xref" href="../../workflows/nc-optimization.html">Workflow: NC Optimization</a></td>
</tr>
<tr>
<td><a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_OptFeedrateAssignmentRatio">OptFeedrateAssignmentRatio</a></td>
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_OptFeedrateAssignmentRatio">OptFeedrateAssignmentRatio</a></td>
<td>Feed rate assignment ratio for re-interpolation</td>
<td><a class="xref" href="../../workflows/nc-optimization.html">Workflow: NC Optimization</a></td>
</tr>
<tr>
<td><a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_OptRapidFeed_mmdmin">OptRapidFeed_mmdmin</a></td>
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_OptRapidFeed_mmdmin">OptRapidFeed_mmdmin</a></td>
<td>Non-cutting region feed rate (mm/min)</td>
<td><a class="xref" href="../../workflows/nc-optimization.html">Workflow: NC Optimization</a></td>
</tr>
<tr>
<td><a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_OptMinFeedrate_mmdmin">OptMinFeedrate_mmdmin</a></td>
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_OptMinFeedrate_mmdmin">OptMinFeedrate_mmdmin</a></td>
<td>Minimum cutting feed rate (mm/min)</td>
<td><a class="xref" href="../../workflows/nc-optimization.html">Workflow: NC Optimization</a></td>
</tr>
<tr>
<td><a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_OptMaxFeedrate_mmdmin">OptMaxFeedrate_mmdmin</a></td>
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_OptMaxFeedrate_mmdmin">OptMaxFeedrate_mmdmin</a></td>
<td>Maximum cutting feed rate (mm/min)</td>
<td><a class="xref" href="../../workflows/nc-optimization.html">Workflow: NC Optimization</a></td>
</tr>
<tr>
<td><a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_OptMaxAcceleration_mmds2">OptMaxAcceleration_mmds2</a></td>
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_OptMaxAcceleration_mmds2">OptMaxAcceleration_mmds2</a></td>
<td>Acceleration/deceleration limit (mm/s²)</td>
<td><a class="xref" href="../../workflows/nc-optimization.html">Workflow: NC Optimization</a></td>
</tr>
<tr>
<td><a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_OptExtendedPreDistance_mm">OptExtendedPreDistance_mm</a></td>
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_OptExtendedPreDistance_mm">OptExtendedPreDistance_mm</a></td>
<td>Pre-distance for cutting region calculation (mm)</td>
<td><a class="xref" href="../../workflows/nc-optimization.html">Workflow: NC Optimization</a></td>
</tr>
<tr>
<td><a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_OptExtendedPostDistance_mm">OptExtendedPostDistance_mm</a></td>
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_OptExtendedPostDistance_mm">OptExtendedPostDistance_mm</a></td>
<td>Post-distance for cutting region calculation (mm)</td>
<td><a class="xref" href="../../workflows/nc-optimization.html">Workflow: NC Optimization</a></td>
</tr>
<tr>
<td><a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_OptSpindlePowerSafetyFactor">OptSpindlePowerSafetyFactor</a></td>
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_OptSpindlePowerSafetyFactor">OptSpindlePowerSafetyFactor</a></td>
<td>Spindle power safety factor</td>
<td><a class="xref" href="../../workflows/nc-optimization.html">Workflow: NC Optimization</a></td>
</tr>
<tr>
<td><a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_OptSpindleTorqueSafetyFactor">OptSpindleTorqueSafetyFactor</a></td>
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_OptSpindleTorqueSafetyFactor">OptSpindleTorqueSafetyFactor</a></td>
<td>Spindle torque safety factor</td>
<td><a class="xref" href="../../workflows/nc-optimization.html">Workflow: NC Optimization</a></td>
</tr>
<tr>
<td><a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_OptThermalYieldSafetyFactor">OptThermalYieldSafetyFactor</a></td>
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_OptThermalYieldSafetyFactor">OptThermalYieldSafetyFactor</a></td>
<td>Thermal yield safety factor</td>
<td><a class="xref" href="../../workflows/nc-optimization.html">Workflow: NC Optimization</a></td>
</tr>
<tr>
<td><a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_OptPreferedForce_N">OptPreferedForce_N</a></td>
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_OptPreferedForce_N">OptPreferedForce_N</a></td>
<td>Target cutting force (N)</td>
<td><a class="xref" href="../../workflows/nc-optimization.html">Workflow: NC Optimization</a></td>
</tr>
<tr>
<td><a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_Preserve_">Preserve</a></td>
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_Preserve_">Preserve</a></td>
<td>Disable optimization for a single NC line</td>
<td><a class="xref" href="../../workflows/nc-optimization.html">Workflow: NC Optimization</a></td>
</tr>
<tr>
<td><a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_BeginPreserve_">BeginPreserve</a></td>
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_BeginPreserve_">BeginPreserve</a></td>
<td>Begin optimization-disabled range</td>
<td><a class="xref" href="../../workflows/nc-optimization.html">Workflow: NC Optimization</a></td>
</tr>
<tr>
<td><a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_EndPreserve_">EndPreserve</a></td>
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_EndPreserve_">EndPreserve</a></td>
<td>End optimization-disabled range</td>
<td><a class="xref" href="../../workflows/nc-optimization.html">Workflow: NC Optimization</a></td>
</tr>
<tr>
<td><a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_EnableIndividualStepAdjustmentLog_">EnableIndividualStepAdjustmentLog</a></td>
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_EnableIndividualStepAdjustmentLog_">EnableIndividualStepAdjustmentLog</a></td>
<td>Enable per-step optimization log file</td>
<td><a class="xref" href="../../workflows/nc-optimization.html">Workflow: NC Optimization</a></td>
</tr>
<tr>
<td><a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_EmbeddedLogMode_">EmbeddedLogMode</a></td>
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_EmbeddedLogMode_">EmbeddedLogMode</a></td>
<td>Set embedded log verbosity (None / SimpleLog / FullLog)</td>
<td><a class="xref" href="../../workflows/nc-optimization.html">Workflow: NC Optimization</a></td>
</tr>
@@ -461,37 +461,47 @@
</thead>
<tbody>
<tr>
<td><a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_WriteRuntimeGeom_">WriteRuntimeGeom</a></td>
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_WriteRuntimeGeom_">WriteRuntimeGeom</a></td>
<td>Save runtime geometry to file</td>
<td><a class="xref" href="../../workflows/basic-simulation.html">Workflow: Basic Machining Simulation</a></td>
</tr>
<tr>
<td><a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_ReadRuntimeGeom_">ReadRuntimeGeom</a></td>
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_ReadRuntimeGeom_">ReadRuntimeGeom</a></td>
<td>Load runtime geometry from file</td>
<td><a class="xref" href="../../workflows/basic-simulation.html">Workflow: Basic Machining Simulation</a></td>
</tr>
<tr>
<td><a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_WriteRuntimeGeomToStl_">WriteRuntimeGeomToStl</a></td>
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_WriteRuntimeGeomToStl_">WriteRuntimeGeomToStl</a></td>
<td>Export runtime geometry to STL</td>
<td><a class="xref" href="../../workflows/basic-simulation.html">Workflow: Basic Machining Simulation</a></td>
</tr>
<tr>
<td><a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_Diff_">Diff</a></td>
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_WriteRuntimeGeomToObj_">WriteRuntimeGeomToObj</a></td>
<td>Export runtime geometry to Wavefront OBJ (per-vertex RGB)</td>
<td><a class="xref" href="../../workflows/basic-simulation.html">Workflow: Basic Machining Simulation</a></td>
</tr>
<tr>
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_WriteRuntimeGeomToPly_">WriteRuntimeGeomToPly</a></td>
<td>Export runtime geometry to binary PLY (per-vertex RGB)</td>
<td><a class="xref" href="../../workflows/basic-simulation.html">Workflow: Basic Machining Simulation</a></td>
</tr>
<tr>
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_Diff_">Diff</a></td>
<td>Compare simulated geometry against target</td>
<td><a class="xref" href="../../workflows/geometry-validation.html">Workflow: Geometry Validation</a></td>
</tr>
<tr>
<td><a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_RemoveFlyPiece_">RemoveFlyPiece</a></td>
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_RemoveFlyPiece_">RemoveFlyPiece</a></td>
<td>Remove disconnected residual material</td>
<td><a class="xref" href="../../workflows/geometry-validation.html">Workflow: Geometry Validation</a></td>
</tr>
<tr>
<td><a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_ScanRuntimeGeomInfDefect_">ScanRuntimeGeomInfDefect</a></td>
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_ScanRuntimeGeomInfDefect_">ScanRuntimeGeomInfDefect</a></td>
<td>Scan for infinite edge cut defects</td>
<td><a class="xref" href="../../workflows/geometry-validation.html">Workflow: Geometry Validation</a></td>
</tr>
<tr>
<td><a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_ClearDefectDisplayee_">ClearDefectDisplayee</a></td>
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_ClearDefectDisplayee_">ClearDefectDisplayee</a></td>
<td>Clear defect visualization markers</td>
<td><a class="xref" href="../../workflows/geometry-validation.html">Workflow: Geometry Validation</a></td>
</tr>
@@ -509,12 +519,12 @@
</thead>
<tbody>
<tr>
<td><a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_SessionStepBuilt">SessionStepBuilt</a></td>
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_SessionStepBuilt">SessionStepBuilt</a></td>
<td>Fired when a machining step is built</td>
<td><a class="xref" href="../../workflows/nc-optimization.html">Workflow: NC Optimization</a></td>
</tr>
<tr>
<td><a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_SessionStepSelected">SessionStepSelected</a></td>
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_SessionStepSelected">SessionStepSelected</a></td>
<td>Fired when a machining step is selected</td>
<td></td>
</tr>
@@ -532,32 +542,32 @@
</thead>
<tbody>
<tr>
<td><a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_Message_">Message</a></td>
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_Message_">Message</a></td>
<td>Display a general message</td>
<td>All workflows</td>
</tr>
<tr>
<td><a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_ProgressMessage_">ProgressMessage</a></td>
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_ProgressMessage_">ProgressMessage</a></td>
<td>Display a progress message</td>
<td>All workflows</td>
</tr>
<tr>
<td><a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_WarningMessage_">WarningMessage</a></td>
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_WarningMessage_">WarningMessage</a></td>
<td>Display a warning message</td>
<td>All workflows</td>
</tr>
<tr>
<td><a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_ErrorMessage_">ErrorMessage</a></td>
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_ErrorMessage_">ErrorMessage</a></td>
<td>Display an error message</td>
<td>All workflows</td>
</tr>
<tr>
<td><a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_AppendMessagesToFile_">AppendMessagesToFile</a></td>
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_AppendMessagesToFile_">AppendMessagesToFile</a></td>
<td>Export messages to file (optional tag filter)</td>
<td>All workflows</td>
</tr>
<tr>
<td><a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_SessionProgress">SessionProgress</a></td>
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_SessionProgress">SessionProgress</a></td>
<td>Session message host object</td>
<td><a class="xref" href="session-progress.html">Glossary: Session Progress (Messages)</a></td>
</tr>
@@ -575,17 +585,17 @@
</thead>
<tbody>
<tr>
<td><a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_GetMillingStep_">GetMillingStep</a></td>
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_GetMillingStep_">GetMillingStep</a></td>
<td>Get step by index</td>
<td><a class="xref" href="../../workflows/basic-simulation.html">Workflow: Basic Machining Simulation</a></td>
</tr>
<tr>
<td><a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_StepCount">StepCount</a></td>
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_StepCount">StepCount</a></td>
<td>Total step count</td>
<td><a class="xref" href="../../workflows/basic-simulation.html">Workflow: Basic Machining Simulation</a></td>
</tr>
<tr>
<td><a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_RegisterStepVariable_">RegisterStepVariable</a></td>
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_RegisterStepVariable_">RegisterStepVariable</a></td>
<td>Register a custom step variable</td>
<td><a class="xref" href="machining-step.html">Glossary: Machining Step</a></td>
</tr>
@@ -603,12 +613,12 @@
</thead>
<tbody>
<tr>
<td><a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_ResetRuntime_">ResetRuntime</a></td>
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_ResetRuntime_">ResetRuntime</a></td>
<td>Clear event handlers, buffers, and runtime state</td>
<td><a class="xref" href="../../workflows/basic-simulation.html">Workflow: Basic Machining Simulation</a></td>
</tr>
<tr>
<td><a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_MachiningSession">MachiningSession</a></td>
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_MachiningSession">MachiningSession</a></td>
<td>Get the current machining session object</td>
<td></td>
</tr>
@@ -626,17 +636,17 @@
</thead>
<tbody>
<tr>
<td><a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_Workpiece">Workpiece</a></td>
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_Workpiece">Workpiece</a></td>
<td>Get/set the workpiece object</td>
<td><a class="xref" href="../../workflows/basic-simulation.html">Workflow: Basic Machining Simulation</a></td>
</tr>
<tr>
<td><a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_Fixture">Fixture</a></td>
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_Fixture">Fixture</a></td>
<td>Get/set the fixture object</td>
<td><a class="xref" href="../../workflows/basic-simulation.html">Workflow: Basic Machining Simulation</a></td>
</tr>
<tr>
<td><a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_Global">Global</a></td>
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_Global">Global</a></td>
<td>Global variable dictionary for cross-script data sharing</td>
<td><a class="xref" href="script-command.html">Glossary: Script Commands</a></td>
</tr>
@@ -654,22 +664,22 @@
</thead>
<tbody>
<tr>
<td><a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_GetUniformContourTrayShiftAngle_deg_">GetUniformContourTrayShiftAngle_deg</a></td>
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_GetUniformContourTrayShiftAngle_deg_">GetUniformContourTrayShiftAngle_deg</a></td>
<td>Get tool contour shift angle (deg)</td>
<td></td>
</tr>
<tr>
<td><a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_SetUniformContourTrayShiftAngle_deg_">SetUniformContourTrayShiftAngle_deg</a></td>
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_SetUniformContourTrayShiftAngle_deg_">SetUniformContourTrayShiftAngle_deg</a></td>
<td>Set tool contour shift angle (deg)</td>
<td></td>
</tr>
<tr>
<td><a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_GetStickMachiningToolObservationHeight_mm_">GetStickMachiningToolObservationHeight_mm</a></td>
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_GetStickMachiningToolObservationHeight_mm_">GetStickMachiningToolObservationHeight_mm</a></td>
<td>Get smart tool holder observation height (mm)</td>
<td></td>
</tr>
<tr>
<td><a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_SetStickMachiningToolObservationHeight_mm_">SetStickMachiningToolObservationHeight_mm</a></td>
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_SetStickMachiningToolObservationHeight_mm_">SetStickMachiningToolObservationHeight_mm</a></td>
<td>Set smart tool holder observation height (mm)</td>
<td></td>
</tr>
@@ -682,7 +692,7 @@
<hr>
<h2 id="see-also">See Also</h2>
<ul>
<li><a class="xref" href="../../api/Hi.MachiningProcs.RuntimeApi.html">RuntimeApi</a> — full API documentation</li>
<li><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html">SessionShell</a> — full API documentation</li>
<li><a class="xref" href="script-command.html">Glossary: Script Commands</a> — what is a script command</li>
<li><a class="xref" href="machining-step.html">Glossary: Machining Step</a> — step data model</li>
<li><a class="xref" href="session-progress.html">Glossary: Session Progress (Messages)</a> — message system</li>
@@ -19,7 +19,7 @@
<a href="script-command.html" name="" title="Script Command">Script Command</a>
</li>
<li>
<a href="runtime-api.html" name="" title="RuntimeApi Reference">RuntimeApi Reference</a>
<a href="session-shell.html" name="" title="SessionShell Reference">SessionShell Reference</a>
</li>
<li>
<a href="machining-step.html" name="" title="MachiningStep">MachiningStep</a>
@@ -1,2 +1,2 @@
{"items":[{"name":"Overview","href":"index.html","topicHref":"index.html"},{"name":"Script Command","href":"script-command.html","topicHref":"script-command.html"},{"name":"RuntimeApi Reference","href":"runtime-api.html","topicHref":"runtime-api.html"},{"name":"MachiningStep","href":"machining-step.html","topicHref":"machining-step.html"},{"name":"Step (Concept)","href":"step-intro.html","topicHref":"step-intro.html"},{"name":"Step Output","href":"step-output.html","topicHref":"step-output.html"},{"name":"SessionProgress","href":"session-progress.html","topicHref":"session-progress.html"}]}
{"items":[{"name":"Overview","href":"index.html","topicHref":"index.html"},{"name":"Script Command","href":"script-command.html","topicHref":"script-command.html"},{"name":"SessionShell Reference","href":"session-shell.html","topicHref":"session-shell.html"},{"name":"MachiningStep","href":"machining-step.html","topicHref":"machining-step.html"},{"name":"Step (Concept)","href":"step-intro.html","topicHref":"step-intro.html"},{"name":"Step Output","href":"step-output.html","topicHref":"step-output.html"},{"name":"SessionProgress","href":"session-progress.html","topicHref":"session-progress.html"}]}