This commit is contained in:
2026-09-09 17:35:23 +08:00
parent 2a98ae7556
commit 161af68fe3
1271 changed files with 58251 additions and 98639 deletions
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,186 @@
<!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="Technique-CamFloatingPointDrift">
<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/nc-optimization-principles.html">NC Optimization</a> and <a class="xref" href="../nc-optimization/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 class="xref" href="../nc-optimization/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/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 class="xref" href="../milling-physics/probabilistic-peak-crack.html">Probabilistic Peak &amp; Cutter Crack</a> — The general statement of the probabilistic peak effect this section describes</li>
<li><a class="xref" href="../nc-optimization/corner-behavior.html">Corner Feedrate Behavior</a> — Force-peak interaction with controller deceleration at corners</li>
<li><a class="xref" href="../measurement/smart-holder-training.html">Smart Holder Training</a> — Smart tool holder measurement that confirms sub-micron sensitivity</li>
<li><a class="xref" href="../milling-physics/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>
@@ -0,0 +1,140 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Machine Capability | HiAPI-C# 2025 </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Machine Capability | 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="machine-capability">Machine Capability</h1>
<p>What the machine tool in the loop can actually deliver, and what happens when a cut asks for more
than that. Every ceiling here belongs to the equipment executing the cut, and none of them is
visible in the NC program.</p>
<p>Ordered by what the ceiling belongs to — the spindle first, then the controller and the NC
toolchain feeding it.</p>
<h2 id="spindle">Spindle</h2>
<ul>
<li><a href="spindle-capability.html">Spindle Capability</a> — Duration-keyed boundary curves, the thermal envelope, and the denominators behind the four torque and power ratios</li>
<li><a href="spindle-power-evaluation.html">Spindle Power Evaluation</a> — Empirical validation of the simulated spindle power against measured Fanuc ServoGuide TCMD data</li>
</ul>
<h2 id="controller-and-nc-toolchain">Controller and NC Toolchain</h2>
<ul>
<li><a href="cam-floating-point-drift.html">CAM Floating-Point Drift</a> — Sub-micron layer-to-layer drift in CAM output meeting a genuinely sub-micron floor-contact sensitivity, and what to do when the NC cannot be changed</li>
</ul>
<h2 id="condition-of-the-machine-itself">Condition of the Machine Itself</h2>
<ul>
<li><a href="machine-condition.html">Machine Condition and Safety Factors</a> — Why the results hold only while every ratio stays under 100%, and how a worn machine is described to the optimizer</li>
</ul>
<h2 id="see-also">See Also</h2>
<ul>
<li><a href="../milling-physics/index.html">Milling Physics</a> — the physics of the cut that runs into these ceilings</li>
<li><a href="../nc-optimization/index.html">NC Optimization</a> — what the optimizer does with these ceilings once it knows them</li>
<li><a href="../simulation-performance/index.html">Simulation Performance</a> — the other machine in the loop: what the workstation running the simulation can deliver</li>
<li><a href="../validation/index.html">Validation</a> — the measurements these ceilings were calibrated and checked against</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>
@@ -0,0 +1,141 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Machine Condition and Safety Factors | HiAPI-C# 2025 </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Machine Condition and Safety Factors | 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="Technique-MachineCondition">
<h1 id="machine-condition-and-safety-factors">Machine Condition and Safety Factors</h1>
<p>Two machines of the same model, one maintained and one not, do not accept the same NC program.
The simulation models the cut, not the wear state of the machine running it, so the machine's
condition enters through the safety factors — and setting them honestly is the difference between
an optimized program that runs and one that only runs in simulation.</p>
<h2 id="the-simulation-is-valid-only-under-stable-machining">The Simulation Is Valid Only Under Stable Machining</h2>
<p>Every availability ratio HiNC reports — yield stress, spindle torque, spindle power, thermal
yield — is a fraction of what the cut is allowed to demand. <strong>The results describe reality only
while all of them stay under 100%.</strong> Above that the machine is no longer doing what the model
says it is doing: the spindle droops, the feed per tooth rises, and the divergence grows rather
than staying proportional.</p>
<p>Reading those ratios, and what each one means at 100%, is
<a href="../milling-physics/machinability.html">Evaluating Process Machinability</a>.</p>
<h2 id="safety-factors-are-where-the-machines-condition-goes">Safety Factors Are Where the Machine's Condition Goes</h2>
<p>HiNC exposes a safety factor per limiting quantity — spindle power, spindle torque, thermal
yield — and they feed straight into the optimizer's output. They are not decoration: raising a
factor lowers the feed the optimizer is willing to assign, across the whole program.</p>
<p>Use them to describe the machine you actually have. A machine in poor condition should be given
larger factors, or a lower preferred cutting force, so that the optimized program leaves it more
headroom. The same program optimized for a well-maintained machine will be faster, and will be
the wrong program for the worn one.</p>
<h2 id="see-also">See Also</h2>
<ul>
<li><a href="spindle-capability.html">Spindle Capability</a> — the curves the power and torque factors are applied to</li>
<li><a href="../milling-physics/chatter.html">Chatter, and What the Simulation Does About It</a> — the failure mode the force ceiling exists to avoid, and the two cases it does not cover</li>
<li><a class="xref" href="../validation/cutting-force.html">Cutting Force and Torque Validation</a> — a worked maximum feed rate, and where the safety factor enters it</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>
Binary file not shown.

