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.RadiusCompPlaneChange.html
T
2026-09-12 18:16:27 +08:00

286 lines
12 KiB
HTML

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Class RadiusCompPlaneChange | HiAPI-C# 2025 </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Class RadiusCompPlaneChange | HiAPI-C# 2025 ">
<meta name="description" content="Classifies a plane selection (G17/G18/G19) that arrives while cutter radius compensation is still active — the case a real control refuses. Fanuc stops with alarm PS0037 CAN NOT CHANGE PLANE IN CRC, which covers both a plane code inside the compensation mode and a plane code sharing its block with the G40 that cancels it; Siemens and Heidenhain have equivalents. Neither engine can honour such a change: the corner between the two blocks is built from one block&#39;s running axis on the old plane and the other&#39;s on the new one, so the path around the change mixes two planes — and the block after it is offset on a plane the block before it never saw. The diagnostics built from this class exist to name that; they never change the path. The check is on the plane actually resolving differently from the previous block&#39;s, so a plane code that re-selects the plane already in force stays silent, as does the plane code on the block that starts the region (a control accepts that one — compensation is not active yet).">
<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.RadiusCompPlaneChange">
<h1 id="Hi_NcParsers_RadiusCompPlaneChange" data-uid="Hi.NcParsers.RadiusCompPlaneChange" class="text-break">
Class RadiusCompPlaneChange
</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></dd></dl>
<dl><dt>Assembly</dt><dd>HiMech.dll</dd></dl>
</div>
<div class="markdown summary"><p>Classifies a plane selection (G17/G18/G19) that arrives while cutter
radius compensation is still active — the case a real control refuses.
Fanuc stops with alarm PS0037 CAN NOT CHANGE PLANE IN CRC, which covers
both a plane code inside the compensation mode and a plane code sharing
its block with the G40 that cancels it; Siemens and Heidenhain have
equivalents. Neither engine can honour such a change: the corner between
the two blocks is built from one block's running axis on the old plane
and the other's on the new one, so the path around the change mixes two
planes — and the block after it is offset on a plane the block before it
never saw. The diagnostics built from this class exist to name that;
they never change the path.</p>
<p>
The check is on the plane actually resolving differently from the
previous block's, so a plane code that re-selects the plane already in
force stays silent, as does the plane code on the block that starts the
region (a control accepts that one — compensation is not active yet).
</p>
</div>
<div class="markdown conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static class RadiusCompPlaneChange</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">RadiusCompPlaneChange</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_RadiusCompPlaneChange_DiagnosticId" data-uid="Hi.NcParsers.RadiusCompPlaneChange.DiagnosticId">
DiagnosticId
</h3>
<div class="markdown level1 summary"><p>Diagnostic id shared by the SoftNc and HardNc compensation paths.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public const string DiagnosticId = &quot;RadiusComp--PlaneChangeInRegion&quot;</code></pre>
</div>
<h4 class="section">Field Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd></dd>
</dl>
<h2 class="section" id="methods">Methods
</h2>
<a id="Hi_NcParsers_RadiusCompPlaneChange_TryDescribe_" data-uid="Hi.NcParsers.RadiusCompPlaneChange.TryDescribe*"></a>
<h3 id="Hi_NcParsers_RadiusCompPlaneChange_TryDescribe_System_String_System_String_System_String_System_String__System_Collections_Generic_Dictionary_System_String_System_Object___" data-uid="Hi.NcParsers.RadiusCompPlaneChange.TryDescribe(System.String,System.String,System.String,System.String@,System.Collections.Generic.Dictionary{System.String,System.Object}@)">
TryDescribe(string, string, string, out string, out Dictionary&lt;string, object&gt;)
</h3>
<div class="markdown level1 summary"><p>Describes a plane change inside a compensation region: returns the
constant notification <code class="paramref">text</code> and a value-carrying
<code class="paramref">detail</code> when <code class="paramref">fromPlane</code> and
<code class="paramref">toPlane</code> differ, and false when they agree (a
re-select of the plane already in force) or either is unknown.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static bool TryDescribe(string fromPlane, string toPlane, string compensationTerm, out string text, out Dictionary&lt;string, object&gt; detail)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>fromPlane</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>Plane code in force on the previous block (G17/G18/G19).</p>
</dd>
<dt><code>toPlane</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>Plane code this block resolves to.</p>
</dd>
<dt><code>compensationTerm</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>The G code the region runs under (G41/G42).</p>
</dd>
<dt><code>text</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>Constant notification text (fold-stable), or null.</p>
</dd>
<dt><code>detail</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.generic.dictionary-2">Dictionary</a>&lt;<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a>, <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a>&gt;</dt>
<dd><p>The two planes and the compensation mode, or null.</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.boolean">bool</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>