This repository has been archived on 2026-10-11. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
HiNC-2025-win-desktop-Deploy/App/wwwroot/HiAPI-docsite/technique/simulation-performance/mesh-resolution.html
T
2026-09-09 17:35:23 +08:00

212 lines
10 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Mesh Resolution | HiAPI-C# 2025 </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Mesh Resolution | 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-MeshResolution">
<h1 id="mesh-resolution">Mesh Resolution</h1>
<p><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_MachiningResolution_mm">MachiningResolution_mm</a> is the edge length of the cubes the
workpiece is built from, and it is the single largest lever on how long a simulation takes. It is
also the setting most often set once and forgotten, which is expensive in both directions: too
fine and a run that should take minutes takes hours, too coarse and a feature the program is
supposed to cut is not there to be cut.</p>
<h2 id="choosing-a-value">Choosing a Value</h2>
<p>Work coarse first. An early run answers questions — does the path collide, is the force roughly
where it should be, does the optimizer have room — that do not need a fine mesh, and it answers
them in a fraction of the time. Refine only for the final optimization pass, where the geometry
that comes out is the deliverable.</p>
<p>As a planning figure, a simulation run takes somewhere between <strong>2% and 150% of the actual
machining time</strong>, spanning that whole range depending on the mesh and the step count. That is
wide because it is genuinely a choice, not a property of the machine.</p>
<p>Where the time actually goes, and which of the two costs is currently the bottleneck, is in
<a href="cpu-usage.html">CPU Usage During Simulation</a>. The short version: at the fine resolutions real NC
work needs, geometry removal dominates and a finer mesh is much slower; once the mesh is coarse
enough that removal is cheap, the per-step costs dominate and coarsening further buys nothing.</p>
<h2 id="what-value-you-actually-get">What Value You Actually Get</h2>
<p>The number you type is a request, not the width. The workpiece is carved out of a cube grid that
starts from one fixed root cube and is halved level by level, so every width the engine can
actually build is a power of two in millimetres:</p>
<pre><code>... 2 - 1 - 0.5 - 0.25 - 0.125 - 0.0625 - 0.03125 ...
</code></pre>
<p>A request that is not one of those is rounded <strong>to the next finer one</strong>, never to a coarser one,
so the mesh you get is never worse than the mesh you asked for. The consequence worth knowing is
that a value chosen off the ladder buys nothing:</p>
<table>
<thead>
<tr>
<th>Requested</th>
<th>Actually built</th>
</tr>
</thead>
<tbody>
<tr>
<td>0.5</td>
<td>0.5</td>
</tr>
<tr>
<td>0.4</td>
<td>0.25</td>
</tr>
<tr>
<td>0.3</td>
<td>0.25</td>
</tr>
<tr>
<td>0.25</td>
<td>0.25</td>
</tr>
<tr>
<td>0.2</td>
<td>0.125</td>
</tr>
<tr>
<td>0.125</td>
<td>0.125</td>
</tr>
</tbody>
</table>
<p><strong>0.4 mm and 0.25 mm produce the same mesh, at the same cost.</strong> 0.4 is 0.25 wearing a misleading
label: it reads as a coarse, cheap setting and runs as a fine, expensive one. If 0.25 mm is finer
than the run needs, the next value that changes anything is 0.5 mm — and going the other way,
0.125 mm is another eight times the voxels, not a small step.</p>
<p>The ladder bottoms out at <strong>0.001953125 mm</strong>. A finer request is clamped to it, so the finest entry
offered in the workpiece's Initial Resolution list builds the same mesh as the one above it.</p>
<p>Pick from the ladder and the number shown in the mission row is the number the run used. That
matters beyond tidiness: a recorded mesh is built at whatever resolution is in force when the
record runs, so an off-ladder value is silently baked into the cache as its rounded neighbour.</p>
<h2 id="what-the-mesh-does-not-change">What the Mesh Does Not Change</h2>
<p>For a representative test case — downward circular slot milling with varying width and depth —
the <strong>physical</strong> values move within about <strong>20%</strong> across the full range of mesh widths. The
simulated forces, torques and temperatures from a coarse first pass are therefore already
informative; they do not become a different answer when the mesh is refined.</p>
<p>The visible geometry is a different matter, and it is what the three runs below show. Workpiece
70 × 50 × 50 mm:</p>
<p><img src="mesh-resolution-img/mesh-width-0125.png" alt="Mesh width 0.125 mm">
Mesh width 0.125 mm</p>
<p><img src="mesh-resolution-img/mesh-width-05.jpg" alt="Mesh width 0.5 mm">
Mesh width 0.5 mm</p>
<p><img src="mesh-resolution-img/mesh-width-1.png" alt="Mesh width 1 mm">
Mesh width 1 mm</p>
<h2 id="the-failure-mode-worth-knowing">The Failure Mode Worth Knowing</h2>
<p><strong>A thin shell thinner than the mesh width can disappear entirely.</strong> The test case above has no
thin shell, which is why its physical values are so insensitive; a part that does have one behaves
differently, because the material the cutter should be meeting is not represented at all. Where
the workpiece has a wall, web or floor thinner than the mesh width, the mesh must be finer than
that feature before the run says anything about it.</p>
<p>The related and much smaller effect is quantization ripple in the per-step ratios, which a finer
mesh reduces — see <a class="xref" href="../milling-physics/machinability.html">Process Machinability</a>.</p>
<h2 id="see-also">See Also</h2>
<ul>
<li><a href="cpu-usage.html">CPU Usage During Simulation</a> — which of the two cost drivers a given mesh width puts in the way</li>
<li><a class="xref" href="../milling-physics/machinability.html">Process Machinability</a> — the mesh-quantization ripple in the availability ratios, and why it is an artifact rather than a signal</li>
<li><a href="../../manual/setup/workpiece.html">Workpiece</a> — where the initial resolution is set, on the branch carrying the stock it applies to</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>