After

Width:  |  Height:  |  Size: 150 KiB

@@ -0,0 +1,228 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Spindle Capability | HiAPI-C# 2025 </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Spindle Capability | 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="Technique-SpindleCapability">
<h1 id="spindle-capability">Spindle Capability</h1>
<p><a class="xref" href="../../api/Hi.Milling.SpindleCapability.html">SpindleCapability</a> <small>(API)</small> describes the energy, torque, power, and thermal envelope of a machine spindle. It is loaded as XML (<code>.SpindleCapability</code> files under <code>Resource/SpindleCapability/</code>) and lives on <a class="xref" href="../../api/Hi.Machining.MachiningEquipmentUtils.MachiningEquipment.html#Hi_Machining_MachiningEquipmentUtils_MachiningEquipment_SpindleCapability">SpindleCapability</a> <small>(API)</small> as part of the project equipment. This page explains what the model represents physically and how the per-step ratios on a machining step are derived.</p>
<p>For editing values interactively, see <a class="xref" href="../../anatomy/general-setup/spindle-capability.html">Spindle Capability Page</a>. For empirical validation of the resulting power numbers against Fanuc ServoGuide, see <a class="xref" href="spindle-power-evaluation.html">Spindle Power Evaluation</a>.</p>
<h2 id="boundary-curves-continuous-vs-instantaneous">Boundary curves: continuous vs instantaneous</h2>
<p><img src="spindle-capability-img/fanuc-at12-12000i.jpg" alt="Power and torque vs spindle speed for a FANUC aT12/12000i spindle"></p>
<p><em>A typical spindle datasheet chart (FANUC aT12/12000i, shipped as <code>FANUC-aT12-12000i.SpindleCapability</code>): torque (N-m) and power (kW) plotted against spindle speed. The <strong>S1 Cont.</strong> curves are the continuous boundary; the <strong>S3 60%</strong> curves are a short-duration rating. HiNC stores exactly these curves, keyed by workable duration.</em></p>
<p>The capability stores <strong>two dictionaries keyed by workable duration (in minutes)</strong>, mapping spindle speed to the maximum power or torque the spindle can deliver for that duration:</p>
<ul>
<li><a class="xref" href="../../api/Hi.Milling.SpindleCapability.html#Hi_Milling_SpindleCapability_WorkableDurationToSpindleSpeedPowerContoursDictionary_min_cycleDs_kW">WorkableDurationToSpindleSpeedPowerContoursDictionary_min_cycleDs_kW</a> <small>(API)</small></li>
<li><a class="xref" href="../../api/Hi.Milling.SpindleCapability.html#Hi_Milling_SpindleCapability_WorkableDurationToSpindleSpeedTorqueContoursDictionary_min_cycleDs_Nm">WorkableDurationToSpindleSpeedTorqueContoursDictionary_min_cycleDs_Nm</a> <small>(API)</small></li>
</ul>
<p>Two duration keys are special:</p>
<ul>
<li><strong><code>PositiveInfinity</code></strong> — the <strong>continuous boundary</strong>. The spindle can run at any (speed, value) point on this curve forever without overheating. Industry usage often calls this the S1 rating.</li>
<li><strong>The smallest finite key</strong> (e.g. <code>15</code>) — the <strong>instantaneous boundary</strong>. The spindle can run at any (speed, value) point on this curve only for that workable duration before the temperature ceiling is reached.</li>
</ul>
<p>A capability typically also has intermediate keys (e.g. <code>60</code> minutes) which document the spindle's published rating curve.</p>
<div class="NOTE">
<h5>Note</h5>
<p><strong>Why duration-keyed and not just two curves?</strong></p>
<p>The duration key serves two roles. The contour values give peak load capability (used by the ratio computation, see below). The duration values implicitly encode the thermal time constants (used by the thermal envelope, see further below). One family of curves drives both.</p>
</div>
<p>If <a class="xref" href="../../api/Hi.Milling.SpindleCapability.html#Hi_Milling_SpindleCapability_GearShiftSpindleSpeed_rpm">GearShiftSpindleSpeed_rpm</a> <small>(API)</small> is set, each contour is treated as two segments split at that speed; only the segment for the current spindle speed is used for interpolation. Outside the segment, interpolation uses nearest-neighbour clamping rather than extrapolation.</p>
<h2 id="how-the-four-ratios-are-computed">How the four ratios are computed</h2>
<p>For every machining step where the spindle speed changes, <a class="xref" href="../../api/Hi.MachiningProcs.SpindleSpeedCache.html">SpindleSpeedCache</a> <small>(API)</small> interpolates each of the four contour-based curves at the current spindle speed and stores four scalar boundaries:</p>
<table>
<thead>
<tr>
<th>Boundary (denominator)</th>
<th>Source contour</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>MinInsistentRatioSpindleTorqueBoundary_Nm</code></td>
<td>smallest-key entry of the torque dictionary, interpolated at current rpm</td>
</tr>
<tr>
<td><code>InfInsistentRatioSpindleTorqueBoundary_Nm</code></td>
<td><code>∞</code>-key entry of the torque dictionary, interpolated at current rpm</td>
</tr>
<tr>
<td><code>MinInsistentRatioSpindlePowerBoundary_W</code></td>
<td>smallest-key entry of the power dictionary, interpolated at current rpm</td>
</tr>
<tr>
<td><code>InfInsistentRatioSpindlePowerBoundary_W</code></td>
<td><code>∞</code>-key entry of the power dictionary, interpolated at current rpm</td>
</tr>
</tbody>
</table>
<p>The four <code>MachiningStep</code> ratios are then divisions:</p>
<div class="math">
\[
\begin{aligned}
\text{MaxSpindleTorqueRatio} &amp;= \frac{\text{MaxAxialTorque\_Nm}}{\text{MinInsistentRatioSpindleTorqueBoundary\_Nm}} \\[6pt]
\text{ContinueSpindleTorqueRatio} &amp;= \frac{\text{MaxAxialTorque\_Nm}}{\text{InfInsistentRatioSpindleTorqueBoundary\_Nm}} \\[6pt]
\text{MaxSpindlePowerRatio} &amp;= \frac{\text{inputPower\_W}}{\text{MinInsistentRatioSpindlePowerBoundary\_W}} \\[6pt]
\text{ContinueSpindlePowerRatio} &amp;= \frac{\text{inputPower\_W}}{\text{InfInsistentRatioSpindlePowerBoundary\_W}}
\end{aligned}
\]</div>
<p>Because the continuous boundary is always lower than (or equal to) the short-duration boundary, the corresponding <code>Continue-</code> ratio is always greater than (or equal to) its <code>Max-</code> counterpart for the same load:</p>
<ul>
<li>A <strong><code>Max-</code> ratio above 100%</strong> means the spindle is overdriven instantaneously and will trip thermal protection within the rated short duration. This is the criterion <a class="xref" href="../../api/Hi.MachiningSteps.MachiningStep.html#Hi_MachiningSteps_MachiningStep_MaxSpindleTorqueRatio">MaxSpindleTorqueRatio</a> <small>(API)</small> and <a class="xref" href="../../api/Hi.MachiningSteps.MachiningStep.html#Hi_MachiningSteps_MachiningStep_MaxSpindlePowerRatio">MaxSpindlePowerRatio</a> <small>(API)</small> use to flag tool breakage on <a class="xref" href="../milling-physics/machinability.html">Process Machinability</a>.</li>
<li>A <strong><code>Continue-</code> ratio above 100%</strong> means the spindle cannot sustain this load forever — short bursts may still be safe. Useful for pacing long operations rather than predicting immediate failure.</li>
</ul>
<h2 id="input-power-vs-output-power">Input power vs output power</h2>
<p>The power numerator above is <strong>input power</strong> (energy entering the spindle), not output power (energy reaching the cutting end). They are related by the spindle's energy efficiency:</p>
<p><span class="math">\(\text{inputPower\_W} = \frac{\text{AbsAxialPower\_W}}{\text{EnergyEfficiency}}\)</span></p>
<p>— where <code>EnergyEfficiency</code> is <a class="xref" href="../../api/Hi.Milling.SpindleCapability.html#Hi_Milling_SpindleCapability_EnergyEfficiency">EnergyEfficiency</a> <small>(API)</small> and <code>AbsAxialPower_W</code> is what the cutting actually demands. The lost fraction <span class="math">\((1 - \text{EnergyEfficiency})\)</span> becomes heat that the thermal envelope has to dissipate.</p>
<p><a class="xref" href="spindle-power-evaluation.html">Spindle Power Evaluation</a> documents the empirical justification for this conversion against measured Fanuc ServoGuide TCMD data.</p>
<h2 id="dry-run-idle-power">Dry-run idle power</h2>
<p>Even when the cutter is in air, a rotating spindle dissipates power as bearing friction and aerodynamic windage. HiNC models this as a sum of a linear-in-rpm term (bearing friction) and a higher-order term (windage), parameterised by:</p>
<ul>
<li><a class="xref" href="../../api/Hi.Milling.SpindleCapability.html#Hi_Milling_SpindleCapability_DryRunFrictionPowerCoefficient_mWdrpm">DryRunFrictionPowerCoefficient_mWdrpm</a> <small>(API)</small> — friction term coefficient</li>
<li><a class="xref" href="../../api/Hi.Milling.SpindleCapability.html#Hi_Milling_SpindleCapability_DryRunWindagePowerCoefficient_pWdrpm3">DryRunWindagePowerCoefficient_pWdrpm3</a> <small>(API)</small> — windage term coefficient</li>
</ul>
<p>The friction term dominates at low rpm; the windage term takes over at high rpm. The thermal envelope (next section) uses the larger of the dry-run idle power and the cutting-induced heat, so the spindle keeps warming up even during air moves.</p>
<h2 id="thermal-envelope">Thermal envelope</h2>
<p>The same <code>SpindleCapability</code> also drives a thermal model of the spindle body. <strong>You do not set heat capacity or convection directly</strong> — the thermal model is auto-calibrated from your existing inputs.</p>
<ul>
<li>The <strong>continuous (<code>∞</code>-key) curve</strong> plus <a class="xref" href="../../api/Hi.Milling.SpindleCapability.html#Hi_Milling_SpindleCapability_WorkingTemperatureUpperBoundary_C">WorkingTemperatureUpperBoundary_C</a> <small>(API)</small> together determine how fast the spindle dumps heat at steady state. Physically: the continuous rating is, by definition, the load the spindle can hold forever without exceeding the working-temperature ceiling — so HiNC infers the steady-state heat-loss capacity from this constraint.</li>
<li>The <strong>shortest-duration curve</strong> plus its duration key together determine how much heat the spindle can absorb before reaching the ceiling. Physically: the short-duration rating is, by definition, the load that brings the spindle to the ceiling exactly within that workable time — so HiNC infers the body's effective thermal mass from this constraint.</li>
</ul>
<p><strong>What this means for you</strong>: refining the contour data (more accurate (speed, power/torque) points, better matched duration keys) automatically improves both load-capacity prediction and thermal-response speed. There is no separate thermal parameter to tune.</p>
<h3 id="per-step-temperature-outputs">Per-step temperature outputs</h3>
<p>At each step the body temperature evolves under whatever heat input is currently applied (cutting losses or dry-run, whichever is larger), approaching the steady-state temperature implied by that heat input. The two outputs published per step are:</p>
<ul>
<li><a class="xref" href="../../api/Hi.MachiningSteps.MachiningStep.html#Hi_MachiningSteps_MachiningStep_SpindleTemperature_C">SpindleTemperature_C</a> <small>(API)</small> — current body temperature</li>
<li><a class="xref" href="../../api/Hi.MachiningSteps.MachiningStep.html#Hi_MachiningSteps_MachiningStep_SpindleWorkingTemperatureRatio">SpindleWorkingTemperatureRatio</a> <small>(API)</small> — body temperature normalised so that ambient is <code>0</code> and the working-temperature ceiling is <code>1</code>. A value approaching <code>1.0</code> means the spindle is near its thermal limit.</li>
</ul>
<div class="NOTE">
<h5>Note</h5>
<p><code>SpindleWorkingTemperatureRatio</code> describes the <strong>spindle housing</strong> as a whole. It is <strong>not</strong> the same as the cutter-edge thermal failure tracked by <code>ThermalYieldRatio</code> in <a class="xref" href="../milling-physics/machinability.html">Process Machinability</a>, which is a localized cutting-edge phenomenon.</p>
</div>
<h2 id="editing-and-file-io">Editing and file IO</h2>
<p>Capabilities are persisted as XML (<code>.SpindleCapability</code> files). Three pre-built spindles ship in <code>Resource/SpindleCapability/</code>:</p>
<ul>
<li><code>FANUC-aT12-12000i.SpindleCapability</code></li>
<li><code>TMV-720A-STD-8000RPM.SpindleCapability</code></li>
<li><code>VP-8--Fanuc-10000RPM.SpindleCapability</code></li>
</ul>
<p>To edit values interactively, see <a class="xref" href="../../anatomy/general-setup/spindle-capability.html">Spindle Capability Page</a> in the Quasar webservice. The desktop WPF app does not yet have a dedicated editor; load capabilities through the equipment's <code>ObjectManagementMenuButton</code> instead.</p>
<h2 id="see-also">See Also</h2>
<ul>
<li><a class="xref" href="../milling-physics/machinability.html">Process Machinability</a> — uses <code>MaxSpindleTorqueRatio</code> / <code>MaxSpindlePowerRatio</code> for tool-breakage prediction</li>
<li><a class="xref" href="spindle-power-evaluation.html">Spindle Power Evaluation</a> — empirical validation of HiNC spindle power against Fanuc ServoGuide measurements</li>
<li><a class="xref" href="../scripting/step-fields.html">Step Field Reference</a> — where the spindle power and torque ratios surface, step by step</li>
<li><a class="xref" href="../../anatomy/general-setup/spindle-capability.html">Spindle Capability Page</a> — UI editor walkthrough</li>
<li><a class="xref" href="../../workflows/project-data-checklist.html">Project Data Checklist</a> — what to collect from the machine owner, the speed-power-torque curve included</li>
<li><a class="xref" href="../simulation-performance/cpu-usage.html">CPU Usage During Simulation</a> — the workstation-side throughput ceiling, alongside this spindle-side one</li>
<li><a href="machine-condition.html">Machine Condition and Safety Factors</a> — the factors applied to these curves, and why a worn machine needs larger ones</li>
<li><a href="../../manual/setup/spindle-capability.html">Spindle Capability Setup</a> — entering these curves in the application, and the stand-in a project without them inherits</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>
Binary file not shown.

