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.NcParsers.Dependencys.html
T
2026-09-09 18:06:21 +08:00

438 lines
25 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_PipelineNcDependencyList">PipelineNcDependencyList</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 (1–20) 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
G54–G59 codes to preset rows 1–6, 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.HeidenhainDatumTableProxy.html">HeidenhainDatumTableProxy</a></dt>
<dd><p>Get-or-create <a class="xref" href="Hi.NcParsers.Dependencys.INcDependencyProxy.html">INcDependencyProxy</a> for <a class="xref" href="Hi.NcParsers.Dependencys.HeidenhainDatumTable.html">HeidenhainDatumTable</a>:
a placeholder in the shared <a class="xref" href="Hi.NcParsers.SoftNcRunner.html#Hi_NcParsers_SoftNcRunner_PipelineNcDependencyList">PipelineNcDependencyList</a> that
resolves the host project's own per-case datum preset / datum shift tables.</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.
G54–G59 → #5221+ (stride 20, three consecutive numbers per entry for X/Y/Z),
G54.1 P1–P48 → #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>
<dl class="jumplist">
<dt><a class="xref" href="Hi.NcParsers.Dependencys.MCodeEffects.html">MCodeEffects</a></dt>
<dd><p>What one machine-declared M-code does. Real-machine OEM M-codes are
frequently composite — e.g. an <code>M13</code> that means &ldquo;spindle CW +
flood coolant on&rdquo; — so a declaration carries every effect the code
performs rather than a single meaning, and additionally an
<a class="xref" href="Hi.NcParsers.Dependencys.MCodeEffects.html#Hi_NcParsers_Dependencys_MCodeEffects_UnmodeledNote">UnmodeledNote</a> for the parts this simulation does not
model. Declaring only the known parts and staying loud about the rest
keeps a composite code from being half-consumed silently.
Stored per machine in
<a class="xref" href="Hi.NcParsers.Dependencys.ControllerParameterTableBase.html#Hi_NcParsers_Dependencys_ControllerParameterTableBase_MCodeDeclarations">MCodeDeclarations</a> and
consumed by <a class="xref" href="Hi.NcParsers.LogicSyntaxs.MCodeExpansionSyntax.html">MCodeExpansionSyntax</a>, which
expands the declared code into the canonical ISO flags the regular
consumers already understand.</p>
</dd>
</dl>
<dl class="jumplist">
<dt><a class="xref" href="Hi.NcParsers.Dependencys.StrokeLimitUtil.html">StrokeLimitUtil</a></dt>
<dd><p>Load-time audit helpers for <a class="xref" href="Hi.NcParsers.Dependencys.IStrokeLimitConfig.html">IStrokeLimitConfig</a>: which
machine-coordinate axes the chain has, and which of them the stroke limit
check cannot judge because no limit is configured. Both checks — the
per-block <a class="xref" href="Hi.NcParsers.Semantics.StrokeLimitCheckSemantic.html">StrokeLimitCheckSemantic</a> and the per-step
<a class="xref" href="Hi.NcParsers.Dependencys.IStrokeLimitConfig.html#Hi_NcParsers_Dependencys_IStrokeLimitConfig_CheckStrokeLimit_Hi_Geom_DVec3d_System_IProgress_Hi_Common_Messages_IMessage__">CheckStrokeLimit(DVec3d, IProgress&lt;IMessage&gt;)</a> — compare only axes that
carry a limit, so a machine file without limits passes every position
silently while <code>EnableStrokeLimitCheck</code> reads as on. The session
begin reports that gap once through these helpers.</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_PipelineNcDependencyList">PipelineNcDependencyList</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_PipelineNcDependencyList">PipelineNcDependencyList</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.IIndexingPositionConfig.html">IIndexingPositionConfig</a></dt>
<dd><p>Indexing-axis position table: maps 1-based indexing position numbers to
axis coordinates for axes that only take up discrete stations (Hirth
couplings, indexing rotary tables, turret-style workholders). Consumed
by the coded-position coordinate functions (Siemens
<code>CAC()</code>/<code>CIC()</code>/<code>CDC()</code>/<code>CACP()</code>/<code>CACN()</code> —
unwrapped by <a class="xref" href="Hi.NcParsers.EvaluationSyntaxs.Siemens.SiemensAcIcSyntax.html">SiemensAcIcSyntax</a>,
resolved by <a class="xref" href="Hi.NcParsers.LogicSyntaxs.McAbcSyntax.html">McAbcSyntax</a> /
<a class="xref" href="Hi.NcParsers.LogicSyntaxs.IncrementalResolveSyntax.html">IncrementalResolveSyntax</a> via
<a class="xref" href="Hi.NcParsers.LogicSyntaxs.CodedPositionUtil.html">CodedPositionUtil</a>).
Implemented by <a class="xref" href="Hi.NcParsers.Dependencys.Siemens.SiemensMachineDataTable.html">SiemensMachineDataTable</a> using the
Siemens machine data (MD30500 <code>$MA_INDEX_AX_ASSIGN_POS_TAB</code> per
axis; global tables MD10910/MD10930; equidistant MD30501–MD30503).</p>
<p>
Positions are expressed in the axis' native units (degrees for rotary,
mm for linear) in the coordinate frame the axis word itself is written
in — machine coordinates for rotary words, program coordinates for
linear words. Position numbering is 1-based: number 1 is the first
table entry (the Siemens machine-data help and alarm texts count this
way; the 0-based value range printed in some programming-manual
editions describes the machine-data array index, not the programmable
number).
</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 G54–G59 and #7001+ for G54.1 P1–P48),
<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.IMCodeDeclarationConfig.html">IMCodeDeclarationConfig</a></dt>
<dd><p>Machine-declared M-code map: what each machine-specific (OEM/PLC) M-code
does, as <a class="xref" href="Hi.NcParsers.Dependencys.MCodeEffects.html">MCodeEffects</a> — possibly several effects per code
(tool change, spindle direction, coolant) plus a note for behavior this
simulation does not model. Consumed by
<a class="xref" href="Hi.NcParsers.LogicSyntaxs.MCodeExpansionSyntax.html">MCodeExpansionSyntax</a>, which expands declared
codes into the canonical ISO flags ahead of the regular consumers.
Machine-level (per-case parameter table) rather than brand vocabulary —
implemented by <a class="xref" href="Hi.NcParsers.Dependencys.ControllerParameterTableBase.html">ControllerParameterTableBase</a>, alongside the
narrower <a class="xref" href="Hi.NcParsers.Dependencys.ISpindleControlConfig.html">ISpindleControlConfig</a> face over the same storage.</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.INcDependencyListHost.html">INcDependencyListHost</a></dt>
<dd><p>Hosts a per-case <a class="xref" href="Hi.NcParsers.Dependencys.INcDependency.html">INcDependency</a> list that
<a class="xref" href="Hi.NcParsers.Dependencys.INcDependencyProxy.html">INcDependencyProxy</a> placeholders in a shared
<a class="xref" href="Hi.NcParsers.SoftNcRunner.html">SoftNcRunner</a> resolve their data against. Implemented by the
object owning both the shared runner and the varied setting data —
e.g. <code>MachiningProject</code>.</p>
</dd>
</dl>
<dl class="jumplist">
<dt><a class="xref" href="Hi.NcParsers.Dependencys.INcDependencyProxy.html">INcDependencyProxy</a></dt>
<dd><p>An <a class="xref" href="Hi.NcParsers.Dependencys.INcDependency.html">INcDependency</a> placeholder that resolves the <em>real</em>
dependency lazily at pipeline-build time instead of carrying the data
itself. Lets a shared <a class="xref" href="Hi.NcParsers.SoftNcRunner.html">SoftNcRunner</a> hold only the fixed
pipeline logic while the frequently-varied data lives on the owning
<a class="xref" href="Hi.NcParsers.Dependencys.INcDependencyListHost.html">INcDependencyListHost</a> (e.g. a <code>MachiningProject</code>).</p>
<p>
"Maker and taker": <a class="xref" href="Hi.NcParsers.Dependencys.INcDependencyProxy.html#Hi_NcParsers_Dependencys_INcDependencyProxy_GetNcDependency">GetNcDependency()</a> either constructs the
dependency on demand (maker) or fetches one from the host wired by
<a class="xref" href="Hi.NcParsers.Dependencys.INcDependencyProxy.html#Hi_NcParsers_Dependencys_INcDependencyProxy_InitNcDependencyHost_Hi_NcParsers_Dependencys_INcDependencyListHost_">InitNcDependencyHost(INcDependencyListHost)</a> (taker). A get-or-create proxy does
both — it takes the host's instance when present and otherwise makes one,
installing it into the host list so it persists and is editable per case.
</p>
<p>
A proxy may carry runtime-only state (the wired host, a memoized resolved
dependency). That state is host-wired per run and MUST NOT be written by
<a class="xref" href="Hi.Common.XmlUtils.IMakeXmlSource.html#Hi_Common_XmlUtils_IMakeXmlSource_MakeXmlSource_System_String_System_String_System_Boolean_">MakeXmlSource(string, string, bool)</a> — same
runtime-only posture as <a class="xref" href="Hi.NcParsers.Dependencys.SystemWired.ProjectFolderDependency.html">ProjectFolderDependency</a>.
</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.ISpindleControlConfig.html">ISpindleControlConfig</a></dt>
<dd><p>Machine-specific spindle control codes: maps custom spindle direction
M-codes to <a class="xref" href="Hi.Numerical.SpindleDirection.html">SpindleDirection</a> — e.g., an ultrasonic spindle
started by <code>M203</code> (CW) and stopped by <code>M205</code> (STOP) instead of
ISO M03/M05. Consulted by
<a class="xref" href="Hi.NcParsers.LogicSyntaxs.SpindleSpeedSyntax.html">SpindleSpeedSyntax</a> in addition to the
built-in ISO defaults (M03/M04/M05), which always stay in effect;
a configured code wins over its ISO meaning when both match.
Machine-level (per-case parameter table) rather than brand vocabulary —
implemented by <a class="xref" href="Hi.NcParsers.Dependencys.ControllerParameterTableBase.html">ControllerParameterTableBase</a> as a
spindle-direction face over its
<a class="xref" href="Hi.NcParsers.Dependencys.ControllerParameterTableBase.html#Hi_NcParsers_Dependencys_ControllerParameterTableBase_MCodeDeclarations">MCodeDeclarations</a> storage
(the multi-effect <a class="xref" href="Hi.NcParsers.Dependencys.IMCodeDeclarationConfig.html">IMCodeDeclarationConfig</a> map), so one
code is never half-recognized by two separate maps.</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.IToolChangeTriggerConfig.html">IToolChangeTriggerConfig</a></dt>
<dd><p>Machine-level tool-change trigger mode. Machining centers with a
magazine treat a bare <code>T</code> word as pre-selection only (the magazine
rotates, no feed axis moves) and change the tool on the trigger M-code;
lathes/turret machines index the turret — and thereby change the tool —
on the <code>T</code> word itself. Real controllers declare this per machine
(e.g. Siemens MD22550 <code>$MC_TOOL_CHANGE_MODE</code>, where 0 means the
<code>T</code> word performs the change). Consulted by
<a class="xref" href="Hi.NcParsers.LogicSyntaxs.ToolChangeSyntax.html">ToolChangeSyntax</a>; machine-level (per-case
parameter table) rather than brand vocabulary — implemented by
<a class="xref" href="Hi.NcParsers.Dependencys.ControllerParameterTableBase.html">ControllerParameterTableBase</a>. Custom trigger M-codes are
the separate <a class="xref" href="Hi.NcParsers.Dependencys.IMCodeDeclarationConfig.html">IMCodeDeclarationConfig</a> concern
(<a class="xref" href="Hi.NcParsers.Dependencys.MCodeEffects.html#Hi_NcParsers_Dependencys_MCodeEffects_IsToolChange">IsToolChange</a>).</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>