fix SoftNcRunner GM code normalization.

This commit is contained in:
2026-05-06 13:21:19 +08:00
parent 0fe9497552
commit 2f57932000
1238 changed files with 69405 additions and 22511 deletions
Binary file not shown.

After

Width:  |  Height:  |  Size: 251 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 561 KiB

@@ -0,0 +1,175 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Optimized Feed Rate at Corners Is Lower Than Empirically Feasible | HiAPI-C# 2025 </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Optimized Feed Rate at Corners Is Lower Than Empirically Feasible | 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="optimized-feed-rate-at-corners-is-lower-than-empirically-feasible">Optimized Feed Rate at Corners Is Lower Than Empirically Feasible</h1>
<p>See also <a class="xref" href="nc-optimization-principles.html">NC Optimization</a> and the script command <a class="xref" href="../../workflows/nc-optimization.html">Workflow: NC Optimization</a>.</p>
<h2 id="phenomenon">Phenomenon</h2>
<p>During NC feed rate optimization, corners often exhibit significant feed rate reductions — sometimes even lower than what is empirically known to be feasible. This puzzles users: actual machining at corners doesn't require such drastic reductions, so why does the optimization produce these results?</p>
<h2 id="controller-deceleration-at-corners">Controller Deceleration at Corners</h2>
<p>At corners, the controller <strong>automatically decelerates</strong> at high speeds. This is a built-in controller behavior as well as a hardware limitation, designed to ensure the machine can safely and accurately complete direction changes. The controller also provides parameters to adjust this acceleration/deceleration behavior.</p>
<h3 id="relationship-between-buffer-distance-and-speed">Relationship Between Buffer Distance and Speed</h3>
<p>The higher the speed, the longer the required buffer distance. The figure below shows machining conditions for several straight-line paths:</p>
<p><img src="corner-behavior-img/StraightLine-path.png" alt="Straight-line path machining conditions"></p>
<p>The figure labels the spindle speed (S) and feed rate (F) settings for different segments:</p>
<ul>
<li>through1/through2: S500, F200/F100</li>
<li>low1/low2/low3: S1200, F200/F400/F600</li>
<li>high1/high2/high3: S7200, F1200/F2400/F3600</li>
</ul>
<h2 id="force-simulation-error-analysis">Force Simulation Error Analysis</h2>
<p>The figure below shows the force simulation error after applying and comparing dynamometer data, with blue-to-red indicating error ratio from low to high:</p>
<p><img src="corner-behavior-img/corner-force-overview.png" alt="Corner force error overview"></p>
<h3 id="error-characteristics">Error Characteristics</h3>
<p>The following characteristics can be observed from the figure:</p>
<ol>
<li><strong>Errors increase closer to tool retraction (corners toward the Z direction)</strong></li>
<li><strong>Higher feed rates result in longer high-error intervals</strong></li>
</ol>
<h3 id="error-sources">Error Sources</h3>
<p>The errors mainly originate from <strong>controller deceleration</strong>. From the per-revolution waveform at the <code>F3600</code> corner in the lower part of the figure:</p>
<table>
<thead>
<tr>
<th>Data Source</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>Left (simulated ideal force)</td>
<td>Ideal cutting force calculated based on the set feed rate</td>
</tr>
<tr>
<td>Right (dynamometer data)</td>
<td>Measured cutting force, approximately one-third of the ideal force</td>
</tr>
</tbody>
</table>
<p>The test material was S45C. At that location, <strong>the actual feed should be even lower than one-third of the ideal feed</strong>.</p>
<h2 id="why-is-the-optimized-value-lower-than-the-empirical-value">Why Is the Optimized Value Lower Than the Empirical Value?</h2>
<p>During NC feed rate optimization, corners often show significant feed rate reductions. Beyond the fact that corners typically produce higher cutting forces, the reason the optimized value is lower than the empirically feasible feed rate is:</p>
<blockquote>
<p><strong>The controller has already reduced the feed rate on its own; the optimization simply reveals this.</strong></p>
</blockquote>
<p>In other words, the optimization result reflects the feed rate actually executed by the controller, not the feed rate specified in the NC program. This &ldquo;excessively low&rdquo; optimized value is in fact the real machine behavior.</p>
<h2 id="conclusion">Conclusion</h2>
<p>When you find that the optimized feed rate at corners is unusually low, this is typically not a system error but rather:</p>
<ol>
<li>The controller has already automatically reduced the actual feed rate for safe cornering</li>
<li>The optimization function faithfully reflects this deceleration behavior</li>
<li>Even if you set the empirical value, the controller would still decelerate to a similar value during actual machining</li>
</ol>
<p>Understanding this phenomenon allows you to evaluate optimization results more rationally and adjust cornering strategies or machine parameters as needed.</p>
<h2 id="tracking-the-limiting-physical-quantity-per-step">Tracking the Limiting Physical Quantity per Step</h2>
<p>To find out which physical quantity limits the feed rate at each individual step, refer to the <a href="nc-optimization-principles.html#tracking-physical-quantity-constraints-of-individual-steps">Tracking Physical Quantity Constraints of Individual Steps</a> section in <a class="xref" href="../../workflows/nc-optimization.html">Workflow: NC Optimization</a>.</p>
</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: 153 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 253 KiB

