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

535 lines
18 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 IsoCoordinateAddressMap | HiAPI-C# 2025 </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Class IsoCoordinateAddressMap | HiAPI-C# 2025 ">
<meta name="description" content="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 (which calls these &amp;ldquo;ParamId&amp;rdquo;) and (which calls them &amp;ldquo;PrId&amp;rdquo;) because both follow the same numeric scheme.">
<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.IsoCoordinateAddressMap">
<h1 id="Hi_NcParsers_Dependencys_IsoCoordinateAddressMap" data-uid="Hi.NcParsers.Dependencys.IsoCoordinateAddressMap" class="text-break">
Class IsoCoordinateAddressMap
</h1>
<div class="facts text-secondary">
<dl><dt>Namespace</dt><dd><a class="xref" href="Hi.html">Hi</a>.<a class="xref" href="Hi.NcParsers.html">NcParsers</a>.<a class="xref" href="Hi.NcParsers.Dependencys.html">Dependencys</a></dd></dl>
<dl><dt>Assembly</dt><dd>HiMech.dll</dd></dl>
</div>
<div class="markdown summary"><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>
</div>
<div class="markdown conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static class IsoCoordinateAddressMap</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">IsoCoordinateAddressMap</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="fields">Fields
</h2>
<h3 id="Hi_NcParsers_Dependencys_IsoCoordinateAddressMap_G54Base" data-uid="Hi.NcParsers.Dependencys.IsoCoordinateAddressMap.G54Base">
G54Base
</h3>
<div class="markdown level1 summary"><p>#5221: base address of G54 (X). G54.Y=#5222, G54.Z=#5223.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public const int G54Base = 5221</code></pre>
</div>
<h4 class="section">Field Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int32">int</a></dt>
<dd></dd>
</dl>
<h3 id="Hi_NcParsers_Dependencys_IsoCoordinateAddressMap_G54p1P1Base" data-uid="Hi.NcParsers.Dependencys.IsoCoordinateAddressMap.G54p1P1Base">
G54p1P1Base
</h3>
<div class="markdown level1 summary"><p>#7001: base address of G54.1 P1 (X). G54.1 P1.Y=#7002, P1.Z=#7003.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public const int G54p1P1Base = 7001</code></pre>
</div>
<h4 class="section">Field Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int32">int</a></dt>
<dd></dd>
</dl>
<h3 id="Hi_NcParsers_Dependencys_IsoCoordinateAddressMap_G54p1PCount" data-uid="Hi.NcParsers.Dependencys.IsoCoordinateAddressMap.G54p1PCount">
G54p1PCount
</h3>
<div class="markdown level1 summary"><p>48: number of G54.1 P entries (P1..P48).</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public const int G54p1PCount = 48</code></pre>
</div>
<h4 class="section">Field Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int32">int</a></dt>
<dd></dd>
</dl>
<h3 id="Hi_NcParsers_Dependencys_IsoCoordinateAddressMap_G5xCount" data-uid="Hi.NcParsers.Dependencys.IsoCoordinateAddressMap.G5xCount">
G5xCount
</h3>
<div class="markdown level1 summary"><p>6: number of G5x entries (G54..G59).</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public const int G5xCount = 6</code></pre>
</div>
<h4 class="section">Field Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int32">int</a></dt>
<dd></dd>
</dl>
<h3 id="Hi_NcParsers_Dependencys_IsoCoordinateAddressMap_Stride" data-uid="Hi.NcParsers.Dependencys.IsoCoordinateAddressMap.Stride">
Stride
</h3>
<div class="markdown level1 summary"><p>20: address stride between successive coordinate entries.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public const int Stride = 20</code></pre>
</div>
<h4 class="section">Field Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int32">int</a></dt>
<dd></dd>
</dl>
<h2 class="section" id="methods">Methods
</h2>
<a id="Hi_NcParsers_Dependencys_IsoCoordinateAddressMap_EnumerateCoordinateIds_" data-uid="Hi.NcParsers.Dependencys.IsoCoordinateAddressMap.EnumerateCoordinateIds*"></a>
<h3 id="Hi_NcParsers_Dependencys_IsoCoordinateAddressMap_EnumerateCoordinateIds_System_Collections_Generic_IDictionary_System_Int32_System_Double__" data-uid="Hi.NcParsers.Dependencys.IsoCoordinateAddressMap.EnumerateCoordinateIds(System.Collections.Generic.IDictionary{System.Int32,System.Double})">
EnumerateCoordinateIds(IDictionary&lt;int, double&gt;)
</h3>
<div class="markdown level1 summary"><p>Enumerates the coordinate ids (G54..G59, G54.1P1..G54.1P48) that have
at least one axis entry present in <code class="paramref">systemParams</code>.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static IEnumerable&lt;string&gt; EnumerateCoordinateIds(IDictionary&lt;int, double&gt; systemParams)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>systemParams</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.generic.idictionary-2">IDictionary</a>&lt;<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int32">int</a>, <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a>&gt;</dt>
<dd></dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.generic.ienumerable-1">IEnumerable</a>&lt;<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a>&gt;</dt>
<dd></dd>
</dl>
<a id="Hi_NcParsers_Dependencys_IsoCoordinateAddressMap_Read_" data-uid="Hi.NcParsers.Dependencys.IsoCoordinateAddressMap.Read*"></a>
<h3 id="Hi_NcParsers_Dependencys_IsoCoordinateAddressMap_Read_System_Collections_Generic_IDictionary_System_Int32_System_Double__System_Int32_" data-uid="Hi.NcParsers.Dependencys.IsoCoordinateAddressMap.Read(System.Collections.Generic.IDictionary{System.Int32,System.Double},System.Int32)">
Read(IDictionary&lt;int, double&gt;, int)
</h3>
<div class="markdown level1 summary"><p>Reads X/Y/Z from <code class="paramref">systemParams</code> at consecutive addresses
starting at <code class="paramref">baseAddr</code>. Returns null when none of the
three addresses are present (i.e. the entry is unmanaged).</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static Vec3d Read(IDictionary&lt;int, double&gt; systemParams, int baseAddr)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>systemParams</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.generic.idictionary-2">IDictionary</a>&lt;<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int32">int</a>, <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a>&gt;</dt>
<dd></dd>
<dt><code>baseAddr</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int32">int</a></dt>
<dd></dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="Hi.Geom.Vec3d.html">Vec3d</a></dt>
<dd></dd>
</dl>
<a id="Hi_NcParsers_Dependencys_IsoCoordinateAddressMap_SeedAllDefaults_" data-uid="Hi.NcParsers.Dependencys.IsoCoordinateAddressMap.SeedAllDefaults*"></a>
<h3 id="Hi_NcParsers_Dependencys_IsoCoordinateAddressMap_SeedAllDefaults_System_Collections_Generic_IDictionary_System_Int32_System_Double__" data-uid="Hi.NcParsers.Dependencys.IsoCoordinateAddressMap.SeedAllDefaults(System.Collections.Generic.IDictionary{System.Int32,System.Double})">
SeedAllDefaults(IDictionary&lt;int, double&gt;)
</h3>
<div class="markdown level1 summary"><p>Seeds all G54G59 and G54.1 P1P48 entries with zero.
Total 162 SystemParams entries (6×3 + 48×3). Used by brand
parameter tables to satisfy the &ldquo;managed parameter must have default&rdquo;
invariant — real Fanuc on a fresh-battery controller also reads 0
for these addresses, so the model matches hardware.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static void SeedAllDefaults(IDictionary&lt;int, double&gt; systemParams)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>systemParams</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.generic.idictionary-2">IDictionary</a>&lt;<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int32">int</a>, <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a>&gt;</dt>
<dd></dd>
</dl>
<a id="Hi_NcParsers_Dependencys_IsoCoordinateAddressMap_TryResolveBase_" data-uid="Hi.NcParsers.Dependencys.IsoCoordinateAddressMap.TryResolveBase*"></a>
<h3 id="Hi_NcParsers_Dependencys_IsoCoordinateAddressMap_TryResolveBase_System_String_" data-uid="Hi.NcParsers.Dependencys.IsoCoordinateAddressMap.TryResolveBase(System.String)">
TryResolveBase(string)
</h3>
<div class="markdown level1 summary"><p>Resolves a coordinate id to its 3-axis base address (X address; Y at +1, Z at +2),
or null if the id is outside the Fanuc-mapped set (G54G59, G54.1P1G54.1P48).</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static int? TryResolveBase(string coordId)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>coordId</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd></dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int32">int</a>?</dt>
<dd></dd>
</dl>
<a id="Hi_NcParsers_Dependencys_IsoCoordinateAddressMap_Write_" data-uid="Hi.NcParsers.Dependencys.IsoCoordinateAddressMap.Write*"></a>
<h3 id="Hi_NcParsers_Dependencys_IsoCoordinateAddressMap_Write_System_Collections_Generic_IDictionary_System_Int32_System_Double__System_Int32_Hi_Geom_Vec3d_" data-uid="Hi.NcParsers.Dependencys.IsoCoordinateAddressMap.Write(System.Collections.Generic.IDictionary{System.Int32,System.Double},System.Int32,Hi.Geom.Vec3d)">
Write(IDictionary&lt;int, double&gt;, int, Vec3d)
</h3>
<div class="markdown level1 summary"><p>Writes X/Y/Z to <code class="paramref">systemParams</code> at consecutive addresses
starting at <code class="paramref">baseAddr</code>.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static void Write(IDictionary&lt;int, double&gt; systemParams, int baseAddr, Vec3d offset)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>systemParams</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.generic.idictionary-2">IDictionary</a>&lt;<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int32">int</a>, <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a>&gt;</dt>
<dd></dd>
<dt><code>baseAddr</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int32">int</a></dt>
<dd></dd>
<dt><code>offset</code> <a class="xref" href="Hi.Geom.Vec3d.html">Vec3d</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>