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
@@ -0,0 +1,148 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Chatter, and What the Simulation Does About It | HiAPI-C# 2025 </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Chatter, and What the Simulation Does About It | 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-Chatter">
<h1 id="chatter-and-what-the-simulation-does-about-it">Chatter, and What the Simulation Does About It</h1>
<p>Chatter is self-excited vibration between cutter and workpiece, and it is the one failure mode
that a purely geometric look at the toolpath cannot see. HiNC does not predict chatter directly.
What it does instead is give the cut a force ceiling that keeps it out of the regime where chatter
starts, which covers the cutter side and leaves two other cases to be handled by the operator.</p>
<h2 id="cutter-chatter--handled-by-a-force-ceiling">Cutter Chatter — Handled by a Force Ceiling</h2>
<p>Cutter chatter does not begin while the cutting force stays below a threshold. That threshold is a
property of the machine, not of the program: a well-maintained machine tolerates a higher force
before it chatters, and the same NC on a worn one will chatter earlier.</p>
<p>So the lever is the optimizer's <strong>preferred cutting force</strong>
(<a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_OptPreferedForce_N">OptPreferedForce_N</a>). Optimizing to a preferred force holds
the cut under a ceiling for its whole length instead of only at the peaks, and if a particular
machine still chatters, the answer is a lower preferred force rather than a different toolpath.
The value that works is found once per machine and reused.</p>
<h2 id="workpiece-chatter--not-estimated">Workpiece Chatter — Not Estimated</h2>
<p>Workpiece chatter is not estimated. A thin, tall or poorly supported workpiece can vibrate at
forces the cutter itself tolerates comfortably, and nothing in the simulation reports it. Where
the part is the flexible member, the force ceiling that protects the cutter is not the ceiling
that protects the surface.</p>
<h2 id="fixed-frequency-vibration--not-the-programs-fault">Fixed-Frequency Vibration — Not the Program's Fault</h2>
<p>Fixed-frequency vibration comes from the machine's own condition — bearings, drives, structure —
and is <strong>independent of the toolpath</strong>. No NC change removes it, and re-optimizing will not help.
The practical avoidance is a spindle speed that does not coincide with the machine's harmonic
frequencies.</p>
<h2 id="strain-hardening--why-it-is-not-modelled">Strain Hardening — Why It Is Not Modelled</h2>
<p>A related question that comes up in the same conversation: milling's depth of cut is far greater
than the strain-hardened layer left by the previous pass, so the hardened material is a small
fraction of what each tooth removes. The effect on the process is minimal, and the simulation does
not model it.</p>
<h2 id="see-also">See Also</h2>
<ul>
<li><a href="../machine-capability/machine-condition.html">Machine Condition and Safety Factors</a> — the machine-side settings that decide how much force the model is allowed to ask for</li>
<li><a href="cutter-adjustment-levers.html">Cutter Adjustment Levers for Force Reduction</a> — what to change when the force has to come down and the feed rate is already as low as it can go</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,256 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Coolant Model | HiAPI-C# 2025 </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Coolant Model | 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-CoolantModel">
<h1 id="coolant-model">Coolant Model</h1>
<p>What the cutting-zone cooling actually does to the simulation. The chosen condition lives on
<a class="xref" href="../../api/Hi.Physics.CoolantHeatCondition.html">CoolantHeatCondition</a><small>(API)</small> and is consumed by
<a class="xref" href="../../api/Hi.Physics.MillingTemperatureUtil.html">MillingTemperatureUtil</a><small>(API)</small> every simulation step, which is why the
NC program's own coolant M-codes, not a single setting, decide the coefficient in force at any
moment.</p>
<p>Ordered from what selects a coefficient, through what the shipped presets set and what each field
means, to how the condition is stored.</p>
<h2 id="nc-program-drives-the-mode">NC program drives the mode</h2>
<p>The parser reads M07/M08/M09 into <a class="xref" href="../../api/Hi.Numerical.CoolantMode.html">CoolantMode</a><small>(API)</small> and carries it on every <a class="xref" href="../../api/Hi.MachiningSteps.MachineMotionStep.html">MachineMotionStep</a><small>(API)</small>. The FEM picks the effective convection coefficient at run time from that mode.</p>
<table>
<thead>
<tr>
<th>M-code</th>
<th><code>CoolantMode</code></th>
<th>Coefficient source</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>M08</code></td>
<td><code>Flood</code></td>
<td><code>CoolantConvectionCoefficient_Wdm2K</code> (baseline of the chosen type)</td>
</tr>
<tr>
<td><code>M07</code></td>
<td><code>Mist</code></td>
<td>baseline × <code>MistFloodConvectionRatio</code></td>
</tr>
<tr>
<td><code>M09</code></td>
<td><code>Off</code></td>
<td><code>OffConvectionCoefficient_Wdm2K</code></td>
</tr>
</tbody>
</table>
<p>Before the first M07/M08/M09 the mode is <code>UnDefined</code>; the FEM treats it as <code>Off</code>.</p>
<p>For <strong>StandardForcedAir</strong> (dry cutting) the machine has no liquid circuit, so even <code>M08</code> only means &ldquo;air blast on&rdquo; — its flood baseline is an air-blast coefficient, not a liquid one.</p>
<h2 id="what-each-shipped-file-sets">What each shipped file sets</h2>
<p>Each shipped cooling type is also a static preset on <a class="xref" href="../../api/Hi.Physics.CoolantHeatCondition.html">CoolantHeatCondition</a><small>(API)</small> (<code>StandardForcedAir</code>, <code>StandardWaterSolubleCoolant</code>, <code>StandardOilBasedCoolant</code>) — the same pattern as <code>WorkpieceMaterial.Al6061T6</code>; the resource files are generated from them:</p>
<table>
<thead>
<tr>
<th>Preset / file</th>
<th>Flood baseline W/(m²·K)</th>
<th>Mist ratio</th>
<th>Off W/(m²·K)</th>
<th>Temperature °C</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>StandardForcedAir</code></td>
<td>100</td>
<td>0.5</td>
<td>50</td>
<td>25</td>
</tr>
<tr>
<td><code>StandardWaterSolubleCoolant</code></td>
<td>1 000</td>
<td>0.5</td>
<td>50</td>
<td>25</td>
</tr>
<tr>
<td><code>StandardOilBasedCoolant</code></td>
<td>300</td>
<td>0.5</td>
<td>50</td>
<td>25</td>
</tr>
</tbody>
</table>
<p>The baselines are engineering defaults from the literature ranges below; when you have dynamometer / thermocouple data for your own system, tune the fields and save your own file instead. API side: <code>ApplyPreset</code> copies a preset in place; <code>MatchStandardPreset</code> maps values back to a preset name.</p>
<h2 id="properties">Properties</h2>
<p>These are the fields shown under Name / Note in the Coolant panel:</p>
<table>
<thead>
<tr>
<th>Property</th>
<th>Default</th>
<th>Notes</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>CoolantTemperature_C</code></td>
<td>25</td>
<td>Room temperature inside the enclosure.</td>
</tr>
<tr>
<td><code>CoolantConvectionCoefficient_Wdm2K</code></td>
<td>1 000</td>
<td>Flood baseline. Water-based emulsion ≈ 1 000–3 000, oil ≈ 100–500, forced air ≈ 10–500.</td>
</tr>
<tr>
<td><code>MistFloodConvectionRatio</code></td>
<td>0.5</td>
<td>MQL is roughly half the heat removal of flood. See below.</td>
</tr>
<tr>
<td><code>OffConvectionCoefficient_Wdm2K</code></td>
<td>50</td>
<td>Forced air inside a running enclosure. Natural air ≈ 5–25.</td>
</tr>
<tr>
<td><code>Name</code> / <code>Note</code></td>
<td>—</td>
<td>From the loaded file / preset; <strong>Save As&hellip;</strong> renames the condition after the file. Legacy projects without a name still work.</td>
</tr>
</tbody>
</table>
<h2 id="why-the-mist-ratio-defaults-to-05">Why the mist ratio defaults to 0.5</h2>
<p>MQL removes much less heat than flood because a thin oil aerosol has a tiny thermal mass; its main value is lubrication plus evaporative cooling, not convection. Industry handbooks place it at <strong>roughly half of flood</strong>, which gives the conservative default <code>0.5</code>. Override it when you have dynamometer / thermocouple data for your own MQL system.</p>
<div class="NOTE">
<h5>Note</h5>
<p>Further reading: UNIST <em>MQL Handbook</em> (source of the &ldquo;about half&rdquo; rule), ANEBON mist-vs-flood AISI 1045 tests, Mukesh et al. <em>IEJ</em> May 2023 review on sustainable machining. Use these only to dig deeper — the <code>0.5</code> default is already calibrated from them.</p>
</div>
<h2 id="coolant-files-workpiecematerial-pattern">Coolant files (WorkpieceMaterial pattern)</h2>
<p><code>MachiningEquipment.CoolantHeatConditionFile</code> tracks an optional <code>.CoolantHeatCondition</code> side-file, exactly like <code>Workpiece.WorkpieceMaterialFile</code> tracks a material file:</p>
<ul>
<li><strong>No file (default):</strong> the condition serializes inline in the <code>.hincproj</code>, byte-compatible with pre-pattern readers.</li>
<li><strong>File tracked:</strong> the project save externalizes the condition as <code>&lt;CoolantHeatCondition&gt;&lt;XmlSource&gt;relPath&lt;/XmlSource&gt;&lt;/CoolantHeatCondition&gt;</code> and (re)writes the side-file. Loading a file installs it in place of the current condition and records the reference (<code>XFactory.GenByFile&lt;CoolantHeatCondition&gt;</code>); a file loaded from the resource folder is copied into the project on the next save (self-contained project root).</li>
</ul>
<h2 id="xml">XML</h2>
<pre><code class="lang-xml">&lt;CoolantHeatCondition&gt;
&lt;Name&gt;StandardOilBasedCoolant&lt;/Name&gt;
&lt;Note&gt;Oil-based cutting fluid (neat oil).&lt;/Note&gt;
&lt;CoolantTemperature_C&gt;25&lt;/CoolantTemperature_C&gt;
&lt;CoolantConvectionCoefficient_Wdm2K&gt;300&lt;/CoolantConvectionCoefficient_Wdm2K&gt;
&lt;MistFloodConvectionRatio&gt;0.5&lt;/MistFloodConvectionRatio&gt;
&lt;OffConvectionCoefficient_Wdm2K&gt;50&lt;/OffConvectionCoefficient_Wdm2K&gt;
&lt;/CoolantHeatCondition&gt;
</code></pre>
<p><code>Name</code>/<code>Note</code> are optional (pre-preset files omit them); omit the last two elements to accept the defaults. The same element saved standalone is the <code>.CoolantHeatCondition</code> file format; inside a <code>.hincproj</code> it may instead appear as the <code>&lt;XmlSource&gt;</code> reference shown above.</p>
<h2 id="see-also">See Also</h2>
<ul>
<li><a href="../../manual/setup/coolant.html">Coolant</a> — picking a cooling type in the application, which is the whole of the end-user setup</li>
<li><a class="xref" href="../../anatomy/general-setup/background-coolant.html">Background / Coolant Page</a> — the Control-Tree editor for these values, field by field</li>
<li><a href="machinability.html">Process Machinability</a> — the thermal-yield ratio this model's temperatures feed</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,148 @@
<!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="Technique-CutterAdjustmentLevers">
<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="before-reaching-for-the-cutter">Before Reaching for the Cutter</h2>
<p>The cutter-side levers below are for when the cutting parameters have already been tried, because
the parameters are cheaper to change. In order:</p>
<ol>
<li><strong>Reduce feed per tooth.</strong> The most direct route to lower force, and the one the optimizer
itself takes.</li>
<li><strong>Reduce depth of cut, or width of cut.</strong> Where feed per tooth alone is not enough. Both cut
the engagement rather than the chip load per tooth, so both cost more cycle time per unit of
force removed.</li>
</ol>
<p>Only when those are exhausted, or when they would cost more cycle time than the job can afford,
do the cutter-side levers become the better trade.</p>
<h2 id="see-also">See Also</h2>
<ul>
<li><a class="xref" href="machinability.html">Evaluating Process Machinability</a> — Reading the yield-stress ratio and the spindle ratios</li>
<li><a href="chatter.html">Chatter, and What the Simulation Does About It</a> — the force ceiling that keeps a cut out of the chattering regime</li>
<li><a href="../nc-optimization/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 class="xref" href="wear.html">Tool Life &amp; Wear</a> — Wear modes affected by material grade</li>
<li><a href="cutter-geometry.html">Cutter Geometry</a> — the full cutter description these three levers are quantities of</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>
File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 375 KiB

@@ -0,0 +1,285 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Cutter Geometry | HiAPI-C# 2025 </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Cutter Geometry | 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-CutterGeometry">
<h1 id="cutter-geometry">Cutter Geometry</h1>
<p>How a cutting tool is described to the simulation: what kind of tool it is, how its cutting envelope
is expressed, and the individual quantities the force, wear and thermal models read off it. Every
value here is a property of the tool rather than of a cut, so it is entered once per tool and reused
by every step that tool takes.</p>
<p>Ordered from the classification, through the two ways an envelope is expressed, to the quantities
that hang off it.</p>
<h2 id="cutter-body-types">Cutter Body Types</h2>
<p>Cutter body types include:</p>
<ul>
<li><strong>Milling</strong>
Any tool that machines by rotation is classified as milling in HiNC, including drilling and boring.</li>
<li><strong>Freeform Subtraction</strong>
Cutting tools, EDM (electrical discharge machining) dies.</li>
</ul>
<h2 id="milling-tool-description-parameters">Milling Tool Description Parameters</h2>
<ul>
<li>Material: Shank material, cutter body material, (multi-layer) coating material and thickness.</li>
<li>Cutting edge rotation envelope: Can use simplified parameters (APT) or a custom ZR table.</li>
<li>Simplified (yield-equivalent) edge center rotation envelope:
<ul>
<li>Solid space ratio of the cutting edge rotation envelope.</li>
<li>Custom ZR table.</li>
</ul>
</li>
<li>Clamping end (non-cutting zone) shape: Custom ZR table.</li>
<li>Per-tooth geometry (including side edges and bottom edges):
<ul>
<li>Simplified parameters: Helix angle position, rake angle, relief angle.</li>
<li>Custom per-Z value: Helix angle position, rake angle, relief angle, radius length.</li>
</ul>
</li>
<li>Hone radius, tool weight, insert weight, and (thermal-equivalent) thickness.</li>
</ul>
<blockquote>
<p>For information on measuring rake angle and relief angle, refer to <a class="xref" href="../measurement/radial-angle-measurement.html">Radial Angle Measurement</a>.</p>
</blockquote>
<h2 id="apt--the-simplified-edge-envelope">APT — the Simplified Edge Envelope</h2>
<p>APT (Automatically Programmed Tool) is a universal tool definition, and the simplified alternative
to a custom ZR table for the cutting-edge rotation envelope. Refer to the APT parameter diagram:</p>
<div class="NOTE">
<h5>Note</h5>
<p><img src="cutter-geometry-img/APT.svg" alt="APT"></p>
</div>
<p>APT parameter description:</p>
<ul>
<li><code>D</code>: Diameter</li>
<li><code>Rc</code>: Corner radius</li>
<li><code>Rr</code>: Distance from corner center to tool centerline</li>
<li><code>Rz</code>: Distance from corner center to tool tip horizontal plane</li>
<li><code>Alpha</code>: Angle between horizontal plane and tool tip cone surface</li>
<li><code>Beta</code>: Angle between tool centerline and tool wall cone surface</li>
</ul>
<h2 id="upper-beam-clamping-end--shank-geometry">Upper Beam (Clamping End / Shank) Geometry</h2>
<p>The <em>upper beam</em> is the cutter's shank / body above the flute — the non-cutting,
clamping zone. It can be modeled with several geometry types; the two common
choices are:</p>
<ul>
<li><p><strong>Cylindroid</strong> — an explicit ZR table. You author every <code>(Z, r)</code> pair, so the
shank radius (and any stepped / necked profile) is whatever you type in. This
faithfully reproduces a <em>known</em> shank, but every value is data you must supply.</p>
</li>
<li><p><strong>Extended Cylinder</strong> — a cylinder whose <strong>start (bottom) profile is driven by
the flute</strong> and whose only parameter is the total length. Its radius follows
the cutter (flute-top) radius automatically, so it needs <strong>no shank
measurements</strong> — only a length long enough to reach the holder.</p>
<p>⚠ <strong><code>FullLength</code> is the beam's FULL length measured from <code>Z=0</code> (the cutter
tip), so it includes the flute span</strong> — it is <em>not</em> the remaining segment from
the flute top to the exposed end. It must therefore be <strong>larger than the flute
height</strong>: e.g. flute height 20 mm and 10 mm of shank above it → <code>FullLength = 30</code>, not 10. A value at or below the flute height inverts the beam solid;
thermal physics then cannot build its shank shell layers and reports a
<code>Cutter-UpperBeam--BelowFluteHeight</code> configuration error at tool change (the
web editor rejects such a value outright).</p>
</li>
</ul>
<p><strong>Convention — prefer the Extended Cylinder when the shank is not given.</strong> Most
tool sheets (especially at quoting stage) list only the cutting diameter, corner
radius, and stick-out; they do not give a shank diameter or a stepped/necked
profile. In that case use the <strong>Extended Cylinder</strong>: it extends the flute by a
length without inventing a radius the data does not support. A hand-authored
Cylindroid here would bake a <em>guessed</em> shank radius into the model — and an
over-fat guess produces false clearance / collision results, while an over-thin
one understates the body. Reserve the <strong>Cylindroid</strong> (explicit ZR) for tools
whose shank or neck profile is actually known or measured — e.g. stepped,
necked, or back-tapered shanks where a flute-radius extension would be wrong.</p>
<blockquote>
<p>Tip: because the Extended Cylinder's radius tracks the flute, set its length
comfortably past the exposed cutter height so the beam reaches into the holder
with no gap; the overlap is harmless for clearance checks.</p>
</blockquote>
<h2 id="relief-angle-setting">Relief Angle Setting</h2>
<p>The relief angle setting in HiNC refers to the primary relief angle. It is used to calculate flank wear width (Flank Wear, VB).</p>
<h2 id="cutter-body-weight">Cutter Body Weight</h2>
<p>Cutter body weight is used for thermal transfer calculations.</p>
<ul>
<li>Solid tools: Enter the weight of the solid tool as the cutter body weight.</li>
<li>Indexable tools: Enter the total insert weight as the cutter body weight, excluding the weight of the tool body.</li>
</ul>
<h2 id="hone-radius">Hone Radius</h2>
<p>The hone radius represents the sharpness of the tool and is the radius at the cutting edge tip. Typical values range from 20 to 50 um.</p>
<p>Tools used for machining easy-to-cut materials typically have a smaller hone radius (e.g., Al6061-T6, which can be assumed as 20 um); tools used for difficult-to-cut materials typically have a larger hone radius (e.g., stainless steel, which can be assumed as 50 um).</p>
<h2 id="edge-profile-and-edge-grind--bottom-edge-grind">Edge Profile and Edge Grind — Bottom Edge Grind</h2>
<p>The bottom edge grind needs to be configured when the bottom edge is horizontal or concave, and it affects segments with downward cutting.</p>
<p>Drill bits do not require bottom edge grind configuration — only the side edge grind needs to be set. This is because drill bit bottoms are not horizontal or concave. If a custom drill bit has a horizontal or concave bottom, then the bottom edge grind must be configured.</p>
<p>Typically, only bull-nose cutters require bottom edge grind configuration. Note that flat end mills usually do not perform downward cutting and should not, but if the process does so, the bottom edge grind must be configured.</p>
<h2 id="insert-cutters--a-worked-zr-table">Insert Cutters — a Worked ZR Table</h2>
<p>Insert cutters can be modeled in the virtual environment. See the examples below.</p>
<p><img src="cutter-geometry-img/insert-cut-mark.png" alt="An insert photographed against the Z and R axes, with the Z and R values of two edge points, the helix shift and the rake and relief angles marked on it"></p>
<p><img src="cutter-geometry-img/demo-virtual-insert-cutter.png" alt="The same insert cutter rebuilt in the virtual environment from the ZR table below"></p>
<table>
<thead>
<tr>
<th>Z</th>
<th>R</th>
<th>S.Ang.</th>
<th>R.Ang.</th>
</tr>
</thead>
<tbody>
<tr>
<td>0</td>
<td>8</td>
<td>1</td>
<td>3</td>
</tr>
<tr>
<td>0.2</td>
<td>8</td>
<td>0.5</td>
<td>3</td>
</tr>
<tr>
<td>0.4</td>
<td>8</td>
<td>0</td>
<td>3</td>
</tr>
<tr>
<td>0.5</td>
<td>8</td>
<td>0</td>
<td>3</td>
</tr>
<tr>
<td>3</td>
<td>8</td>
<td>3</td>
<td>3</td>
</tr>
<tr>
<td>6</td>
<td>8</td>
<td>4</td>
<td>3</td>
</tr>
<tr>
<td>8</td>
<td>8</td>
<td>4</td>
<td>3</td>
</tr>
</tbody>
</table>
<h2 id="see-also">See Also</h2>
<ul>
<li><a class="xref" href="../measurement/radial-angle-measurement.html">Radial Angle Measurement</a> — how to measure the rake and relief angles entered here</li>
<li><a class="xref" href="../measurement/training-cut-set-design.html">Designing a Training Cut Set</a> — why the helix angle entered here decides whether a training run can recover the shear coefficients</li>
<li><a class="xref" href="../scripting/cutter-location-playback.html">Cutter-Location (CL) Playback</a> — a CL file's <code>TLDATA</code> feeds this same tool-geometry model</li>
<li><a href="cutter-adjustment-levers.html">Cutter Adjustment Levers</a> — the three of these quantities a process engineer can actually move to cut a force peak</li>
<li><a href="../../manual/setup/cutter.html">Cutter</a> — where a tool carrying this geometry is created and edited in the application</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,150 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Milling Physics | HiAPI-C# 2025 </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Milling Physics | 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="milling-physics">Milling Physics</h1>
<p>What happens where the flute meets the workpiece, and what it does to the cutter. These pages
carry the model the simulation implements — the frames the numbers are expressed in, the criteria
that decide whether a cut is survivable, and the two ways a cutter is lost: instantly, and slowly.</p>
<p>Ordered from what the model is handed, through the frame the numbers live in and instantaneous
failure, to long-term wear and the levers that move both.</p>
<h2 id="what-the-model-is-given">What the Model Is Given</h2>
<ul>
<li><a href="cutter-geometry.html">Cutter Geometry</a> — How a tool is described to the model: the body types, the APT envelope and the ZR-table alternative, the upper beam, and the hone radius, weight and angles the force, wear and thermal models read</li>
<li><a href="coolant-model.html">Coolant Model</a> — What the cutting-zone cooling does to the temperature model: the coefficient the running program's own M-codes select, the shipped presets, and how a condition is stored</li>
</ul>
<h2 id="frames">Frames</h2>
<ul>
<li><a href="milling-physics-coordinates.html">Milling Physics Coordinates</a> — The workpiece, tool-running and spindle-rotation frames, and which sensor reports in which</li>
</ul>
<h2 id="instantaneous-failure">Instantaneous Failure</h2>
<ul>
<li><a href="machinability.html">Process Machinability</a> — The yield-stress, spindle-torque, spindle-power and thermal-yield ratios, what a value above 100% means for each, and the mesh-quantization ripple that is an artifact rather than a signal</li>
<li><a href="probabilistic-peak-crack.html">Probabilistic Peak &amp; Cutter Crack</a> — Why one narrow angular window of high contact makes an identical cut pass most of the time and crack a flute occasionally</li>
<li><a href="relief-face-avoidance.html">Relief Face Avoidance</a> — The minimum relief angle the trochoidal edge path demands, and what happens when the clearance face presses on uncut material</li>
</ul>
<h2 id="long-term-loss-and-what-to-change">Long-Term Loss and What To Change</h2>
<ul>
<li><a href="wear.html">Tool Life &amp; Wear</a> — The wear model, the three quantities it reports, and where flank-wear width stops being a valid measure</li>
<li><a href="cutter-adjustment-levers.html">Cutter Adjustment Levers</a> — Overhang, core radius and material grade: three cutter-side ways to cut a force peak without touching the NC</li>
<li><a href="chatter.html">Chatter</a> — The force ceiling that keeps a cut out of the chattering regime, the two chatter cases it does not cover, and why strain hardening is not modelled</li>
</ul>
<h2 id="see-also">See Also</h2>
<ul>
<li><a href="../machine-capability/index.html">Machine Capability</a> — the equipment ceilings this physics runs into</li>
<li><a href="../measurement/index.html">Measurement</a> — where the coefficients and angles in this model come from</li>
<li><a href="../../manual/setup/cutter.html">Cutter</a> — the application task that creates a tool carrying this geometry</li>
<li><a href="../nc-optimization/index.html">NC Optimization</a> — what the optimizer does when a cut fails these criteria</li>
<li><a href="../scripting/index.html">Scripting</a> — the per-step values that carry these quantities out of a run</li>
<li><a href="../validation/index.html">Validation</a> — how closely this model has been held against measurement</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,165 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Evaluating Process Machinability | HiAPI-C# 2025 </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Evaluating Process Machinability | 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-Machinability">
<h1 id="evaluating-process-machinability">Evaluating Process Machinability</h1>
<p>The <strong>machinability time-series chart</strong> can be used to evaluate tool breakage risk during machining.</p>
<p>Tool breakage occurs when any of the following exceeds 100% and persists for longer than one simulation step: <strong>Yielding Stress Ratio</strong> <small>[<a class="xref" href="../../api/Hi.MachiningSteps.MachiningStep.html#Hi_MachiningSteps_MachiningStep_YieldingStressRatio">YieldingStressRatio</a> (API)]</small>, <strong>Max Spindle Torque Ratio</strong> <small>[<a class="xref" href="../../api/Hi.MachiningSteps.MachiningStep.html#Hi_MachiningSteps_MachiningStep_MaxSpindleTorqueRatio">MaxSpindleTorqueRatio</a> (API)]</small>, or <strong>Max Spindle Power Ratio</strong> <small>[<a class="xref" href="../../api/Hi.MachiningSteps.MachiningStep.html#Hi_MachiningSteps_MachiningStep_MaxSpindlePowerRatio">MaxSpindlePowerRatio</a> (API)]</small>.
If the value significantly exceeds 100% — roughly speaking, above 200% — tool breakage can occur even without sustained duration.</p>
<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.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.
For the underlying boundary curves and how each ratio's denominator is computed at the current rpm, see <a class="xref" href="../machine-capability/spindle-capability.html">Spindle Capability</a>.</p>
<div class="NOTE">
<h5>Note</h5>
<p><strong>Tool Breakage Solutions</strong></p>
<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>
</div>
<h2 id="ripple-on-curved-and-tilted-cuts-mesh-quantization">Ripple on Curved and Tilted Cuts (Mesh Quantization)</h2>
<p>On a nominally constant-engagement cut that is <strong>curved or tilted</strong> — arc or helical hole milling, ramping, or 5-axis moves — the <strong>Yielding Stress Ratio</strong> (and the underlying <a class="xref" href="../../api/Hi.MachiningSteps.MachiningStep.html#Hi_MachiningSteps_MachiningStep_MaxAbsForce_N">MaxAbsForce_N</a><small>(API)</small>) can show a small step-to-step ripple even though the theoretical engagement is steady. This is a discretization artifact, not a bug.</p>
<p><strong>Cause.</strong> The workpiece is represented by an axis-aligned cubic voxel mesh (see <a href="../../workflows/basic-simulation.html#31-workpiece-entity-resolution">Workpiece Entity Resolution</a>). Orthogonal cubes cannot represent a circle or an inclined face smoothly, so the removed volume and the contact engagement area quantize against the grid from step to step. That quantization shows up as ripple in the per-step peak force, and therefore in the ratio.</p>
<p><strong>What helps.</strong> A <strong>finer</strong> <code>MachiningResolution_mm</code> makes the quantization step smaller, so the ripple amplitude shrinks — at the cost of slower geometry removal (see <a class="xref" href="../simulation-performance/cpu-usage.html">CPU Usage During Simulation</a>).</p>
<p><strong>What does <em>not</em> help.</strong> Switching to <strong>fixed-pace / sweeping</strong> motion resolution (<code>FixedPace</code>) does not remove this ripple. The ripple comes from the spatial cubic grid, not from the spacing between steps, so changing the step spacing leaves it essentially unchanged.</p>
<p><strong>Getting a smooth curve.</strong> There is no built-in filter that smooths step-series curves. If a smooth curve is needed for a report, post-process the exported CSV (<a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_WriteStepFiles_">WriteStepFiles</a><small>(API)</small>) yourself — e.g. a moving average. Note that the Yielding Stress Ratio is defined on the per-revolution <strong>peak</strong> force only (there is no averaged variant); the averaged force fields (<code>Avg…</code>) are inherently smoother when a trend, rather than the breakage peak, is what you need to read.</p>
<h2 id="thermal-plastic-deformation-of-cutting-edge">Thermal Plastic Deformation of Cutting Edge</h2>
<p>If the <strong>Thermal Yield Ratio</strong> <small>[<a class="xref" href="../../api/Hi.MachiningSteps.MachiningStep.html#Hi_MachiningSteps_MachiningStep_ThermalYieldRatio">ThermalYieldRatio</a> (API)]</small> exceeds 100%, thermal plastic deformation of the cutting edge occurs, accelerating wear.
Unlike the Yielding Stress Ratio, Max Spindle Torque Ratio, and Max Spindle Power Ratio, this is a long-term indicator — exceeding 100% does not cause immediate effects.</p>
<div class="NOTE">
<h5>Note</h5>
<p><strong>Thermal Plastic Deformation Solutions</strong></p>
<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. If the coolant is not aimed at the cutting edge, it effectively reduces the heat dissipation coefficient.</p>
</div>
<p>Tool manufacturers typically provide recommended machining conditions, and the Thermal Yield Ratio obtained by simulating under those conditions usually exceeds 100%. This is because the manufacturing formulations of tool materials differ from HiNC's conservatively set default values.
If you consider machining conditions with a Thermal Yield Ratio above 100% to be reasonable, you can adjust the thermal properties of the tool material so that the calculated Thermal Yield Ratio approaches 100%.</p>
<h2 id="see-also">See Also</h2>
<ul>
<li><p><a href="coolant-model.html">Coolant Model</a> — what decides the convection coefficient behind the thermal-yield ratio</p>
</li>
<li><p><a class="xref" href="cutter-adjustment-levers.html">Cutter Adjustment Levers</a> — what to change on the cutter when a step is not machinable as programmed</p>
</li>
<li><p><a class="xref" href="../machine-capability/spindle-capability.html">Spindle Capability</a> — where the spindle torque and power ratios come from</p>
</li>
<li><p><a class="xref" href="../simulation-performance/cpu-usage.html">CPU Usage During Simulation</a> — what a finer <code>MachiningResolution_mm</code> costs in simulation time</p>
</li>
<li><p><a class="xref" href="../simulation-performance/mesh-resolution.html">Mesh Resolution</a> — how to choose that value, and the thin-wall geometry a coarse mesh can lose entirely</p>
</li>
<li><p><a class="xref" href="../validation/cutting-force.html">Cutting Force and Torque Validation</a> — how closely the forces behind these ratios agree with measurement</p>
</li>
<li><p><a class="xref" href="../validation/anomaly-cases.html">Cutting Force Anomaly Cases</a> — two production failures these ratios would have flagged</p>
</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: 28 KiB

@@ -0,0 +1,142 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Milling Physics Coordinate Systems | HiAPI-C# 2025 </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Milling Physics Coordinate Systems | 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="Milling-Physics-Coordinates">
<h1 id="milling-physics-coordinate-systems">Milling Physics Coordinate Systems</h1>
<p>Physical properties such as milling forces, milling torques, and deformations can be represented in different coordinate systems. Sensor raw data also corresponds to different coordinate systems.</p>
<p>When viewing physical simulation data in HiNC, you will often see coordinate system notations. This chapter explains the three coordinate systems shown in the figure below.</p>
<div class="NOTE">
<h5>Note</h5>
<p><img src="milling-physics-coordinates-img/Machining-3-Coordinate.png" alt="Machining-3-Coordinate"></p>
</div>
<h2 id="workpiece-coordinate-system">Workpiece Coordinate System</h2>
<p>Workpiece Coordinate System, abbreviated as <code>[W]</code>.</p>
<p>Usually the program origin coordinate system.</p>
<p>The workpiece coordinate system is consistent with the dynamometer coordinate system.</p>
<h2 id="tool-running-coordinate-system">Tool Running Coordinate System</h2>
<p>Tool Running Coordinate System, abbreviated as <code>[TR]</code>.</p>
<p>Takes the tool running direction excluding tool normal movement as +X, tool normal vector as +Z, and defines +Y by the right-hand rule. For climb milling, +Y direction is away from the wall.</p>
<p>The tool running coordinate system is suitable for understanding machining conditions.</p>
<h2 id="spindle-rotation-coordinate-system">Spindle Rotation Coordinate System</h2>
<p>Spindle Rotation Coordinate System, abbreviated as <code>[SR]</code>.</p>
<p>The tool running coordinate system rotated around the Z axis by spindle motion angle <span class="math">\(\theta\)</span> becomes the spindle rotation coordinate system.</p>
<p>The spindle rotation coordinate system is consistent with the smart tool holder coordinate system, as the smart tool holder sensor rotates with the spindle.</p>
<h2 id="see-also">See Also</h2>
<ul>
<li><p><a href="../measurement/smart-tool-holder.html">Smart Tool Holder</a> — the sensor whose torque is reported in the spindle-rotation frame, and the mounting values that decide its scale</p>
</li>
<li><p><a class="xref" href="../scripting/step-fields.html">Step Field Reference</a> — the per-step outputs whose <code>[W]</code> / <code>[TR]</code> / <code>[SR]</code> marks these frames decode</p>
</li>
<li><p><a class="xref" href="../measurement/smart-holder-training.html">Smart Holder Training</a> — the measurement that reports in the spindle-rotation frame</p>
</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: 79 KiB

@@ -0,0 +1,144 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Probabilistic Peak: Why a Cut Passes Most of the Time and Occasionally Cracks the Cutter | HiAPI-C# 2025 </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Probabilistic Peak: Why a Cut Passes Most of the Time and Occasionally Cracks the Cutter | 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-ProbabilisticPeakCrack">
<h1 id="probabilistic-peak-why-a-cut-passes-most-of-the-time-and-occasionally-cracks-the-cutter">Probabilistic Peak: Why a Cut Passes Most of the Time and Occasionally Cracks the Cutter</h1>
<p><img src="probabilistic-peak-crack-img/dartboard-engagement.png" alt="Spindle-moment dartboard and the matching 3D engagement for one spindle revolution">
<em>Left — spindle-moment dartboard. The <code>(Mx, My)</code> moment-vector tip is drawn as a closed
locus over one spindle revolution, coloured by the axial moment <code>Mz</code>; the concentric rings
are moment magnitude (Nm). For most of the revolution the locus stays near the centre —
small flute–workpiece contact length, small moment. One narrow lobe stretches out to the
outer rings: the angle where the contact length spikes and produces the large force that
can crack the flute. Right — the 3D engagement at that high-load phase, showing the flute
deeply engaged with the workpiece.</em></p>
<h2 id="the-mechanism">The Mechanism</h2>
<p>The flute–workpiece contact length is small for most spindle angles and spikes only inside
one <strong>narrow angular window</strong>. The large force — and the crack risk — exists only inside
that window.</p>
<p>The cutter's flutes are <strong>discrete</strong>. Whether a cutting flute actually lands inside the
narrow high-contact window is a matter of flute phase, not a certainty:</p>
<ul>
<li><strong>High probability</strong> — the flutes fall in the wide low-contact region and step over the
window. The pass completes safely.</li>
<li><strong>Low probability</strong> — a flute lands inside the narrow window, takes the full contact
length, and sees the large force. The flute can crack.</li>
</ul>
<p>This is why a cut with a clear high-contact window still passes most of the time and only
occasionally breaks the cutter, and why nominally identical geometry can pass on one pass
and crack on another. It is the same effect documented under
<a href="../machine-capability/cam-floating-point-drift.html#probabilistic-peak-dodging">Probabilistic Peak Dodging</a>.</p>
<h2 id="see-also">See Also</h2>
<ul>
<li><a class="xref" href="../machine-capability/cam-floating-point-drift.html">CAM Floating-Point Drift</a> — a concrete case of the same
probabilistic peak effect, triggered by sub-micron floor contact.</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: 115 KiB

@@ -0,0 +1,147 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Primary Relief Angle Clearance | HiAPI-C# 2025 </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Primary Relief Angle Clearance | 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-ReliefFaceAvoidance">
<h1 id="primary-relief-angle-clearance">Primary Relief Angle Clearance</h1>
<p>All relief angles discussed in this article refer to the primary relief angle — the relief angle closest to the cutting zone. Also known as the clearance angle.</p>
<p>During cutting, the milling cutter edge follows a trochoidal motion, shown as the red trochoid in the figure below. The blue circle is the tool envelope circle.</p>
<p>The region inside the red trochoid (toward the center of the envelope circle) is the already-cut area; the region outside the red trochoid is the uncut area. If the relief face falls in that region, it will collide with the uncut material.
Therefore, <strong>the angle marked RA (abbreviation for Relief Angle) represents the minimum required relief angle.</strong></p>
<p><img src="relief-face-avoidance-img/relief-angle.png" alt="relief-angle.png"></p>
<p>If the actual tool relief angle is smaller than the minimum required relief angle, the clearance face will press against the uncut workpiece, increasing forces on both the tool and the workpiece. This leads to greater tool vibration, workpiece surface springback, a sharp rise in surface roughness, and reduced tool life.</p>
<h2 id="minimum-required-relief-angle-calculation">Minimum Required Relief Angle Calculation</h2>
<p>For fixed-axis machining, the minimum required relief angle can be calculated from the feed rate, spindle speed, and tool radius. For simultaneous multi-axis machining, it must be computed in batch for each contact point along the program path.</p>
<p>The following outlines the calculation for fixed-axis machining.</p>
<p><span class="math">\(\vec r_p = \left(t\cdot v-R\cdot\sin\left(t\cdot w\right),R-R\cdot\cos\left(t\cdot w\right)\right)\)</span></p>
<p><span class="math">\(\vec r_b = \left(a\cdot v-R\cdot\cos\left(s\right),R-R\cdot\sin\left(s\right)\right)\)</span></p>
<p>Where:
<span class="math">\(\vec r_p\)</span> is the position vector of the red trochoid;
<span class="math">\(\vec r_b\)</span> is the position vector of the blue circle;
<span class="math">\(R\)</span> is the tool radius (mm);
<span class="math">\(w\)</span> is the spindle speed (rad/s);
<span class="math">\(v\)</span> is the feed rate (mm/s);
<span class="math">\(t\)</span> is time;
<span class="math">\(s = t\cdot w\)</span>;
<span class="math">\(a\)</span> is a specified time, used as a constant.</p>
<p>Let the velocity vectors be</p>
<div class="math">
\[
\vec v_p = \frac{d\vec r_p}{dt} ,
\vec v_b = \frac{d\vec r_b}{ds}
\]</div>
<p>The angle between <span class="math">\(\vec v_p\)</span> and <span class="math">\(\vec v_b\)</span> is the minimum required relief angle.</p>
<h2 id="see-also">See Also</h2>
<ul>
<li><a class="xref" href="../machine-capability/cam-floating-point-drift.html">CAM Floating-Point Drift</a> — drift in the toolpath that can look like relief-face contact</li>
<li><a class="xref" href="../measurement/radial-angle-measurement.html">Radial Angle Measurement</a> — how the cutter's actual relief angle is measured</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,49 @@
<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="cutter-geometry.html" name="" title="Cutter Geometry">Cutter Geometry</a>
</li>
<li>
<a href="coolant-model.html" name="" title="Coolant Model">Coolant Model</a>
</li>
<li>
<a href="milling-physics-coordinates.html" name="" title="Milling Physics Coordinates">Milling Physics Coordinates</a>
</li>
<li>
<a href="machinability.html" name="" title="Process Machinability">Process Machinability</a>
</li>
<li>
<a href="probabilistic-peak-crack.html" name="" title="Probabilistic Peak &amp; Cutter Crack">Probabilistic Peak &amp; Cutter Crack</a>
</li>
<li>
<a href="relief-face-avoidance.html" name="" title="Relief Face Avoidance">Relief Face Avoidance</a>
</li>
<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="chatter.html" name="" title="Chatter">Chatter</a>
</li>
</ul>
</div>
</div>
</div>
</div>
@@ -0,0 +1,2 @@
{"items":[{"name":"Overview","href":"index.html","topicHref":"index.html"},{"name":"Cutter Geometry","href":"cutter-geometry.html","topicHref":"cutter-geometry.html"},{"name":"Coolant Model","href":"coolant-model.html","topicHref":"coolant-model.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":"Probabilistic Peak & Cutter Crack","href":"probabilistic-peak-crack.html","topicHref":"probabilistic-peak-crack.html"},{"name":"Relief Face Avoidance","href":"relief-face-avoidance.html","topicHref":"relief-face-avoidance.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":"Chatter","href":"chatter.html","topicHref":"chatter.html"}]}
@@ -0,0 +1,144 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Tool Life and Wear | HiAPI-C# 2025 </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Tool Life and Wear | 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="Wear">
<h1 id="tool-life-and-wear">Tool Life and Wear</h1>
<p>There are many modes of cutting edge damage, which can be attributed to instantaneous failure modes, including tool breakage and thermal cracking, see <a class="xref" href="machinability.html">this article</a>; while for modes attributed to long-term consumption failure, <u>it is recommended to use <strong>flank wear</strong> as the target for evaluating tool life</u>.</p>
<p>HiNC adopts the wear model<a id="fnref:1" href="#fn:1" class="footnote-ref"><sup>1</sup></a>:</p>
<p><span class="math">\(W(T) = \frac{k(T) L P}{H(T)}\)</span></p>
<p>where W is wear amount, k is wear coefficient, L is contact length, P is pressure, H is hardness, T is temperature.</p>
<p>HiNC calculates wear including:</p>
<ul>
<li>Crater Wear</li>
<li>Flank Wear Width</li>
<li>Flank Wear Depth</li>
</ul>
<p>Here crater wear refers to crater wear depth.</p>
<p>Flank wear width is most commonly used as an evaluation target in papers because it has measurement standards. In planar motion, tools will wear at the cutting peak first then the flank, so flank wear width can be used to evaluate total wear in laboratory settings.</p>
<p>However, if the tool has up and down motion during milling, the flank will experience random collisions before the cutting peak is worn out, in which case flank wear width loses its value for evaluating total wear.</p>
<p>The flank wear width calculated by HiNC assumes no random flank collisions and is only applicable to planar cutting. HiNC retains this value for research purposes.</p>
<h2 id="see-also">See Also</h2>
<ul>
<li><p><a class="xref" href="../validation/temperature-and-wear.html">Temperature and Wear Validation</a> — this model checked against thermal imaging and a measured wear depth</p>
</li>
<li><p><a class="xref" href="cutter-adjustment-levers.html">Cutter Adjustment Levers</a> — which cutter parameters to move once wear is the limit</p>
</li>
</ul>
<div class="footnotes">
<hr>
<ol>
<li id="fn:1">
<p>Lee, R. S, and J. L Jou. &ldquo;Application of Numerical Simulation for Wear Analysis of Warm Forging Die.&rdquo; Journal of Materials Processing Technology, Proceedings of the 6th Asia Pacific Conference on materials Processing, 140, no. 1 (September 22, 2003): 43–48.<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>