After

Width:  |  Height:  |  Size: 911 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 360 KiB

@@ -0,0 +1,217 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Spindle Power Evaluation | HiAPI-C# 2025 </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Spindle Power Evaluation | 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="Technique-SpindlePowerEvaluation">
<h1 id="spindle-power-evaluation">Spindle Power Evaluation</h1>
<p>For the spindle capability model itself (boundary curves, thermal envelope, and the four torque/power ratios), see <a class="xref" href="spindle-capability.html">Spindle Capability</a>. This page focuses on <strong>empirical validation</strong> of HiNC's spindle-power evaluation against measured data.</p>
<h2 id="the-role-of-spindle-power-for-energy-cost-of-milling">The role of spindle power for energy cost of Milling</h2>
<p>The energy distribution can be referenced from Heidenhain's published measurements<a id="fnref:1" href="#fn:1" class="footnote-ref"><sup>1</sup></a>. The total machine power splits into two main flows:</p>
<ul>
<li><strong>External processing</strong> — Cooling lubricant and Compressed air, typically supplied by facility infrastructure.</li>
<li><strong>Electrical power of the machine</strong> — The machine's own electrical consumption, further split into Auxiliary components and CNC control (which contains Spindle and Feed drives).</li>
</ul>
<div class="NOTE">
<h5>Note</h5>
<p><strong>Case A: Mean power requirement for manufacturing a housing part — Roughing (13 kW)</strong></p>
<pre><code class="lang-mermaid">sankey-beta
Total power (13 kW),External processing,6.4
External processing,Cooling lubricant,5.1
External processing,Compressed air,1.3
Total power (13 kW),Electrical power of the machine,6.6
Electrical power of the machine,Auxiliary components,3.1
Electrical power of the machine,CNC control,3.5
CNC control,Spindle,3.25
CNC control,Feed drives,0.25
</code></pre>
</div>
<div class="NOTE">
<h5>Note</h5>
<p><strong>Case A: Mean power requirement for manufacturing a housing part — Finishing (7.4 kW)</strong></p>
<pre><code class="lang-mermaid">sankey-beta
Total power (7.4 kW),External processing,2.8
External processing,Cooling lubricant,1.5
External processing,Compressed air,1.3
Total power (7.4 kW),Electrical power of the machine,4.6
Electrical power of the machine,Auxiliary components,2.8
Electrical power of the machine,CNC control,1.8
CNC control,Spindle,1.55
CNC control,Feed drives,0.25
</code></pre>
</div>
<div class="NOTE">
<h5>Note</h5>
<p><strong>Case B: Mean power consumption of the drives during rough facing</strong></p>
<p>Face-milling cutter D = 60 mm, speed 4 100 rpm, infeed depth 4 mm.</p>
<pre><code class="lang-mermaid">xychart-beta
title &quot;Mean power consumption of the drives (kW)&quot;
x-axis [&quot;Spindle&quot;, &quot;Feed axes&quot;]
y-axis &quot;Mean power (kW)&quot; 0 --&gt; 20
bar [18.5, 0.3]
</code></pre>
</div>
<p>In Case A roughing, the workpiece material seems like Al6061. CNC control (Spindle + Feed drives) takes about 27% of the total power (3.5 / 13 ≈ 26.9%).</p>
<p>From HiNC spindle power evaluation:</p>
<ul>
<li>Milling S45C cost 200% energy compare to Al6061T6.</li>
<li>Milling Inconel718 cost 800% energy compare to Al6061T6</li>
</ul>
<p>i.e.,</p>
<ul>
<li>Spindle power of milling S45C occupies 42% of total power.</li>
<li>Spindle power of milling Inconel718 occupies 75% of total power.</li>
</ul>
<p>Conclusion: Spindle Power matters for not easy-working materials for computing the energy cost of milling.</p>
<h2 id="verification-of-hinc-spindle-power-evaluation">Verification of HiNC Spindle Power Evaluation</h2>
<p>HiNC Spindle Power Evaluation is verified by comparison of the gathering Data based on the following setting.</p>
<h3 id="setting">Setting</h3>
<ul>
<li><p>Machine Tool: YCM NDV102A</p>
</li>
<li><p>Max Spindle Power: 22.4 kW</p>
</li>
<li><p>Controller: Fanuc 31i-Model A</p>
</li>
<li><p>Sampling: 1ms</p>
</li>
<li><p>Total Spindle Expended Energy: 0.412 kWh</p>
<p>The total spindle expended energy is rearranged from Fanuc ServoGuide TCMD data.</p>
</li>
<li><p>Work Time: 8min 30s</p>
</li>
</ul>
<h3 id="comparison">Comparison</h3>
<p>The following figures are spindle power based on Controller and the spindle power evaluated by HiNC.</p>
<div class="NOTE">
<h5>Note</h5>
<p><strong>The spindle power by Fanuc ServoGuide TCMD(%) * MaxSpindlePower</strong></p>
<p><img src="spindle-power-evaluation-img/Fanuc_Spindle_Power.png" alt="Fanuc_Spindle_Power"></p>
</div>
<div class="NOTE">
<h5>Note</h5>
<p><strong>The evaluated spindle power by HiNC Milling Power * Energy Conversion Efficiency (here is 0.4)</strong></p>
<p><img src="spindle-power-evaluation-img/HiNC_Spindle_Power.png" alt="HiNC_Spindle_Power"></p>
</div>
<h2 id="see-also">See Also</h2>
<ul>
<li><a class="xref" href="spindle-capability.html">Spindle Capability</a> — the model these measurements validate</li>
</ul>
<div class="footnotes">
<hr>
<ol>
<li id="fn:1">
<p>Data summarized from Heidenhain, <em>Technical Information: Aspects of Energy Efficiency in Machine Tools</em>, November 2010.<a href="#fnref:1" class="footnote-back-ref">&#8617;</a></p>
</li>
</ol>
</div>
</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>
@@ -0,0 +1,34 @@
<div id="sidetoggle">
<div>
<div class="sidefilter">
<form class="toc-filter">
<span class="glyphicon glyphicon-filter filter-icon"></span>
<span class="glyphicon glyphicon-remove clear-icon" id="toc_filter_clear"></span>
<input type="text" id="toc_filter_input" placeholder="Filter by title" onkeypress="if(event.keyCode==13) {return false;}">
</form>
</div>
<div class="sidetoc">
<div class="toc" id="toc">
<ul class="nav level1">
<li>
<a href="index.html" name="" title="Overview">Overview</a>
</li>
<li>
<a href="spindle-capability.html" name="" title="Spindle Capability">Spindle Capability</a>
</li>
<li>
<a href="spindle-power-evaluation.html" name="" title="Spindle Power Evaluation">Spindle Power Evaluation</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="machine-condition.html" name="" title="Machine Condition and Safety Factors">Machine Condition and Safety Factors</a>
</li>
</ul>
</div>
</div>
</div>
</div>
@@ -0,0 +1,2 @@
{"items":[{"name":"Overview","href":"index.html","topicHref":"index.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":"CAM Floating-Point Drift","href":"cam-floating-point-drift.html","topicHref":"cam-floating-point-drift.html"},{"name":"Machine Condition and Safety Factors","href":"machine-condition.html","topicHref":"machine-condition.html"}]}