HiNC-2025-win-desktop-Deploy/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.Dependencys.html

300 lines
15 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>Namespace Hi.NcParsers.Dependencys | HiAPI-C# 2025 </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Namespace Hi.NcParsers.Dependencys | 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="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.NcParsers.Dependencys">
<h1 id="Hi_NcParsers_Dependencys" data-uid="Hi.NcParsers.Dependencys" class="text-break">Namespace Hi.NcParsers.Dependencys</h1>
<div class="markdown level0 summary"></div>
<div class="markdown level0 conceptual"></div>
<div class="markdown level0 remarks"></div>
<h3 id="classes">
Classes
</h3>
<dl class="jumplist">
<dt><a class="xref" href="Hi.NcParsers.Dependencys.CncBrandDependency.html">CncBrandDependency</a></dt>
<dd><p>Explicit CNC controller brand identifier carried in
<a class="xref" href="Hi.NcParsers.SoftNcRunner.html#Hi_NcParsers_SoftNcRunner_NcDependencyList">NcDependencyList</a>.
Use <code>ncDependencyList.OfType&lt;CncBrandDependency&gt;().FirstOrDefault()</code>
to retrieve the brand.</p>
</dd>
</dl>
<dl class="jumplist">
<dt><a class="xref" href="Hi.NcParsers.Dependencys.ControllerParameterTableBase.html">ControllerParameterTableBase</a></dt>
<dd><p>Base class for brand-specific controller parameter tables.
Provides shared data structures, XML IO, and <a class="xref" href="Hi.NcParsers.Dependencys.IHomeMcConfig.html">IHomeMcConfig</a></p>
<ul>
<li><a class="xref" href="Hi.NcParsers.Dependencys.IMachineAxisConfig.html">IMachineAxisConfig</a> implementations.
Subclasses define brand-specific parameter numbers, XML attribute names,
and derived convenience properties.</li>
</ul>
</dd>
</dl>
<dl class="jumplist">
<dt><a class="xref" href="Hi.NcParsers.Dependencys.HeidenhainDatumTable.html">HeidenhainDatumTable</a></dt>
<dd><p>Heidenhain datum preset and datum shift tables.
CYCL DEF 247 Q339=N reads from <a class="xref" href="Hi.NcParsers.Dependencys.HeidenhainDatumTable.html#Hi_NcParsers_Dependencys_HeidenhainDatumTable_DatumPresetTable">DatumPresetTable</a>,
CYCL DEF 7 #N reads from <a class="xref" href="Hi.NcParsers.Dependencys.HeidenhainDatumTable.html#Hi_NcParsers_Dependencys_HeidenhainDatumTable_DatumShiftTable">DatumShiftTable</a>.
Each table maps an integer ID (120) to a Vec3d offset.</p>
<p>
On real Heidenhain controllers, preset and datum tables are separate
disk files (e.g. <code>TNC:\table\preset.pr</code>, <code>*.d</code>) — distinct
from MP-prefixed Machine Parameters (held by
<a class="xref" href="Hi.NcParsers.Dependencys.Heidenhain.HeidenhainParameterTable.html">HeidenhainParameterTable</a>). HiNC mirrors that separation
by keeping this dependency independent of <code>HeidenhainParameterTable</code>.
</p>
<p>
Implements <a class="xref" href="Hi.NcParsers.Dependencys.IIsoCoordinateConfig.html">IIsoCoordinateConfig</a> by mapping the ISO/DIN
G54G59 codes to preset rows 16, the conventional Heidenhain
compatibility mapping for ISO/DIN programs running on a Heidenhain.
</p>
</dd>
</dl>
<dl class="jumplist">
<dt><a class="xref" href="Hi.NcParsers.Dependencys.IsoCoordinateAddressMap.html">IsoCoordinateAddressMap</a></dt>
<dd><p>Fanuc-style ISO coordinate parameter address mapping.
G54G59 → #5221+ (stride 20, three consecutive numbers per entry for X/Y/Z),
G54.1 P1P48 → #7001+ (stride 20).
Shared between <a class="xref" href="Hi.NcParsers.Dependencys.Fanuc.FanucParameterTable.html">FanucParameterTable</a> (which calls these
&ldquo;ParamId&rdquo;) and <a class="xref" href="Hi.NcParsers.Dependencys.Syntec.SyntecParameterTable.html">SyntecParameterTable</a> (which calls them
&ldquo;PrId&rdquo;) because both follow the same numeric scheme.</p>
</dd>
</dl>
<h3 id="interfaces">
Interfaces
</h3>
<dl class="jumplist">
<dt><a class="xref" href="Hi.NcParsers.Dependencys.IBlockSkipConfig.html">IBlockSkipConfig</a></dt>
<dd><p>Runtime state of the controller's Block Delete / Block Skip switches.
Present in <a class="xref" href="Hi.NcParsers.SoftNcRunner.html#Hi_NcParsers_SoftNcRunner_NcDependencyList">NcDependencyList</a> exposes this to
the runner so that blocks whose head carries <code>/</code> or <code>/N</code>
(parsed by <a class="xref" href="Hi.NcParsers.ParsingSyntaxs.BlockSkipSyntax.html">BlockSkipSyntax</a> into
<a class="xref" href="Hi.NcParsers.Keywords.BlockSkip.html">BlockSkip</a>) are skipped at semantic time.</p>
<p>
Layers are 1..9; Layer 1 corresponds to the bare <code>/</code> prefix.
Controllers (Fanuc / Syntec / Mazak / Siemens) let each layer be
toggled independently via panel switches or system parameters.
</p>
<p>
When this dependency is absent from
<a class="xref" href="Hi.NcParsers.SoftNcRunner.html#Hi_NcParsers_SoftNcRunner_NcDependencyList">NcDependencyList</a>, no block is skipped
(safest default: simulate the full machining). The syntax still
consumes the <code>/</code> prefix so no <code>UnparsedText--Remaining</code>
diagnostic is produced.
</p>
</dd>
</dl>
<dl class="jumplist">
<dt><a class="xref" href="Hi.NcParsers.Dependencys.ICannedCycleConfig.html">ICannedCycleConfig</a></dt>
<dd><p>Canned cycle configuration parameters.
Implemented by brand-specific parameter tables
(e.g., <a class="xref" href="Hi.NcParsers.Dependencys.Fanuc.FanucParameterTable.html">FanucParameterTable</a> for Fanuc #4002,
<a class="xref" href="Hi.NcParsers.Dependencys.Syntec.SyntecParameterTable.html">SyntecParameterTable</a> for Syntec Pr4002)
and by <a class="xref" href="Hi.NcParsers.Dependencys.Generic.FallbackConfig.html">FallbackConfig</a> as a safety net.</p>
<p>
Siemens and Heidenhain specify peck clearance per-call
(CYCLE83 parameter / CYCL DEF), so their tables do not implement
this interface. The <a class="xref" href="Hi.NcParsers.Dependencys.Generic.FallbackConfig.html">FallbackConfig</a> provides
the default value in those cases.
</p>
</dd>
</dl>
<dl class="jumplist">
<dt><a class="xref" href="Hi.NcParsers.Dependencys.IHomeMcConfig.html">IHomeMcConfig</a></dt>
<dd><p>G28 first reference position (home machine coordinate) per axis.</p>
</dd>
</dl>
<dl class="jumplist">
<dt><a class="xref" href="Hi.NcParsers.Dependencys.IIsoCoordinateConfig.html">IIsoCoordinateConfig</a></dt>
<dd><p>ISO work coordinate offset provider.
Maps a G-code work coordinate id (e.g. &ldquo;G54&rdquo;, &ldquo;G59.2&rdquo;, &ldquo;G54.1P1&rdquo;)
to a machine-coordinate offset Vec3d.</p>
<p>
Implementations include
<a class="xref" href="Hi.NcParsers.Dependencys.Generic.IsoCoordinateTable.html">IsoCoordinateTable</a> (brand-agnostic standalone storage),
<a class="xref" href="Hi.NcParsers.Dependencys.Fanuc.FanucParameterTable.html">FanucParameterTable</a> / <a class="xref" href="Hi.NcParsers.Dependencys.Syntec.SyntecParameterTable.html">SyntecParameterTable</a>
(parameter-table integration via real Fanuc/Syntec parameter numbers
#5221+ for G54G59 and #7001+ for G54.1 P1P48),
<a class="xref" href="Hi.NcParsers.Dependencys.Siemens.SiemensFrameTable.html">SiemensFrameTable</a> (Sinumerik <code>$P_UIFR</code> frames),
and <a class="xref" href="Hi.NcParsers.Dependencys.HeidenhainDatumTable.html">HeidenhainDatumTable</a> (Heidenhain preset rows).
</p>
</dd>
</dl>
<dl class="jumplist">
<dt><a class="xref" href="Hi.NcParsers.Dependencys.IMachineAxisConfig.html">IMachineAxisConfig</a></dt>
<dd><p>Machine axis configuration: which axes exist and their types.
Compatible with Fanuc, Siemens, Heidenhain, Mazak, Okuma.</p>
</dd>
</dl>
<dl class="jumplist">
<dt><a class="xref" href="Hi.NcParsers.Dependencys.INcDependency.html">INcDependency</a></dt>
<dd><p>Marker interface for objects that participate in the NC dependency list resolved by the soft-NC runtime.</p>
</dd>
</dl>
<dl class="jumplist">
<dt><a class="xref" href="Hi.NcParsers.Dependencys.IPowerResettable.html">IPowerResettable</a></dt>
<dd><p>Marks an <a class="xref" href="Hi.NcParsers.Dependencys.INcDependency.html">INcDependency</a> that holds volatile state which must be cleared
when the controller performs a power reset (power off then on).</p>
<p>
Implementers should clear only the volatile subset they own (e.g. Fanuc common volatile
macro variables <code>#100-#499</code>), and leave persistent state untouched
(e.g. <code>#500-#999</code>, controller parameters).
</p>
<p>
Call-frame local state (Fanuc <code>#1-#33</code>, Heidenhain <code>Q200-Q1199</code>) is NOT in scope —
that lives in the <code>SyntaxPiece</code> JSON dataflow and is bounded by call activation, not power cycle.
</p>
</dd>
</dl>
<dl class="jumplist">
<dt><a class="xref" href="Hi.NcParsers.Dependencys.IRapidFeedrateConfig.html">IRapidFeedrateConfig</a></dt>
<dd><p>Provides per-axis rapid traverse feedrate for motion semantics.
Implemented by <a class="xref" href="Hi.NcParsers.Dependencys.ControllerParameterTableBase.html">ControllerParameterTableBase</a> using
brand-specific parameter numbers (e.g., Fanuc #1420, Siemens MD32000,
Heidenhain MP1010).</p>
</dd>
</dl>
<dl class="jumplist">
<dt><a class="xref" href="Hi.NcParsers.Dependencys.IStrokeLimitConfig.html">IStrokeLimitConfig</a></dt>
<dd><p>Per-axis stroke (travel) limits.
Unit is mm for linear axes, deg for rotary axes.
Implemented by <a class="xref" href="Hi.NcParsers.Dependencys.ControllerParameterTableBase.html">ControllerParameterTableBase</a> using
brand-specific parameter numbers (e.g., Fanuc #1300/#1320,
Siemens MD36100/MD36110, Heidenhain MP420/MP430).</p>
</dd>
</dl>
<dl class="jumplist">
<dt><a class="xref" href="Hi.NcParsers.Dependencys.IToolOffsetConfig.html">IToolOffsetConfig</a></dt>
<dd><p>Tool offset configuration indexed by a single integer offset number.
Applies to Fanuc (H/D numbers), Heidenhain (tool number), Mazak, Okuma,
and other ISO-compatible controllers where one integer selects the offset row.</p>
<p>
For Siemens (840D/Sinumerik) where offsets are addressed by
(tool number, cutting edge D number), see
<a class="xref" href="Hi.NcParsers.Dependencys.Siemens.ISiemensToolOffsetConfig.html">ISiemensToolOffsetConfig</a>.
</p>
</dd>
</dl>
<dl class="jumplist">
<dt><a class="xref" href="Hi.NcParsers.Dependencys.IToolingMcConfig.html">IToolingMcConfig</a></dt>
<dd><p>Machine position axes move to during tool change (M06).</p>
</dd>
</dl>
<h3 id="enums">
Enums
</h3>
<dl class="jumplist">
<dt><a class="xref" href="Hi.NcParsers.Dependencys.AxisType.html">AxisType</a></dt>
<dd><p>Axis type: linear (translation), rotary (rotation), or spindle (speed/positioning dual mode).</p>
</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>