@@ -0,0 +1,142 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CPU Usage During Simulation | HiAPI-C# 2025 </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="CPU Usage During Simulation | 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="cpu-usage-during-simulation">CPU Usage During Simulation</h1>
<h2 id="simulation-computation-threads">Simulation Computation Threads</h2>
<p>Time-series data is computed on a single thread (using only one CPU core at a time); other data can be computed in parallel.</p>
<h3 id="geometry-removal">Geometry Removal</h3>
<p>Geometry removal is single-threaded because sequential cutting is required to obtain the correct CWE (Cutter-Workpiece Engagement). The workpiece geometry surface after removal appears in light pink, which typically indicates that the physics for that region have not yet been computed.</p>
<h3 id="physics-computation">Physics Computation</h3>
<p>Cutting force computation begins after CWE is obtained. Since it is independent of computation order, it runs in multi-threaded mode under normal conditions. Torque and other physical quantities are also computed in parallel during this stage.</p>
<p>Temperature computation must follow time-series order, so it converges back to a single thread.</p>
<p>The entire machining simulation alternates between these modes. Once a step is fully computed, it is colored according to the designated indicator.</p>
<h2 id="cpu-usage">CPU Usage</h2>
<h3 id="high-geometry-resolution">High Geometry Resolution</h3>
<p>When geometry resolution is high, geometry removal is faster than physics computation, so a large area of light pink follows behind the tool during simulation. There is a cap on the number of unfinished steps; geometry removal only proceeds when the count is within that limit. When physics computation cannot keep up with geometry removal, the number of pink steps stays constant.</p>
<p>In this scenario, the workload is primarily multi-core (physics computation), and you are more likely to see high multi-core CPU utilization.</p>
<p><img src="cpu-usage-img/geom-quick.png" alt="High geometry resolution"></p>
<h3 id="low-geometry-resolution">Low Geometry Resolution</h3>
<p>When geometry resolution is low, geometry removal is slower than physics computation, so the light pink area is barely visible.</p>
<p>In this scenario, the workload is primarily single-core (geometry computation).</p>
<p><img src="cpu-usage-img/geom-slow.png" alt="Low geometry resolution"></p>
<h3 id="balanced-state">Balanced State</h3>
<p>If the geometry resolution is such that geometry and physics computation do not bottleneck each other, the light pink area appears and fluctuates within a certain range. In this case, physics computation does not hold back geometry computation, and geometry computation is typically the performance bottleneck.</p>
<h3 id="cpu-not-fully-utilized">CPU Not Fully Utilized</h3>
<p>Possible reasons why the CPU is not fully utilized include:</p>
<ul>
<li>The operating system reserves headroom to ensure the GUI remains responsive. For example, Windows desktop applications (such as WPF) lower the priority of non-GUI threads by one level.</li>
<li>The software/hardware throughput has reached its limit for the process.
The reported CPU usage may not reach 100%, but other resources such as cache and bus bandwidth may be saturated. System-level factors like branch misprediction are also not reflected in the reported CPU usage.</li>
</ul>
<p>There is currently no solution for this.</p>
</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,138 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Analysis | HiAPI-C# 2025 </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Analysis | 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="analysis">Analysis</h1>
<p>Theory, principles, and evaluation techniques for interpreting simulation results and understanding machining physics.</p>
<h2 id="physics-and-coordinates">Physics and Coordinates</h2>
<ul>
<li><a href="milling-physics-coordinates.html">Milling Physics Coordinates</a> — Coordinate systems used in milling physics</li>
</ul>
<h2 id="tool-behavior-and-wear">Tool Behavior and Wear</h2>
<ul>
<li><a href="machinability.html">Process Machinability</a> — Evaluating process machinability</li>
<li><a href="wear.html">Tool Life &amp; Wear</a> — Tool life and wear modes</li>
<li><a href="relief-face-avoidance.html">Relief Face Avoidance</a> — Minimum relief angle and clearance</li>
<li><a href="radial-angle-measurement.html">Radial Angle Measurement</a> — Measuring radial rake and relief angles</li>
</ul>
<h2 id="simulation-performance">Simulation Performance</h2>
<ul>
<li><a href="cpu-usage.html">CPU Usage in Simulation</a> — CPU utilization during simulation</li>
<li><a href="corner-behavior.html">Corner Feedrate Behavior</a> — Why optimized feed rates are lower at corners</li>
</ul>
<h2 id="advanced-topics">Advanced Topics</h2>
<ul>
<li><a href="smart-holder-training.html">Smart Holder Training</a> — Smart tool holder coefficient training</li>
<li><a href="spindle-power-evaluation.html">Spindle Power Evaluation</a> — Spindle power accuracy validation</li>
<li><a href="nc-optimization-principles.html">NC Optimization Principles</a> — Optimization objectives and tracking</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>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="">
<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>, <strong>Max Spindle Torque Ratio</strong>, or <strong>Max Spindle Power Ratio</strong>.
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.RuntimeApi.html#Hi_MachiningProcs_RuntimeApi_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.</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="thermal-plastic-deformation-of-cutting-edge">Thermal Plastic Deformation of Cutting Edge</h2>
<p>If the <strong>Thermal Yield Ratio</strong> 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>
</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,133 @@
<!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>
</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,161 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>NC Optimization | HiAPI-C# 2025 </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="NC Optimization | 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="NcOptimization">
<h1 id="nc-optimization">NC Optimization</h1>
<p>Also refer to the script commands section <a class="xref" href="../../workflows/nc-optimization.html">Workflow: NC Optimization</a>.</p>
<h2 id="optimization-objective">Optimization Objective</h2>
<p>Optimization aims to make the physical quantities during machining as close to the target values as possible.</p>
<p>Since the optimization uses a conservative feed rate strategy, the physical quantities in the optimized NC code will be as close to <strong>equal to or less than</strong> the target values as possible.</p>
<h3 id="factors-determining-the-optimized-feed-rate">Factors Determining the Optimized Feed Rate</h3>
<p>The optimized feed rate is determined by:</p>
<ol>
<li><strong>Physical quantity constraints of individual <a class="xref" href="../runtime/step-intro.html">steps</a></strong>: Feed rate limits calculated for each step based on target force, yielding stress, spindle torque, etc. For detailed descriptions of indicators such as yielding stress ratio and spindle torque ratio, refer to &quot;<a href="machinability.html">Evaluating Process Machinability</a>&quot;.</li>
<li><strong>Inter-step smoothing</strong>: Interactions such as acceleration/deceleration limits and extended distances.</li>
</ol>
<h2 id="differences-in-simulation-results-after-optimization">Differences in Simulation Results After Optimization</h2>
<p>Simulation with modified feed rates produces different interpolation points than before, resulting in:</p>
<ol>
<li>Different simulation mesh errors</li>
<li>Surface morphology changes at the surface roughness level</li>
</ol>
<p>Therefore, the simulated physical quantities after optimization may not always be equal to or below the target values — they may also be slightly above.</p>
<p>The influence of interpolation point density on surface morphology is greater at rounded corners than on straight lines, so this effect may be more pronounced at corners.</p>
<div class="TIP">
<h5>Tip</h5>
<p>For abnormally low optimized feed rates at corners, refer to <a href="corner-behavior.html">Corner Feed Rate Optimization</a>.</p>
</div>
<h2 id="velocity-smoothing">Velocity Smoothing</h2>
<p>The smoothing range terminates at macro commands or line commands with unresolvable paths.</p>
<p><em>Velocity smoothing</em> applies acceleration/deceleration limits based on the path length traversed by the current line command.
Therefore, <em>velocity smoothing</em> is effective for <em>re-interpolatable</em> regions;
however, for non-re-interpolatable regions, although acceleration/deceleration limits still apply, the excessively long path length of a single line may render them impractical in actual use.</p>
<h2 id="impact-of-geometric-errors">Impact of Geometric Errors</h2>
<p>Current NC optimization is based on an ideal geometric model. If the workpiece is a casting or has installation errors, a conservatively larger workpiece geometry should be configured in the system to prevent the system from misidentifying cutting regions as non-cutting regions, which could cause tool crashes.</p>
<h2 id="tool-breakage-solutions">Tool Breakage Solutions</h2>
<p>Modify the toolpath to reduce cutting width/depth, or use HiNC's optimization feature to adjust feed rates, bringing the <strong>yielding stress ratio</strong>, <strong>max spindle torque ratio</strong>, and <strong>max spindle power ratio</strong> below 100%.</p>
<p>For detailed descriptions of these indicators and tool breakage criteria, refer to &quot;<a href="machinability.html">Evaluating Process Machinability</a>&quot;.</p>
<h2 id="thermal-edge-chipping-solutions">Thermal Edge Chipping Solutions</h2>
<p>After addressing tool breakage issues, reduce the spindle speed to allow sufficient time for the cutting edge to dissipate heat.</p>
<p>Note that whether the coolant is properly directed at the cutting edge has a significant impact.</p>
<h2 id="tracking-physical-quantity-constraints-of-individual-steps">Tracking Physical Quantity Constraints of Individual Steps</h2>
<p>To determine which physical quantity limits the feed rate for an individual step, first disable smoothing-related settings, then enable logging:</p>
<pre><code class="lang-csharp">OptMaxAcceleration_mmds2 = double.PositiveInfinity;
OptFeedrateAssignmentRatio = 0;
OptExtendedPreDistance_mm = 0;
OptExtendedPostDistance_mm = 0;
EnableIndividualStepAdjustmentLog = true;
EmbeddedLogMode = NcOptimizationEmbeddedLogMode.FullLog;
</code></pre>
<p>After running the optimization, inspect the <code>.IndependentStepAdjustment.log</code> file to view the independent optimization calculation results for each step and identify which physical quantity limited the feed rate.</p>
<p>For detailed field descriptions of the log file, refer to the <a href="../../workflows/nc-optimization.html#optimization-logs">Optimization Logs</a> section in the <a class="xref" href="../../workflows/nc-optimization.html">Workflow: NC Optimization</a> workflow.</p>
</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: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

