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/api/Hi.Numerical.ClsfParsers.NxClRunner.html
T

278 lines
12 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>Class NxClRunner | HiAPI-C# 2025 </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Class NxClRunner | HiAPI-C# 2025 ">
<meta name="description" content="Factory for a that reads NX CLSF (cutter location source file) input. On a ClMillingDevice chain it resolves into pure-CL acts (ActClTeleport/ActClLinear/ActClArc); on an MC machine (IXyzabcChain, detected through the wired ) each motion block is expressed in the NC pipeline&#39;s transform vocabulary — writes the MSYS work-offset entries plus ProgramXyz, inverse-solves the endpoint rotary state and writes the tool-height / kinematic-pivot entries, the shared composes MachineCoordinateState from ProgramXyz &#215; chain — and routes the block to the machine-coordinate semantics instead. The record chain maps each CLSF record into the same standardized JSON sections the NC/CSV pipelines use (Feedrate, SpindleSpeed, Coolant, ToolChange, MotionEvent), so the general semantics are reused unchanged; only the motion and tool-creation semantics are CLSF-specific. The modal carry runs first in the record bundle (unlike the NC pipeline&#39;s carry-at-the-end): each piece receives the previous block&#39;s modal sections (Msys, CutterLocationState, tool data, feedrate, …) before its own record is resolved, so a GOTO reads its begin point and MSYS from its own piece and then overwrites the state with the new endpoint.">
<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="ManagedReference">
<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="Hi.Numerical.ClsfParsers.NxClRunner">
<h1 id="Hi_Numerical_ClsfParsers_NxClRunner" data-uid="Hi.Numerical.ClsfParsers.NxClRunner" class="text-break">
Class NxClRunner
</h1>
<div class="facts text-secondary">
<dl><dt>Namespace</dt><dd><a class="xref" href="Hi.html">Hi</a>.<a class="xref" href="Hi.Numerical.html">Numerical</a>.<a class="xref" href="Hi.Numerical.ClsfParsers.html">ClsfParsers</a></dd></dl>
<dl><dt>Assembly</dt><dd>HiMech.dll</dd></dl>
</div>
<div class="markdown summary"><p>Factory for a <a class="xref" href="Hi.NcParsers.SoftNcRunner.html">SoftNcRunner</a> that reads NX CLSF (cutter
location source file) input. On a <code>ClMillingDevice</code> chain it
resolves into <b>pure-CL</b> acts
(<code>ActClTeleport</code>/<code>ActClLinear</code>/<code>ActClArc</code>); on an MC
machine (<code>IXyzabcChain</code>, detected through the wired
<a class="xref" href="Hi.NcParsers.Dependencys.SystemWired.NcKinematicsDependency.html">NcKinematicsDependency</a>) each motion block is expressed in
the NC pipeline's transform vocabulary —
<a class="xref" href="Hi.Numerical.ClsfParsers.MsysCoordinateOffsetSyntax.html">MsysCoordinateOffsetSyntax</a> writes the MSYS work-offset
entries plus <code>ProgramXyz</code>, <a class="xref" href="Hi.Numerical.ClsfParsers.ClToMcTransformSyntax.html">ClToMcTransformSyntax</a>
inverse-solves the endpoint rotary state and writes the tool-height /
kinematic-pivot entries, the shared <a class="xref" href="Hi.NcParsers.LogicSyntaxs.McXyzSyntax.html">McXyzSyntax</a> composes
<code>MachineCoordinateState</code> from <code>ProgramXyz × chain</code> — and
<a class="xref" href="Hi.Numerical.ClsfParsers.ClMotionValveSemantic.html">ClMotionValveSemantic</a> routes the block to the
machine-coordinate semantics instead. The record chain maps each CLSF
record into the same standardized JSON sections the NC/CSV pipelines
use (<code>Feedrate</code>, <code>SpindleSpeed</code>, <code>Coolant</code>,
<code>ToolChange</code>, <code>MotionEvent</code>), so the general semantics are
reused unchanged; only the motion and tool-creation semantics are
CLSF-specific.</p>
<p>
The modal carry runs <b>first</b> in the record bundle (unlike the NC
pipeline's carry-at-the-end): each piece receives the previous block's
modal sections (<code>Msys</code>, <code>CutterLocationState</code>, tool data,
feedrate, …) before its own record is resolved, so a GOTO reads its
begin point and MSYS from its own piece and then overwrites the state
with the new endpoint.
</p>
</div>
<div class="markdown conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static class NxClRunner</code></pre>
</div>
<dl class="typelist inheritance">
<dt>Inheritance</dt>
<dd>
<div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a></div>
<div><span class="xref">NxClRunner</span></div>
</dd>
</dl>
<dl class="typelist inheritedMembers">
<dt>Inherited Members</dt>
<dd>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object)">object.Equals(object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object)">object.Equals(object, object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gethashcode">object.GetHashCode()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gettype">object.GetType()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.memberwiseclone">object.MemberwiseClone()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.referenceequals">object.ReferenceEquals(object, object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.tostring">object.ToString()</a>
</div>
</dd></dl>
<h2 class="section" id="methods">Methods
</h2>
<a id="Hi_Numerical_ClsfParsers_NxClRunner_Create_" data-uid="Hi.Numerical.ClsfParsers.NxClRunner.Create*"></a>
<h3 id="Hi_Numerical_ClsfParsers_NxClRunner_Create" data-uid="Hi.Numerical.ClsfParsers.NxClRunner.Create">
Create()
</h3>
<div class="markdown level1 summary"><p>Builds a fresh <a class="xref" href="Hi.NcParsers.SoftNcRunner.html">SoftNcRunner</a> pre-configured to read NX
CLSF input. Call once per machining session so the runner's
per-session state starts clean.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static SoftNcRunner Create()</code></pre>
</div>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="Hi.NcParsers.SoftNcRunner.html">SoftNcRunner</a></dt>
<dd></dd>
</dl>
<a id="Hi_Numerical_ClsfParsers_NxClRunner_Reg_" data-uid="Hi.Numerical.ClsfParsers.NxClRunner.Reg*"></a>
<h3 id="Hi_Numerical_ClsfParsers_NxClRunner_Reg_Hi_Common_XmlUtils_XFactory_" data-uid="Hi.Numerical.ClsfParsers.NxClRunner.Reg(Hi.Common.XmlUtils.XFactory)">
Reg(XFactory)
</h3>
<div class="markdown level1 summary"><p>Registers the CLSF-module components <a class="xref" href="Hi.Numerical.ClsfParsers.NxClRunner.html#Hi_Numerical_ClsfParsers_NxClRunner_Create">Create()</a> instantiates
with the given <a class="xref" href="Hi.Common.XmlUtils.XFactory.html">XFactory</a>. The general components it
reuses (<a class="xref" href="Hi.NcParsers.Syntaxs.BundleSyntax.html">BundleSyntax</a>, <a class="xref" href="Hi.NcParsers.PostLogicSyntaxs.ModalCarrySyntax.html">ModalCarrySyntax</a>,
<a class="xref" href="Hi.NcParsers.Semantics.ToolingTeleportSemantic.html">ToolingTeleportSemantic</a>, <a class="xref" href="Hi.NcParsers.Semantics.SpindleSpeedSemantic.html">SpindleSpeedSemantic</a>,
<a class="xref" href="Hi.NcParsers.Semantics.CoolantSemantic.html">CoolantSemantic</a>) are registered by
<a class="xref" href="Hi.NcParsers.SoftNcRunner.html#Hi_NcParsers_SoftNcRunner_Reg_Hi_Common_XmlUtils_XFactory_">Reg(XFactory)</a>. Idempotent.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static void Reg(XFactory factory = null)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>factory</code> <a class="xref" href="Hi.Common.XmlUtils.XFactory.html">XFactory</a></dt>
<dd></dd>
</dl>
</article>
<div class="contribution d-print-none">
</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>