Archived
deploy webservice static-file routing for docsite folder URLs, per-instance step-cache db, and constant-height panel title bars.
This commit is contained in:
@@ -0,0 +1,227 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Cutter-Location (CL) Playback | HiAPI-C# 2025 </title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="title" content="Cutter-Location (CL) Playback | 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 "{query}"">
|
||||
<meta name="loc:searchNoResults" content="No results for "{query}"">
|
||||
<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="CutterLocation-Playback">
|
||||
<h1 id="cutter-location-cl-playback">Cutter-Location (CL) Playback</h1>
|
||||
|
||||
<p><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_PlayClFile_">PlayClFile</a> replays a <strong>CAM cutter-location file</strong> — an NX CLSF (<code>.cls</code>) / APT-source toolpath — directly as tool motion, without a post-processor. Use it to verify the <em>programmed</em> toolpath itself (gouge, overcut, engagement) <strong>before</strong> it is post-processed for any particular machine.</p>
|
||||
<p>The same file can also be played onto a real machine-tool chain, and a played CL program can be written back out as Fanuc NC — see <a href="#two-chains-two-questions">Two chains, two questions</a> and <a href="#converting-cl-to-nc">Converting CL to NC</a>.</p>
|
||||
<h2 id="cl-vs-nc--two-different-inputs">CL vs. NC — two different inputs</h2>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th></th>
|
||||
<th><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_PlayNcFile_">PlayNcFile</a> (NC / G-code)</th>
|
||||
<th><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_PlayClFile_">PlayClFile</a> (CL / CLSF)</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Source</td>
|
||||
<td>Post-processed G-code for <strong>one specific machine</strong></td>
|
||||
<td>CAM cutter-location output, <strong>before</strong> post-processing, machine-independent</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Content</td>
|
||||
<td>Axis moves (<code>G01 X.. Y.. Z..</code>), work offsets, canned cycles</td>
|
||||
<td>Cutter locations (<code>GOTO</code>), arcs (<code>CIRCLE</code>), tool axis vectors</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Drives</td>
|
||||
<td>A <strong>machine-tool chain</strong> (X/Y/Z/A/B/C axes) through kinematics</td>
|
||||
<td>Either chain — see below</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Answers</td>
|
||||
<td>“What does <em>this machine</em> do with this program?”</td>
|
||||
<td>“Is the <em>programmed path</em> correct?” — or, on a machine chain, both questions at once</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<p>A cutter location is a <strong>point plus a tool-axis direction</strong> in workpiece coordinates. <code>PlayClFile</code> places the tool at each location in turn and sweeps the removed material between them.</p>
|
||||
<h2 id="two-chains-two-questions">Two chains, two questions</h2>
|
||||
<p>The chain configured in project setup decides what a CL play means.</p>
|
||||
<p><strong>On a <a class="xref" href="../../api/HiMachining.Milling.ClMillingDevice.html">ClMillingDevice</a></strong> the cutter location is applied straight to the tool: no inverse kinematics, no work-coordinate offsets, no controller dialect. This is the machine-independent check — it answers whether the CAM output itself is correct, and it is the right chain when you do not yet know which machine will run the job.</p>
|
||||
<p><strong>On a machine-tool chain</strong> every CLSF motion endpoint is inverse-solved at parse time and expressed in the same program-to-machine transform vocabulary the NC pipeline uses — a tool-height entry from the active tool, a pivot entry anchored to the workpiece frame, and the solved rotary axes — so the shared machine-coordinate and rotary-wrap handling is reused unchanged. This answers what a <em>particular</em> machine would do with the path, including reach and rotary behaviour, without a post-processor in between.</p>
|
||||
<div class="NOTE">
|
||||
<h5>Note</h5>
|
||||
<p>A machine-chain play needs the project's kinematics to resolve to a live solver. Where an endpoint cannot be solved, the motion is reported rather than silently dropped — watch for <code>ClToMc--EndpointIkFailed</code> and <code>ClToMc--NoToolOffset</code> in the diagnostics.</p>
|
||||
</div>
|
||||
<h2 id="converting-cl-to-nc">Converting CL to NC</h2>
|
||||
<p><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_ConvertClToNcFiles_">ConvertClToNcFiles</a> writes a played CL program back out as Fanuc NC, one file per source file, template-substituting <code>[NcName]</code> (default <code>Output/[NcName].nc</code>). It requires a prior play <strong>on a machine chain</strong> — a <code>ClMillingDevice</code> leaves no machine-solved data to serialize — and reports <code>ConvertClToNc--NoPlay</code> otherwise. A mission can declare the writeback through <a class="xref" href="../../api/Hi.SessionCommands.PostExecutionCommand.html#Hi_SessionCommands_PostExecutionCommand_EnableConvertClToNcFiles">EnableConvertClToNcFiles</a> and <a class="xref" href="../../api/Hi.SessionCommands.PostExecutionCommand.html#Hi_SessionCommands_PostExecutionCommand_ClToNcFileTemplate">ClToNcFileTemplate</a>.</p>
|
||||
<h2 id="file-format">File format</h2>
|
||||
<p>The reader parses <strong>NX CLSF</strong> records (the APT-source language):</p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Record</th>
|
||||
<th>Effect</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><code>GOTO</code></td>
|
||||
<td>Cutter location — first one positions the tool (rapid teleport); subsequent ones cut a straight CL path</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>CIRCLE</code> / <code>MOVARC</code></td>
|
||||
<td>Arms an arc; the following <code>GOTO</code> closes it into a true circular CL path</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>RAPID</code></td>
|
||||
<td>Marks the next move as a non-cutting rapid</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>FEDRAT</code></td>
|
||||
<td>Feed rate (<code>MMPM</code> / <code>IPM</code>)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>SPINDL</code></td>
|
||||
<td>Spindle speed and direction</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>COOLNT</code></td>
|
||||
<td>Coolant mode (<code>ON</code> / <code>FLOOD</code> / <code>MIST</code> / <code>OFF</code>)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>TLDATA</code></td>
|
||||
<td>Tool geometry (diameter, corner radius, length, angles)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>LOAD/TOOL</code></td>
|
||||
<td>Tool change to a tool id</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<p>Comments (<code>$$</code> to end of line) and line continuation (trailing <code>$</code>) are honored. Records outside this set (<code>PAINT</code>, <code>TOOLNO</code>, <code>TOOL PATH</code>, …) are skipped.</p>
|
||||
<div class="NOTE">
|
||||
<h5>Note</h5>
|
||||
<p>“APT” here means the APT <strong>toolpath language</strong> (<code>GOTO</code>, <code>CIRCLE</code>, …). This is a different use of the word from the <a class="xref" href="../setup/apt.html">APT Tool</a> page, which defines cutter <strong>geometry</strong>. A CL file's <code>TLDATA</code> feeds that same tool-geometry model — see below.</p>
|
||||
</div>
|
||||
<p>The dialect parsed is Siemens NX (<code>.cls</code>). Other CAM systems emit the same APT record family under different names (CATIA APTSOURCE, Creo CL files); those dialects are not yet parsed.</p>
|
||||
<h2 id="tools-from-the-file">Tools from the file</h2>
|
||||
<p>A CL file usually carries its own tool definitions. On <code>LOAD/TOOL,<id></code>, if the tool house has no matching id, the preceding <code>TLDATA</code> geometry is used to create the tool automatically. An id <strong>already present</strong> in the tool house keeps its configured tool — so you can pre-configure tools for accuracy, or let simple files be self-contained.</p>
|
||||
<h2 id="example">Example</h2>
|
||||
<pre><code class="lang-csharp">// The machining chain must be a ClMillingDevice (set in project setup).
|
||||
MachiningResolution_mm = 0.125;
|
||||
EnablePhysics = false; // geometry-only check first
|
||||
PlayClFile("CL/part-op10.cls"); // replay the CAM cutter-location file
|
||||
Diff("target/part-op10.stl"); // compare the cut against the design target
|
||||
</code></pre>
|
||||
<p>The project keeps a dedicated CL runner suit (<a class="xref" href="../../api/Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_ClsfRunnerSuit">ClsfRunnerSuit</a>) alongside its NC and CSV suits; the parser itself is the <a class="xref" href="../../api/Hi.Numerical.ClsfParsers.NxClRunner.html">NxClRunner</a> preset.</p>
|
||||
<h2 id="see-also">See Also</h2>
|
||||
<ul>
|
||||
<li><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_PlayClFile_">PlayClFile</a> — the script command</li>
|
||||
<li><a class="xref" href="../../api/HiMachining.Milling.ClMillingDevice.html">ClMillingDevice</a> — the cutter-location-driven chain</li>
|
||||
<li><a class="xref" href="../setup/apt.html">APT Tool</a> — cutter geometry (the other meaning of “APT”)</li>
|
||||
<li><a class="xref" href="script-command.html">Glossary: Script Commands</a> — what is a script command</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>
|
||||
@@ -93,7 +93,7 @@
|
||||
<li><a href="script-command.html">Script Command</a> — C# scripting syntax, execution model, warnings</li>
|
||||
<li><a href="step.html">Step</a> — The simulation computation unit: concept, accessing, custom variables, output APIs</li>
|
||||
<li><a href="step-fields.html">Step Field Reference</a> — CSV field reference for step-level output</li>
|
||||
<li><a href="session-progress.html">SessionProgress</a> — Message and progress reporting system</li>
|
||||
<li><a href="shell-progress.html">ShellProgress</a> — Message and progress reporting system</li>
|
||||
</ul>
|
||||
<h2 id="api-reference">API Reference</h2>
|
||||
<ul>
|
||||
|
||||
@@ -115,6 +115,11 @@
|
||||
<td><a class="xref" href="../../workflows/basic-simulation.html">Workflow: Basic Machining Simulation</a>, <a class="xref" href="../../workflows/sensor-mapping.html">Workflow: Sensor Data Mapping</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_PlayClFile_">PlayClFile</a></td>
|
||||
<td>Replay a cutter-location (CL / APT) toolpath file</td>
|
||||
<td><a class="xref" href="../../workflows/basic-simulation.html">Workflow: Basic Machining Simulation</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_RunNcFile_">RunNcFile</a></td>
|
||||
<td>Parse NC file and return action sequence (no auto-pacing)</td>
|
||||
<td>—</td>
|
||||
@@ -336,7 +341,7 @@
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_MillingCycleDivisionNum">MillingCycleDivisionNum</a></td>
|
||||
<td>Number of angular divisions per revolution</td>
|
||||
<td>Angular divisions per revolution — default 36 suits normal simulation; raise (e.g. 180) for training only. Process-wide: not saved per project, survives <code>ResetRuntime()</code></td>
|
||||
<td><a class="xref" href="../../workflows/force-training.html">Workflow: Milling Force Parameter Training</a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
@@ -461,28 +466,28 @@
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_WriteRuntimeGeom_">WriteRuntimeGeom</a></td>
|
||||
<td>Save runtime geometry to file</td>
|
||||
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_WriteMeshedGeom_">WriteMeshedGeom</a></td>
|
||||
<td>Save meshed geometry to file</td>
|
||||
<td><a class="xref" href="../../workflows/basic-simulation.html">Workflow: Basic Machining Simulation</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_ReadRuntimeGeom_">ReadRuntimeGeom</a></td>
|
||||
<td>Load runtime geometry from file</td>
|
||||
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_ReadMeshedGeom_">ReadMeshedGeom</a></td>
|
||||
<td>Load meshed geometry from file</td>
|
||||
<td><a class="xref" href="../../workflows/basic-simulation.html">Workflow: Basic Machining Simulation</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_WriteRuntimeGeomToStl_">WriteRuntimeGeomToStl</a></td>
|
||||
<td>Export runtime geometry to STL</td>
|
||||
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_ExportMeshedGeomToStl_">ExportMeshedGeomToStl</a></td>
|
||||
<td>Export meshed geometry to STL</td>
|
||||
<td><a class="xref" href="../../workflows/basic-simulation.html">Workflow: Basic Machining Simulation</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_WriteRuntimeGeomToObj_">WriteRuntimeGeomToObj</a></td>
|
||||
<td>Export runtime geometry to Wavefront OBJ (per-vertex RGB)</td>
|
||||
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_ExportMeshedGeomToObj_">ExportMeshedGeomToObj</a></td>
|
||||
<td>Export meshed geometry to Wavefront OBJ (per-vertex RGB)</td>
|
||||
<td><a class="xref" href="../../workflows/basic-simulation.html">Workflow: Basic Machining Simulation</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_WriteRuntimeGeomToPly_">WriteRuntimeGeomToPly</a></td>
|
||||
<td>Export runtime geometry to binary PLY (per-vertex RGB)</td>
|
||||
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_ExportMeshedGeomToPly_">ExportMeshedGeomToPly</a></td>
|
||||
<td>Export meshed geometry to binary PLY (per-vertex RGB)</td>
|
||||
<td><a class="xref" href="../../workflows/basic-simulation.html">Workflow: Basic Machining Simulation</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
@@ -496,7 +501,7 @@
|
||||
<td><a class="xref" href="../../workflows/geometry-validation.html">Workflow: Geometry Validation</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_ScanRuntimeGeomInfDefect_">ScanRuntimeGeomInfDefect</a></td>
|
||||
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_ScanMeshedGeomInfDefect_">ScanMeshedGeomInfDefect</a></td>
|
||||
<td>Scan for infinite edge cut defects</td>
|
||||
<td><a class="xref" href="../../workflows/geometry-validation.html">Workflow: Geometry Validation</a></td>
|
||||
</tr>
|
||||
@@ -507,6 +512,10 @@
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="NOTE">
|
||||
<h5>Note</h5>
|
||||
<p>These geometry commands were named <code>WriteRuntimeGeom</code> / <code>ReadRuntimeGeom</code> / <code>ExportRuntimeGeomToStl|Obj|Ply</code> / <code>ScanRuntimeGeomInfDefect</code> before the meshed-geom rename. The old names still run in existing player scripts as hidden legacy aliases; new scripts should use the <code>MeshedGeom</code> names.</p>
|
||||
</div>
|
||||
<hr>
|
||||
<h2 id="events">Events</h2>
|
||||
<table>
|
||||
@@ -567,9 +576,9 @@
|
||||
<td>All workflows</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_SessionProgress">SessionProgress</a></td>
|
||||
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_ShellProgress">ShellProgress</a></td>
|
||||
<td>Session message host object</td>
|
||||
<td><a class="xref" href="session-progress.html">Glossary: Session Progress (Messages)</a></td>
|
||||
<td><a class="xref" href="shell-progress.html">Glossary: Shell Progress (Messages)</a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
@@ -664,12 +673,12 @@
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_GetUniformContourTrayShiftAngle_deg_">GetUniformContourTrayShiftAngle_deg</a></td>
|
||||
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_GetUniformFlutingShiftAngle_deg_">GetUniformFlutingShiftAngle_deg</a></td>
|
||||
<td>Get tool contour shift angle (deg)</td>
|
||||
<td>—</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_SetUniformContourTrayShiftAngle_deg_">SetUniformContourTrayShiftAngle_deg</a></td>
|
||||
<td><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_SetUniformFlutingShiftAngle_deg_">SetUniformFlutingShiftAngle_deg</a></td>
|
||||
<td>Set tool contour shift angle (deg)</td>
|
||||
<td>—</td>
|
||||
</tr>
|
||||
@@ -695,7 +704,7 @@
|
||||
<li><a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html">SessionShell</a> — full API documentation</li>
|
||||
<li><a class="xref" href="script-command.html">Glossary: Script Commands</a> — what is a script command</li>
|
||||
<li><a class="xref" href="step.html">Step</a> — step data model</li>
|
||||
<li><a class="xref" href="session-progress.html">Glossary: Session Progress (Messages)</a> — message system</li>
|
||||
<li><a class="xref" href="shell-progress.html">Glossary: Shell Progress (Messages)</a> — message system</li>
|
||||
</ul>
|
||||
|
||||
</article>
|
||||
|
||||
+9
-9
@@ -2,9 +2,9 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Glossary: Session Progress (Messages) | HiAPI-C# 2025 </title>
|
||||
<title>Glossary: Shell Progress (Messages) | HiAPI-C# 2025 </title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="title" content="Glossary: Session Progress (Messages) | HiAPI-C# 2025 ">
|
||||
<meta name="title" content="Glossary: Shell Progress (Messages) | HiAPI-C# 2025 ">
|
||||
|
||||
|
||||
<link rel="icon" href="../../img/HiAPI.favicon.ico">
|
||||
@@ -84,14 +84,14 @@
|
||||
<nav id="breadcrumb"></nav>
|
||||
</div>
|
||||
|
||||
<article data-uid="Glossary-SessionProgress">
|
||||
<h1 id="glossary-session-progress-messages">Glossary: Session Progress (Messages)</h1>
|
||||
<article data-uid="Glossary-ShellProgress">
|
||||
<h1 id="glossary-shell-progress-messages">Glossary: Shell Progress (Messages)</h1>
|
||||
|
||||
<h2 id="what-is-sessionprogress">What Is SessionProgress?</h2>
|
||||
<p><strong>SessionProgress</strong> (<a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_SessionProgress">SessionProgress</a>) is the message host object that manages all messages generated during a HiNC scripting session. It serves as the central hub for logging, filtering, and exporting diagnostic information.</p>
|
||||
<h2 id="what-is-shellprogress">What Is ShellProgress?</h2>
|
||||
<p><strong>ShellProgress</strong> (<a class="xref" href="../../api/Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_ShellProgress">ShellProgress</a>) is the message host object that manages all messages generated during a HiNC scripting session. It serves as the central hub for logging, filtering, and exporting diagnostic information.</p>
|
||||
<div class="NOTE">
|
||||
<h5>Note</h5>
|
||||
<p>The older name <code>SessionMessageHost</code> is marked <code>[Obsolete]</code>. Use <code>SessionProgress</code> instead.</p>
|
||||
<p>This host was previously named <code>SessionProgress</code> (and earlier <code>SessionMessageHost</code>); those names are superseded by <code>ShellProgress</code>.</p>
|
||||
</div>
|
||||
<hr>
|
||||
<h2 id="message-types">Message Types</h2>
|
||||
@@ -145,7 +145,7 @@ ErrorMessage("Workpiece does not exist");
|
||||
<h2 id="displaying-messages">Displaying Messages</h2>
|
||||
<p>All messages are automatically recorded in the session message host and appear in the HiNC UI <strong>message panel</strong>. Progress messages additionally update the <strong>progress bar</strong>.</p>
|
||||
<h3 id="accessing-the-message-host">Accessing the Message Host</h3>
|
||||
<pre><code class="lang-csharp">var messageHost = SessionProgress;
|
||||
<pre><code class="lang-csharp">var messageHost = ShellProgress;
|
||||
</code></pre>
|
||||
<hr>
|
||||
<h2 id="exporting-messages">Exporting Messages</h2>
|
||||
@@ -198,7 +198,7 @@ PlayNcFile("NC/file1.nc");
|
||||
<h2 id="message-lifecycle">Message Lifecycle</h2>
|
||||
<ol>
|
||||
<li>Messages are generated during script execution via the four message commands</li>
|
||||
<li>All messages are stored in the <code>SessionProgress</code> host object</li>
|
||||
<li>All messages are stored in the <code>ShellProgress</code> host object</li>
|
||||
<li>Messages persist until the session ends or the runtime is reset</li>
|
||||
<li><code>ResetRuntime()</code> clears event handlers but does <strong>not</strong> clear previously recorded messages</li>
|
||||
<li>Messages can be exported at any point using <code>AppendMessagesToFile</code></li>
|
||||
@@ -101,7 +101,7 @@
|
||||
</ul>
|
||||
<h2 id="time-and-motion">Time and Motion</h2>
|
||||
<ul>
|
||||
<li>AccumulatedTime: Accumulated simulation time.</li>
|
||||
<li>EndTimecode: Simulated end-of-step timecode (formerly <code>AccumulatedTime</code>; step CSVs written with the legacy header are still read).</li>
|
||||
<li>StepDuration: Duration of this step (default per-revolution mode: one step equals one spindle revolution).</li>
|
||||
<li>BeginSpindleAngle_deg: Spindle angular displacement at the start of this step.</li>
|
||||
<li>Cl (Cutter Location): Cutter location point (including IJK normal).</li>
|
||||
@@ -115,7 +115,11 @@
|
||||
<li>IsTouched: Whether cutting engagement occurred.</li>
|
||||
<li>CuttingWidth_mm (ae) / CuttingDepth_mm (ap): Cutting width / cutting depth.</li>
|
||||
<li>Mrr_mm3ds: Material removal rate.</li>
|
||||
<li>ProgramSideCusp_um, SideCuspList_um: Side cusp height and distribution estimated from program feed and radius.</li>
|
||||
<li>ProgramSideCusp_um, SideCuspList_um: Side cusp height and distribution estimated from program feed and radius.
|
||||
<blockquote>
|
||||
<p><strong>Reading tip — a <code>ProgramSideCusp_um</code> spike usually flags a rapid-move (G00) collision, not a finish result.</strong> The program-side cusp is computed from the <em>ideal program feedrate</em> while the cutter is engaged with the workpiece. A rapid traverse is not meant to touch material; when it does, the cusp formula is fed the (very high) rapid feedrate, so the value spikes far above any real cutting cusp. Treat an isolated cusp peak at a rapid/G00 line as a likely gouge/collision to investigate. The same engagement-during-rapid usually shows up alongside it as spikes in the availability ratios (yielding-stress / spindle-torque / spindle-power).</p>
|
||||
</blockquote>
|
||||
</li>
|
||||
</ul>
|
||||
<h2 id="chip">Chip</h2>
|
||||
<ul>
|
||||
@@ -138,7 +142,11 @@
|
||||
<li>MaxSpindlePowerRatio (maximum spindle power ratio): Input power / instantaneous maximum power based on spindle capability.</li>
|
||||
<li>ContinueSpindlePowerRatio (continuous spindle power ratio): Input power / unlimited-duration maximum power based on spindle capability.</li>
|
||||
<li>AccumulatedSpindleEnergyConsumption_kWh: Accumulated spindle energy consumption.</li>
|
||||
<li>Max/Continue Spindle Torque Ratio: Instantaneous/continuous spindle torque ratios.</li>
|
||||
<li>Max/Continue Spindle Torque Ratio: Instantaneous/continuous spindle torque ratios.
|
||||
<blockquote>
|
||||
<p><strong>Reading tip — a power / torque ratio over 100% means the spindle cannot supply the demanded load at the commanded rpm</strong>, so it droops: with feed held, rpm drops, feed-per-tooth rises, and forces climb further — a runaway loop that, left unchecked, grows the chip until the cutter breaks and the spindle/drive is overstressed and damaged — load damage, not a tool-vs-workpiece collision (see <a href="../analysis/nc-optimization-principles.html">NC optimization</a>). Read it by <em>duration</em>, not just height: a one-revolution (single-cycle) overshoot usually still completes the pass — it just leaves a slightly insufficient cut there — whereas a ratio that stays above 100% across many consecutive spindle revolutions is a genuine overload to fix. A high-load step typically also shows large cutter–workpiece engagement (CWE), large tip deflection, and more vibration/noise. Because the ratio is normalized by the spindle-capability curve, a placeholder/guessed spindle skews it — confirm against the real spindle's speed–power/torque curve before calling it overloaded.</p>
|
||||
</blockquote>
|
||||
</li>
|
||||
</ul>
|
||||
<h2 id="thermal-and-temperature">Thermal and Temperature</h2>
|
||||
<ul>
|
||||
|
||||
@@ -21,6 +21,9 @@
|
||||
<li>
|
||||
<a href="session-shell.html" name="" title="SessionShell Reference">SessionShell Reference</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="cutter-location-playback.html" name="" title="Cutter-Location (CL) Playback">Cutter-Location (CL) Playback</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="step.html" name="" title="Step — Concept & Output">Step — Concept & Output</a>
|
||||
</li>
|
||||
@@ -28,7 +31,7 @@
|
||||
<a href="step-fields.html" name="" title="Step Field Reference">Step Field Reference</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="session-progress.html" name="" title="SessionProgress">SessionProgress</a>
|
||||
<a href="shell-progress.html" name="" title="ShellProgress">ShellProgress</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
|
||||
{"items":[{"name":"Overview","href":"index.html","topicHref":"index.html"},{"name":"Script Command","href":"script-command.html","topicHref":"script-command.html"},{"name":"SessionShell Reference","href":"session-shell.html","topicHref":"session-shell.html"},{"name":"Step — Concept & Output","href":"step.html","topicHref":"step.html"},{"name":"Step Field Reference","href":"step-fields.html","topicHref":"step-fields.html"},{"name":"SessionProgress","href":"session-progress.html","topicHref":"session-progress.html"}]}
|
||||
{"items":[{"name":"Overview","href":"index.html","topicHref":"index.html"},{"name":"Script Command","href":"script-command.html","topicHref":"script-command.html"},{"name":"SessionShell Reference","href":"session-shell.html","topicHref":"session-shell.html"},{"name":"Cutter-Location (CL) Playback","href":"cutter-location-playback.html","topicHref":"cutter-location-playback.html"},{"name":"Step — Concept & Output","href":"step.html","topicHref":"step.html"},{"name":"Step Field Reference","href":"step-fields.html","topicHref":"step-fields.html"},{"name":"ShellProgress","href":"shell-progress.html","topicHref":"shell-progress.html"}]}
|
||||
|
||||
Reference in New Issue
Block a user