@@ -0,0 +1,131 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Radial Rake Angle and Radial Relief Angle Measurement on the Cutting Plane | HiAPI-C# 2025 </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Radial Rake Angle and Radial Relief Angle Measurement on the Cutting Plane | 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="radial-rake-angle-and-radial-relief-angle-measurement-on-the-cutting-plane">Radial Rake Angle and Radial Relief Angle Measurement on the Cutting Plane</h1>
<p>The method for measuring angles on the tool cutting plane scan is illustrated below:</p>
<p><img src="radial-angle-measurement-img/clip-cutter-angle-scheme.jpg" alt="Tool angle measurement"></p>
<h2 id="radial-rake-angle-α">Radial Rake Angle (α)</h2>
<ol>
<li>Sweep along the tool rotation direction to find the trailing point A of the cutting edge</li>
<li>Connect point A to the center O</li>
<li>The angle ∠OAA' between line OA and the first polyline endpoint A' on the cutting side of the edge is the rake angle α</li>
</ol>
<h2 id="radial-relief-angle-β">Radial Relief Angle (β)</h2>
<ol>
<li>Find the contact point B between the tool and the envelope circle</li>
<li>Construct the tangent line Lt to the envelope circle at point B</li>
<li>BB' is the first line segment on the relief side of the tool</li>
<li>Pick an arbitrary point B'' on Lt in the relief direction</li>
<li>The angle ∠B'BB'' between BB' and Lt is the relief angle β</li>
</ol>
</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,142 @@
<!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="">
<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>
</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: 262 KiB

