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.Keywords.Heidenhain.html
T
2026-09-09 17:35:23 +08:00

219 lines
11 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.Keywords.Heidenhain | HiAPI-C# 2025 </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Namespace Hi.NcParsers.Keywords.Heidenhain | 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.Keywords.Heidenhain">
<h1 id="Hi_NcParsers_Keywords_Heidenhain" data-uid="Hi.NcParsers.Keywords.Heidenhain" class="text-break">Namespace Hi.NcParsers.Keywords.Heidenhain</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.Keywords.Heidenhain.HeidenhainCall.html">HeidenhainCall</a></dt>
<dd><p>Block-root record left on a <code>CALL LBL</code>/<code>CALL PGM</code> host block
by <a class="xref" href="Hi.NcParsers.EvaluationSyntaxs.Heidenhain.HeidenhainSubProgramCallSyntax.html">HeidenhainSubProgramCallSyntax</a>.
Inlined callee blocks are stamped with a clone of the same record.</p>
</dd>
</dl>
<dl class="jumplist">
<dt><a class="xref" href="Hi.NcParsers.Keywords.Heidenhain.HeidenhainCyclCall.html">HeidenhainCyclCall</a></dt>
<dd><p>Block-root record left on a cycle-call host block by
<a class="xref" href="Hi.NcParsers.LogicSyntaxs.Heidenhain.HeidenhainCannedCycleSyntax.html">HeidenhainCannedCycleSyntax</a>,
making the consumed call visible in cache dumps and carrying the
deferred <code>M140</code> retract hand-off for
<a class="xref" href="Hi.NcParsers.LogicSyntaxs.Heidenhain.HeidenhainCycleRetractSyntax.html">HeidenhainCycleRetractSyntax</a>.</p>
</dd>
</dl>
<dl class="jumplist">
<dt><a class="xref" href="Hi.NcParsers.Keywords.Heidenhain.HeidenhainCyclCallPos.html">HeidenhainCyclCallPos</a></dt>
<dd><p>Block-root section carrying the coordinates last programmed with
<code>CYCL CALL POS</code>: the reference the control uses for the
I-prefixed words of a later <code>CYCL CALL POS</code> (its error 1A0-0108
&ldquo;Incremental values without reference&rdquo; names exactly these
coordinates, not the tool position). Written by
<a class="xref" href="Hi.NcParsers.LogicSyntaxs.Heidenhain.HeidenhainCannedCycleSyntax.html">HeidenhainCannedCycleSyntax</a> on
the block whose POS call resolved and then single-step carried on
every following block (the <a class="xref" href="Hi.NcParsers.Keywords.Heidenhain.MachiningCycleDef.html">MachiningCycleDef</a> pattern);
a later POS call overwrites the axes it programs and keeps the
others, and a new <code>CYCL DEF</code> does not clear it. An axis that
is absent here has no reference: the control refuses an increment
on it, the simulation warns and falls back to the last programmed
position.</p>
</dd>
</dl>
<dl class="jumplist">
<dt><a class="xref" href="Hi.NcParsers.Keywords.Heidenhain.HeidenhainGoto.html">HeidenhainGoto</a></dt>
<dd><p>Heidenhain FN 9–12 conditional jump record
(<code>FN 12: IF +Q1 LT +5 GOTO LBL n</code>). Two lifetimes share the shape:</p>
<ul><li><code>Parsing.HeidenhainGoto</code> — written by
<a class="xref" href="Hi.NcParsers.ParsingSyntaxs.Heidenhain.HeidenhainGotoParsingSyntax.html">HeidenhainGotoParsingSyntax</a> for
all four opcodes, in both the spaced standard spelling and the
compressed post spelling (<code>FN12:IF+Q94 LT+1GOTOLBL"NAME"</code>).</li><li>block-root <code>HeidenhainGoto</code> — stamped by
<a class="xref" href="Hi.NcParsers.EvaluationSyntaxs.Heidenhain.HeidenhainGotoSyntax.html">HeidenhainGotoSyntax</a> after
the control-flow decision, with <a class="xref" href="Hi.NcParsers.Keywords.Heidenhain.HeidenhainGoto.html#Hi_NcParsers_Keywords_Heidenhain_HeidenhainGoto_Fired">Fired</a> flipped true on a
successful redirect.</li></ul>
<p>
Unlike the Fanuc / Siemens jump records the condition is not one
expression string: the klartext jump grammar is strictly
<code>&lt;value&gt; &lt;comparator&gt; &lt;value&gt;</code>, and the
Heidenhain expression grammar deliberately has no comparison layer
(its bare-word rejection is what keeps the evaluator's Parsing-tree
pass off non-expression strings). The parsing owner therefore
pre-normalises the statement: <a class="xref" href="Hi.NcParsers.Keywords.Heidenhain.HeidenhainGoto.html#Hi_NcParsers_Keywords_Heidenhain_HeidenhainGoto_Lhs">Lhs</a>/<a class="xref" href="Hi.NcParsers.Keywords.Heidenhain.HeidenhainGoto.html#Hi_NcParsers_Keywords_Heidenhain_HeidenhainGoto_Rhs">Rhs</a> are
captured as separate value operands (pure literals typed numeric at
capture, Q references kept as strings for the evaluator's pass-2
substitution) and the comparator spelling is normalised to the shared
comparison words (<code>EQU</code>→<code>EQ</code>; <code>NE</code>/<code>GT</code>/<code>LT</code>
as written). The comparison itself happens in the evaluation syntax.
</p>
<p>
Klartext has no unconditional jump statement and no direction
mnemonic — a TNC label is unique per program, so the consumer scans
the whole host file and takes the first matching definition
(<code>LBL n</code> / <code>LBL "name"</code>), forward or backward alike.
</p>
</dd>
</dl>
<dl class="jumplist">
<dt><a class="xref" href="Hi.NcParsers.Keywords.Heidenhain.HeidenhainLbl.html">HeidenhainLbl</a></dt>
<dd><p>Block-root record left on a consumed <code>LBL</code> marker block by
<a class="xref" href="Hi.NcParsers.EvaluationSyntaxs.Heidenhain.HeidenhainSubProgramReturnSyntax.html">HeidenhainSubProgramReturnSyntax</a>.
A plain definition marker produces no motion; the record keeps the
label visible for cache dumps (and the P5 jump family).</p>
</dd>
</dl>
<dl class="jumplist">
<dt><a class="xref" href="Hi.NcParsers.Keywords.Heidenhain.MachiningCycleDef.html">MachiningCycleDef</a></dt>
<dd><p>Block-root section carrying the stored Heidenhain machining-cycle
definition (the <code>CYCL DEF 2xx</code> &ldquo;setup half&rdquo;). Written by
<a class="xref" href="Hi.NcParsers.LogicSyntaxs.Heidenhain.HeidenhainCannedCycleSyntax.html">HeidenhainCannedCycleSyntax</a> on
every block (self-carrying modal state, the P1 datum-shift pattern) —
a klartext definition never executes by itself; execution is gated on
<code>CYCL CALL</code>/<code>M99</code> (call-once) or <code>M89</code> (modal call on
positioning blocks), which convert this store into a direct ISO cycle
sub-section under <code>Parsing</code>.</p>
</dd>
</dl>
<h3 id="interfaces">
Interfaces
</h3>
<dl class="jumplist">
<dt><a class="xref" href="Hi.NcParsers.Keywords.Heidenhain.ICyclDef.html">ICyclDef</a></dt>
<dd><p>JSON section schema for Heidenhain <code>CYCL DEF</code> blocks. The
<a class="xref" href="Hi.NcParsers.Keywords.Heidenhain.ICyclDef.html#Hi_NcParsers_Keywords_Heidenhain_ICyclDef_CyclHead">CyclHead</a> string captures either the cycle title (e.g.
<code>&ldquo;DATUM SETTING&rdquo;</code>) or a parameter line (e.g. <code>&ldquo;Q339=+1&rdquo;</code>).</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>