@@ -0,0 +1,46 @@
%
G40 G17 G49 G54 G80
G91 G28 Z0.0
T01 M06
S1500 M03
G43 Z10. H01
G01 G90 X2. Y-20. M08
G01 Z-1. F600.
G01 Y16.
Z10.
G01 X14. Y-20.
G01 Z-1. F600.
G01 Y16.
Z10.
G01 X26. Y-20.
G01 Z-1. F600.
G01 Y16.
Z10.
G00 G90 X-20. Y10.
G17 G01 Z-1. F600.
S50 M03
;@MachiningResolution_mm=0.0625;
;@SetNcResolutionFeedPerTooth();
X13. F20. ;@LineSelection("lineA",AnchorMode.FirstTouch,AnchorMode.LastTouch);
X25. F10. ;@LineSelection("lineB",AnchorMode.FirstTouch,AnchorMode.LastTouch);
S1500 M03
Z10. F600.
G91 G28 Z0.
T02 M06
S50 M03
G43 Z10. H02
G01 G90 X10. Y30. M08
G01 Z-4. F20. ;@LineSelection("drillA",AnchorMode.FirstTouch,AnchorMode.LastTouch);
Z10.
X20.
G01 Z-4. F10. ;@LineSelection("drillB",AnchorMode.FirstTouch,AnchorMode.LastTouch);
Z10.
M09
M05
G91 G28 Z0.0
M30
%
Binary file not shown.

After

Width:  |  Height:  |  Size: 217 KiB

@@ -0,0 +1,149 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Smart Tool Holder Coefficient Training | HiAPI-C# 2025 </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Smart Tool Holder Coefficient Training | 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="smart-tool-holder-coefficient-training">Smart Tool Holder Coefficient Training</h1>
<p>By cutting the following shapes and collecting three-direction torques with a smart tool holder, you can train milling coefficients through HiNC projects.</p>
<h2 id="overview">Overview</h2>
<p><img src="smart-holder-training-img/training-path-diagram.png" alt="Smart Tool Holder Coefficient Training Path Diagram"></p>
<ul>
<li>T1 End mill D10 4 flutes</li>
<li>T2 Drill bit, diameter unrestricted</li>
</ul>
<p>Click to download <a href="smart-holder-training-img/train.nc">NC code</a>.</p>
<div class="NOTE">
<h5>Note</h5>
<p><strong>Adjusting Machining Method</strong></p>
<ul>
<li>Speed and feed can be changed according to material conditions, but feed per tooth must be in multiples.</li>
<li>Slower spindle speed allows the smart tool holder to collect more data per unit time.</li>
<li>The wall thickness between the two slots in <a href="#shape-i">Shape I</a> needs to be thin enough so that <a href="#shape-ii">Shape II</a> cutting is discontinuous per revolution.</li>
</ul>
</div>
<h2 id="shape-i">Shape I</h2>
<p>Shape I consists of three red slots, which are preparatory shapes, no need to collect smart tool holder data.</p>
<ul>
<li>ae10; ap1; S1500; F600</li>
</ul>
<h2 id="shape-ii">Shape II</h2>
<p>Shape II penetrates through the thin walls between the three red slots, need to collect smart tool holder data.</p>
<ul>
<li>lineA: T1; ap1; S50; F20 (frt0.1)</li>
<li>lineB: T1; ap1; S50; F10 (frt0.05)</li>
</ul>
<h2 id="shape-iii">Shape III</h2>
<p>Shape III is drilling, need to collect smart tool holder data.</p>
<ul>
<li>drillA: T2; dp4; S50; F20</li>
<li>drillB: T2; dp4; S50; F10</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,212 @@
<!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="">
<h1 id="spindle-power-evaluation">Spindle Power Evaluation</h1>
<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>
<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,52 @@
<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="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="wear.html" name="" title="Tool Life &amp; Wear">Tool Life &amp; Wear</a>
</li>
<li>
<a href="relief-face-avoidance.html" name="" title="Relief Face Avoidance">Relief Face Avoidance</a>
</li>
<li>
<a href="radial-angle-measurement.html" name="" title="Radial Angle Measurement">Radial Angle Measurement</a>
</li>
<li>
<a href="cpu-usage.html" name="" title="CPU Usage in Simulation">CPU Usage in Simulation</a>
</li>
<li>
<a href="corner-behavior.html" name="" title="Corner Feedrate Behavior">Corner Feedrate Behavior</a>
</li>
<li>
<a href="smart-holder-training.html" name="" title="Smart Holder Training">Smart Holder Training</a>
</li>
<li>
<a href="spindle-power-evaluation.html" name="" title="Spindle Power Evaluation">Spindle Power Evaluation</a>
</li>
<li>
<a href="nc-optimization-principles.html" name="" title="NC Optimization Principles">NC Optimization Principles</a>
</li>
</ul>
</div>
</div>
</div>
</div>
@@ -0,0 +1,2 @@
{"items":[{"name":"Overview","href":"index.html","topicHref":"index.html"},{"name":"Milling Physics Coordinates","href":"milling-physics-coordinates.html","topicHref":"milling-physics-coordinates.html"},{"name":"Process Machinability","href":"machinability.html","topicHref":"machinability.html"},{"name":"Tool Life & Wear","href":"wear.html","topicHref":"wear.html"},{"name":"Relief Face Avoidance","href":"relief-face-avoidance.html","topicHref":"relief-face-avoidance.html"},{"name":"Radial Angle Measurement","href":"radial-angle-measurement.html","topicHref":"radial-angle-measurement.html"},{"name":"CPU Usage in Simulation","href":"cpu-usage.html","topicHref":"cpu-usage.html"},{"name":"Corner Feedrate Behavior","href":"corner-behavior.html","topicHref":"corner-behavior.html"},{"name":"Smart Holder Training","href":"smart-holder-training.html","topicHref":"smart-holder-training.html"},{"name":"Spindle Power Evaluation","href":"spindle-power-evaluation.html","topicHref":"spindle-power-evaluation.html"},{"name":"NC Optimization Principles","href":"nc-optimization-principles.html","topicHref":"nc-optimization-principles.html"}]}
@@ -0,0 +1,137 @@
<!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 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>
<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): 4348.<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>