deploy.
This commit is contained in:
+13
-9
@@ -2,9 +2,9 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Delegate DispEngine.ImageRequestedDelegate | HiAPI-C# 2025 </title>
|
||||
<title>Delegate DispEngine.FrameReadyDelegate | HiAPI-C# 2025 </title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="title" content="Delegate DispEngine.ImageRequestedDelegate | HiAPI-C# 2025 ">
|
||||
<meta name="title" content="Delegate DispEngine.FrameReadyDelegate | HiAPI-C# 2025 ">
|
||||
|
||||
<meta name="description" content="For .">
|
||||
<link rel="icon" href="../img/HiAPI.favicon.ico">
|
||||
@@ -84,12 +84,12 @@
|
||||
<nav id="breadcrumb"></nav>
|
||||
</div>
|
||||
|
||||
<article data-uid="Hi.Disp.DispEngine.ImageRequestedDelegate">
|
||||
<article data-uid="Hi.Disp.DispEngine.FrameReadyDelegate">
|
||||
|
||||
|
||||
|
||||
<h1 id="Hi_Disp_DispEngine_ImageRequestedDelegate" data-uid="Hi.Disp.DispEngine.ImageRequestedDelegate" class="text-break">
|
||||
Delegate DispEngine.ImageRequestedDelegate
|
||||
<h1 id="Hi_Disp_DispEngine_FrameReadyDelegate" data-uid="Hi.Disp.DispEngine.FrameReadyDelegate" class="text-break">
|
||||
Delegate DispEngine.FrameReadyDelegate
|
||||
</h1>
|
||||
|
||||
<div class="facts text-secondary">
|
||||
@@ -97,25 +97,29 @@ Delegate DispEngine.ImageRequestedDelegate
|
||||
<dl><dt>Assembly</dt><dd>HiDisp.dll</dd></dl>
|
||||
</div>
|
||||
|
||||
<div class="markdown summary"><p>For <a class="xref" href="Hi.Disp.DispEngine.html#Hi_Disp_DispEngine_ImageRequestAfterBufferSwapped">ImageRequestAfterBufferSwapped</a>.</p>
|
||||
<div class="markdown summary"><p>For <a class="xref" href="Hi.Disp.DispEngine.html#Hi_Disp_DispEngine_FrameReady">FrameReady</a>.</p>
|
||||
</div>
|
||||
<div class="markdown conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public delegate void DispEngine.ImageRequestedDelegate(byte* bgra_unsignedbyte_pixels, int w, int h)</code></pre>
|
||||
<pre><code class="lang-csharp hljs">public delegate void DispEngine.FrameReadyDelegate(byte* bgra_unsignedbyte_pixels, int w, int h, FramePins pins)</code></pre>
|
||||
</div>
|
||||
|
||||
<h4 class="section">Parameters</h4>
|
||||
<dl class="parameters">
|
||||
<dt><code>bgra_unsignedbyte_pixels</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.byte">byte</a>*</dt>
|
||||
<dd><p>BGRA convention pixels in unsigned bytes.
|
||||
The size is w<em>h</em>4.</p>
|
||||
<dd><p>BGRA convention pixels in unsigned bytes, top row first.
|
||||
The size is w<em>h</em>4. Valid only during the callback.</p>
|
||||
</dd>
|
||||
<dt><code>w</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int32">int</a></dt>
|
||||
<dd><p>width</p>
|
||||
</dd>
|
||||
<dt><code>h</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int32">int</a></dt>
|
||||
<dd><p>height</p>
|
||||
</dd>
|
||||
<dt><code>pins</code> <a class="xref" href="Hi.Disp.FramePins.html">FramePins</a></dt>
|
||||
<dd><p>The pin table of the same frame (see <a class="xref" href="Hi.Disp.PinDrawing.html">PinDrawing</a>); never null.
|
||||
<a class="xref" href="Hi.Disp.FramePins.html#Hi_Disp_FramePins_PixelsChanged">PixelsChanged</a> tells whether the pixels differ from the previous frame.</p>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
@@ -1808,6 +1808,35 @@ which mouse buttons perform which transformations:</p>
|
||||
|
||||
|
||||
|
||||
<a id="Hi_Disp_DispEngine_MouseLeave_" data-uid="Hi.Disp.DispEngine.MouseLeave*"></a>
|
||||
|
||||
<h3 id="Hi_Disp_DispEngine_MouseLeave" data-uid="Hi.Disp.DispEngine.MouseLeave">
|
||||
MouseLeave()
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>The cursor left the canvas, e.g. onto an element laid over it. The next pick pass sends
|
||||
<span class="xref">Hi.Disp.PickEvent</span> Mouse_Exited to the hovered pickable, if any; the cursor position and
|
||||
the drag state are untouched, so a drag that returns to the canvas continues normally.</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public void MouseLeave()</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a id="Hi_Disp_DispEngine_MouseMove_" data-uid="Hi.Disp.DispEngine.MouseMove*"></a>
|
||||
|
||||
<h3 id="Hi_Disp_DispEngine_MouseMove_System_Int32_System_Int32_" data-uid="Hi.Disp.DispEngine.MouseMove(System.Int32,System.Int32)">
|
||||
@@ -2623,17 +2652,18 @@ The function unlock the opengl context for <a class="xref" href="Hi.Disp.DispEng
|
||||
|
||||
|
||||
|
||||
<h3 id="Hi_Disp_DispEngine_ImageRequestAfterBufferSwapped" data-uid="Hi.Disp.DispEngine.ImageRequestAfterBufferSwapped">
|
||||
ImageRequestAfterBufferSwapped
|
||||
<h3 id="Hi_Disp_DispEngine_FrameReady" data-uid="Hi.Disp.DispEngine.FrameReady">
|
||||
FrameReady
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>Triggered after swap buffer of gl context.</p>
|
||||
<div class="markdown level1 summary"><p>Triggered on the render thread after every frame whose pixels or pin table changed.
|
||||
Handlers must not touch the engine's GL state and must not block.</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public event DispEngine.ImageRequestedDelegate ImageRequestAfterBufferSwapped</code></pre>
|
||||
<pre><code class="lang-csharp hljs">public event DispEngine.FrameReadyDelegate FrameReady</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -2643,7 +2673,7 @@ The function unlock the opengl context for <a class="xref" href="Hi.Disp.DispEng
|
||||
|
||||
<h4 class="section">Event Type</h4>
|
||||
<dl class="parameters">
|
||||
<dt><a class="xref" href="Hi.Disp.DispEngine.html">DispEngine</a>.<a class="xref" href="Hi.Disp.DispEngine.ImageRequestedDelegate.html">ImageRequestedDelegate</a></dt>
|
||||
<dt><a class="xref" href="Hi.Disp.DispEngine.html">DispEngine</a>.<a class="xref" href="Hi.Disp.DispEngine.FrameReadyDelegate.html">FrameReadyDelegate</a></dt>
|
||||
<dd></dd>
|
||||
</dl>
|
||||
|
||||
|
||||
@@ -0,0 +1,523 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Class FramePins | HiAPI-C# 2025 </title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="title" content="Class FramePins | HiAPI-C# 2025 ">
|
||||
|
||||
<meta name="description" content="The pin table of one rendered frame, handed to together with the pixels. Records are sorted by name and every displayed pin is listed, visible or not; filter with .">
|
||||
<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 "{query}"">
|
||||
<meta name="loc:searchNoResults" content="No results for "{query}"">
|
||||
<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.Disp.FramePins">
|
||||
|
||||
|
||||
|
||||
<h1 id="Hi_Disp_FramePins" data-uid="Hi.Disp.FramePins" class="text-break">
|
||||
Class FramePins
|
||||
</h1>
|
||||
|
||||
<div class="facts text-secondary">
|
||||
<dl><dt>Namespace</dt><dd><a class="xref" href="Hi.html">Hi</a>.<a class="xref" href="Hi.Disp.html">Disp</a></dd></dl>
|
||||
<dl><dt>Assembly</dt><dd>HiDisp.dll</dd></dl>
|
||||
</div>
|
||||
|
||||
<div class="markdown summary"><p>The pin table of one rendered frame, handed to <a class="xref" href="Hi.Disp.DispEngine.html#Hi_Disp_DispEngine_FrameReady">FrameReady</a> together with the pixels.
|
||||
Records are sorted by name and every displayed pin is listed, visible or not; filter with <a class="xref" href="Hi.Disp.FramePins.html#Hi_Disp_FramePins_Visible">Visible</a>.</p>
|
||||
</div>
|
||||
<div class="markdown conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public sealed class FramePins</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">FramePins</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.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>
|
||||
|
||||
<dl class="typelist extensionMethods">
|
||||
<dt>Extension Methods</dt>
|
||||
<dd>
|
||||
<div>
|
||||
<a class="xref" href="Hi.Common.DuplicateUtil.html#Hi_Common_DuplicateUtil_TryDuplicate__1___0_System_Object___">DuplicateUtil.TryDuplicate<TSelf>(TSelf, params object[])</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="Hi.Common.InvokeUtil.html#Hi_Common_InvokeUtil_SelfInvoke__1___0_System_Action___0__">InvokeUtil.SelfInvoke<TSrc>(TSrc, Action<TSrc>)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="Hi.Common.InvokeUtil.html#Hi_Common_InvokeUtil_SelfInvoke__2___0_System_Func___0___1__">InvokeUtil.SelfInvoke<TSrc, TDst>(TSrc, Func<TSrc, TDst>)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="Hi.Coloring.ColorUtil.html#Hi_Coloring_ColorUtil_GetGloomyColor_System_Object_System_Double_System_Double_">ColorUtil.GetGloomyColor(object, double, double)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="Hi.Common.NameUtil.html#Hi_Common_NameUtil_GetSelectionName_System_Object_">NameUtil.GetSelectionName(object)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="Hi.Common.StringUtil.html#Hi_Common_StringUtil_GetPropertyStringIfToStringNotOverloaded_System_Object_System_Boolean_System_Boolean_">StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="Hi.Parallels.LockUtil.html#Hi_Parallels_LockUtil_Lock_System_Object_">LockUtil.Lock(object)</a>
|
||||
</div>
|
||||
</dd></dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h2 class="section" id="properties">Properties
|
||||
</h2>
|
||||
|
||||
|
||||
<a id="Hi_Disp_FramePins_ByName_" data-uid="Hi.Disp.FramePins.ByName*"></a>
|
||||
|
||||
<h3 id="Hi_Disp_FramePins_ByName" data-uid="Hi.Disp.FramePins.ByName">
|
||||
ByName
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>Records keyed by name (names are unique within a frame).</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public IReadOnlyDictionary<string, PinRecord> ByName { get; }</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h4 class="section">Property Value</h4>
|
||||
<dl class="parameters">
|
||||
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.generic.ireadonlydictionary-2">IReadOnlyDictionary</a><<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a>, <a class="xref" href="Hi.Disp.PinRecord.html">PinRecord</a>></dt>
|
||||
<dd></dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a id="Hi_Disp_FramePins_Empty_" data-uid="Hi.Disp.FramePins.Empty*"></a>
|
||||
|
||||
<h3 id="Hi_Disp_FramePins_Empty" data-uid="Hi.Disp.FramePins.Empty">
|
||||
Empty
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>The table of a frame that carried no pins. <a class="xref" href="Hi.Disp.FramePins.html#Hi_Disp_FramePins_PixelsChanged">PixelsChanged</a> is true.</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public static FramePins Empty { get; }</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h4 class="section">Property Value</h4>
|
||||
<dl class="parameters">
|
||||
<dt><a class="xref" href="Hi.Disp.FramePins.html">FramePins</a></dt>
|
||||
<dd></dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a id="Hi_Disp_FramePins_FrameSerial_" data-uid="Hi.Disp.FramePins.FrameSerial*"></a>
|
||||
|
||||
<h3 id="Hi_Disp_FramePins_FrameSerial" data-uid="Hi.Disp.FramePins.FrameSerial">
|
||||
FrameSerial
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>Increments once per transported frame of the engine.</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public long FrameSerial { get; }</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h4 class="section">Property Value</h4>
|
||||
<dl class="parameters">
|
||||
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int64">long</a></dt>
|
||||
<dd></dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a id="Hi_Disp_FramePins_Height_" data-uid="Hi.Disp.FramePins.Height*"></a>
|
||||
|
||||
<h3 id="Hi_Disp_FramePins_Height" data-uid="Hi.Disp.FramePins.Height">
|
||||
Height
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>Frame height in pixels.</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public int Height { get; }</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h4 class="section">Property Value</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_Disp_FramePins_Pins_" data-uid="Hi.Disp.FramePins.Pins*"></a>
|
||||
|
||||
<h3 id="Hi_Disp_FramePins_Pins" data-uid="Hi.Disp.FramePins.Pins">
|
||||
Pins
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>All records of the frame, sorted by name.</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public IReadOnlyList<PinRecord> Pins { get; }</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h4 class="section">Property Value</h4>
|
||||
<dl class="parameters">
|
||||
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.generic.ireadonlylist-1">IReadOnlyList</a><<a class="xref" href="Hi.Disp.PinRecord.html">PinRecord</a>></dt>
|
||||
<dd></dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a id="Hi_Disp_FramePins_PinsChanged_" data-uid="Hi.Disp.FramePins.PinsChanged*"></a>
|
||||
|
||||
<h3 id="Hi_Disp_FramePins_PinsChanged" data-uid="Hi.Disp.FramePins.PinsChanged">
|
||||
PinsChanged
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>The pin table differs from the previously transported frame.</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public bool PinsChanged { get; }</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h4 class="section">Property Value</h4>
|
||||
<dl class="parameters">
|
||||
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.boolean">bool</a></dt>
|
||||
<dd></dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a id="Hi_Disp_FramePins_PixelsChanged_" data-uid="Hi.Disp.FramePins.PixelsChanged*"></a>
|
||||
|
||||
<h3 id="Hi_Disp_FramePins_PixelsChanged" data-uid="Hi.Disp.FramePins.PixelsChanged">
|
||||
PixelsChanged
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>The pixels differ from the previously transported frame.</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public bool PixelsChanged { get; }</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h4 class="section">Property Value</h4>
|
||||
<dl class="parameters">
|
||||
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.boolean">bool</a></dt>
|
||||
<dd></dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a id="Hi_Disp_FramePins_ProjDepth_" data-uid="Hi.Disp.FramePins.ProjDepth*"></a>
|
||||
|
||||
<h3 id="Hi_Disp_FramePins_ProjDepth" data-uid="Hi.Disp.FramePins.ProjDepth">
|
||||
ProjDepth
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>Projection depth D of the engine: one pixel unit of z is 1/D of window depth.</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public double ProjDepth { get; }</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h4 class="section">Property Value</h4>
|
||||
<dl class="parameters">
|
||||
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
|
||||
<dd></dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a id="Hi_Disp_FramePins_Visible_" data-uid="Hi.Disp.FramePins.Visible*"></a>
|
||||
|
||||
<h3 id="Hi_Disp_FramePins_Visible" data-uid="Hi.Disp.FramePins.Visible">
|
||||
Visible
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>The records whose anchor is on the canvas and not occluded.</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public IEnumerable<PinRecord> Visible { get; }</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h4 class="section">Property Value</h4>
|
||||
<dl class="parameters">
|
||||
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.generic.ienumerable-1">IEnumerable</a><<a class="xref" href="Hi.Disp.PinRecord.html">PinRecord</a>></dt>
|
||||
<dd></dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a id="Hi_Disp_FramePins_Width_" data-uid="Hi.Disp.FramePins.Width*"></a>
|
||||
|
||||
<h3 id="Hi_Disp_FramePins_Width" data-uid="Hi.Disp.FramePins.Width">
|
||||
Width
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>Frame width in pixels.</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public int Width { get; }</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h4 class="section">Property Value</h4>
|
||||
<dl class="parameters">
|
||||
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int32">int</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>
|
||||
@@ -0,0 +1,519 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Class PinDrawing | HiAPI-C# 2025 </title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="title" content="Class PinDrawing | HiAPI-C# 2025 ">
|
||||
|
||||
<meta name="description" content="A named, scale-less anchor. Displaying it draws nothing; the engine reports where the anchor landed in each frame, its depth and whether scene geometry hides it, through as a of the same name. Use it to place external UI (an HTML element, say) over a 3D point of the canvas.">
|
||||
<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 "{query}"">
|
||||
<meta name="loc:searchNoResults" content="No results for "{query}"">
|
||||
<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.Disp.PinDrawing">
|
||||
|
||||
|
||||
|
||||
<h1 id="Hi_Disp_PinDrawing" data-uid="Hi.Disp.PinDrawing" class="text-break">
|
||||
Class PinDrawing
|
||||
</h1>
|
||||
|
||||
<div class="facts text-secondary">
|
||||
<dl><dt>Namespace</dt><dd><a class="xref" href="Hi.html">Hi</a>.<a class="xref" href="Hi.Disp.html">Disp</a></dd></dl>
|
||||
<dl><dt>Assembly</dt><dd>HiDisp.dll</dd></dl>
|
||||
</div>
|
||||
|
||||
<div class="markdown summary"><p>A named, scale-less anchor. Displaying it draws nothing; the engine reports where the anchor
|
||||
landed in each frame, its depth and whether scene geometry hides it, through
|
||||
<a class="xref" href="Hi.Disp.DispEngine.html#Hi_Disp_DispEngine_FrameReady">FrameReady</a> as a <a class="xref" href="Hi.Disp.PinRecord.html">PinRecord</a> of the same name.
|
||||
Use it to place external UI (an HTML element, say) over a 3D point of the canvas.</p>
|
||||
</div>
|
||||
<div class="markdown conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public sealed class PinDrawing : IDisplayee, IExpandToBox3d, IDisposable</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">PinDrawing</span></div>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
<dl class="typelist implements">
|
||||
<dt>Implements</dt>
|
||||
<dd>
|
||||
<div><a class="xref" href="Hi.Disp.IDisplayee.html">IDisplayee</a></div>
|
||||
<div><a class="xref" href="Hi.Geom.IExpandToBox3d.html">IExpandToBox3d</a></div>
|
||||
<div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.idisposable">IDisposable</a></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.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>
|
||||
|
||||
<dl class="typelist extensionMethods">
|
||||
<dt>Extension Methods</dt>
|
||||
<dd>
|
||||
<div>
|
||||
<a class="xref" href="Hi.Disp.DispUtil.html#Hi_Disp_DispUtil_Display_Hi_Disp_IDisplayee_Hi_Disp_Bind_Hi_Geom_Mat4d_">DispUtil.Display(IDisplayee, Bind, Mat4d)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="Hi.Common.DuplicateUtil.html#Hi_Common_DuplicateUtil_TryDuplicate__1___0_System_Object___">DuplicateUtil.TryDuplicate<TSelf>(TSelf, params object[])</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="Hi.Common.InvokeUtil.html#Hi_Common_InvokeUtil_SelfInvoke__1___0_System_Action___0__">InvokeUtil.SelfInvoke<TSrc>(TSrc, Action<TSrc>)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="Hi.Common.InvokeUtil.html#Hi_Common_InvokeUtil_SelfInvoke__2___0_System_Func___0___1__">InvokeUtil.SelfInvoke<TSrc, TDst>(TSrc, Func<TSrc, TDst>)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="Hi.Coloring.ColorUtil.html#Hi_Coloring_ColorUtil_GetGloomyColor_System_Object_System_Double_System_Double_">ColorUtil.GetGloomyColor(object, double, double)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="Hi.Common.NameUtil.html#Hi_Common_NameUtil_GetSelectionName_System_Object_">NameUtil.GetSelectionName(object)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="Hi.Common.StringUtil.html#Hi_Common_StringUtil_GetPropertyStringIfToStringNotOverloaded_System_Object_System_Boolean_System_Boolean_">StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="Hi.Parallels.LockUtil.html#Hi_Parallels_LockUtil_Lock_System_Object_">LockUtil.Lock(object)</a>
|
||||
</div>
|
||||
</dd></dl>
|
||||
|
||||
|
||||
|
||||
<h2 id="Hi_Disp_PinDrawing_remarks">Remarks</h2>
|
||||
<div class="markdown level0 remarks"><p>The wrapper owns no GL object and has no thread affinity: it may be created, displayed and
|
||||
disposed from any thread. Names must be unique within a frame (prefix them by owner);
|
||||
they are UTF-8 and truncated to 63 bytes. Pins displayed while a picking id is set on the
|
||||
<a class="xref" href="Hi.Disp.Bind.html">Bind</a> carry that id in their record.</p>
|
||||
</div>
|
||||
|
||||
|
||||
<h2 class="section" id="constructors">Constructors
|
||||
</h2>
|
||||
|
||||
|
||||
<a id="Hi_Disp_PinDrawing__ctor_" data-uid="Hi.Disp.PinDrawing.#ctor*"></a>
|
||||
|
||||
<h3 id="Hi_Disp_PinDrawing__ctor_System_String_" data-uid="Hi.Disp.PinDrawing.#ctor(System.String)">
|
||||
PinDrawing(string)
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>Constructor.</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public PinDrawing(string name)</code></pre>
|
||||
</div>
|
||||
|
||||
<h4 class="section">Parameters</h4>
|
||||
<dl class="parameters">
|
||||
<dt><code>name</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
|
||||
<dd><p>pin name; unique within a frame</p>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h2 class="section" id="properties">Properties
|
||||
</h2>
|
||||
|
||||
|
||||
<a id="Hi_Disp_PinDrawing_IsAlwaysOnTop_" data-uid="Hi.Disp.PinDrawing.IsAlwaysOnTop*"></a>
|
||||
|
||||
<h3 id="Hi_Disp_PinDrawing_IsAlwaysOnTop" data-uid="Hi.Disp.PinDrawing.IsAlwaysOnTop">
|
||||
IsAlwaysOnTop
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>Display the anchor as never occluded by geometry: the record is on-canvas or not, no depth probe.
|
||||
Set it for a pin paired with an always-on-top <a class="xref" href="Hi.Disp.StringDrawing.html">StringDrawing</a> at the same point,
|
||||
otherwise the label's own rectangle hides the pin.</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public bool IsAlwaysOnTop { get; set; }</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h4 class="section">Property Value</h4>
|
||||
<dl class="parameters">
|
||||
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.boolean">bool</a></dt>
|
||||
<dd></dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a id="Hi_Disp_PinDrawing_Name_" data-uid="Hi.Disp.PinDrawing.Name*"></a>
|
||||
|
||||
<h3 id="Hi_Disp_PinDrawing_Name" data-uid="Hi.Disp.PinDrawing.Name">
|
||||
Name
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>The pin name as given to the constructor (the record carries at most 63 UTF-8 bytes of it).</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public string Name { get; }</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h4 class="section">Property Value</h4>
|
||||
<dl class="parameters">
|
||||
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
|
||||
<dd></dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a id="Hi_Disp_PinDrawing_ProbeBiasPx_" data-uid="Hi.Disp.PinDrawing.ProbeBiasPx*"></a>
|
||||
|
||||
<h3 id="Hi_Disp_PinDrawing_ProbeBiasPx" data-uid="Hi.Disp.PinDrawing.ProbeBiasPx">
|
||||
ProbeBiasPx
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>Occlusion bias in pixel units of depth: geometry closer to the viewer than the anchor by
|
||||
less than this does not count as hiding it, so an anchor placed on a surface stays visible.
|
||||
The engine also applies a floor of a few depth-buffer LSB.</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public double ProbeBiasPx { get; set; }</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h4 class="section">Property Value</h4>
|
||||
<dl class="parameters">
|
||||
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
|
||||
<dd></dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h2 class="section" id="methods">Methods
|
||||
</h2>
|
||||
|
||||
|
||||
<a id="Hi_Disp_PinDrawing_Display_" data-uid="Hi.Disp.PinDrawing.Display*"></a>
|
||||
|
||||
<h3 id="Hi_Disp_PinDrawing_Display_Hi_Disp_Bind_" data-uid="Hi.Disp.PinDrawing.Display(Hi.Disp.Bind)">
|
||||
Display(Bind)
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>Display function called in <a class="xref" href="Hi.Disp.DispEngine.html">DispEngine</a> rendering loop.</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public void Display(Bind bind)</code></pre>
|
||||
</div>
|
||||
|
||||
<h4 class="section">Parameters</h4>
|
||||
<dl class="parameters">
|
||||
<dt><code>bind</code> <a class="xref" href="Hi.Disp.Bind.html">Bind</a></dt>
|
||||
<dd><p>Bind with <a class="xref" href="Hi.Disp.DispEngine.html">DispEngine</a>. See <a class="xref" href="Hi.Disp.Bind.html">Bind</a>.</p>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a id="Hi_Disp_PinDrawing_Display_" data-uid="Hi.Disp.PinDrawing.Display*"></a>
|
||||
|
||||
<h3 id="Hi_Disp_PinDrawing_Display_Hi_Disp_Bind_Hi_Geom_Vec3d_" data-uid="Hi.Disp.PinDrawing.Display(Hi.Disp.Bind,Hi.Geom.Vec3d)">
|
||||
Display(Bind, Vec3d)
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>Display the anchor at <code class="paramref">p</code> under the current model matrix.</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public void Display(Bind bind, Vec3d p)</code></pre>
|
||||
</div>
|
||||
|
||||
<h4 class="section">Parameters</h4>
|
||||
<dl class="parameters">
|
||||
<dt><code>bind</code> <a class="xref" href="Hi.Disp.Bind.html">Bind</a></dt>
|
||||
<dd><p>bind</p>
|
||||
</dd>
|
||||
<dt><code>p</code> <a class="xref" href="Hi.Geom.Vec3d.html">Vec3d</a></dt>
|
||||
<dd><p>anchor position</p>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a id="Hi_Disp_PinDrawing_Dispose_" data-uid="Hi.Disp.PinDrawing.Dispose*"></a>
|
||||
|
||||
<h3 id="Hi_Disp_PinDrawing_Dispose" data-uid="Hi.Disp.PinDrawing.Dispose">
|
||||
Dispose()
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public void Dispose()</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a id="Hi_Disp_PinDrawing_ExpandToBox3d_" data-uid="Hi.Disp.PinDrawing.ExpandToBox3d*"></a>
|
||||
|
||||
<h3 id="Hi_Disp_PinDrawing_ExpandToBox3d_Hi_Geom_Box3d_" data-uid="Hi.Disp.PinDrawing.ExpandToBox3d(Hi.Geom.Box3d)">
|
||||
ExpandToBox3d(Box3d)
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>Expands the destination box.
|
||||
This function is usually used to compute the bounding box of elements.</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public void ExpandToBox3d(Box3d dst)</code></pre>
|
||||
</div>
|
||||
|
||||
<h4 class="section">Parameters</h4>
|
||||
<dl class="parameters">
|
||||
<dt><code>dst</code> <a class="xref" href="Hi.Geom.Box3d.html">Box3d</a></dt>
|
||||
<dd><p>Destination box</p>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a id="Hi_Disp_PinDrawing_Finalize_" data-uid="Hi.Disp.PinDrawing.Finalize*"></a>
|
||||
|
||||
<h3 id="Hi_Disp_PinDrawing_Finalize" data-uid="Hi.Disp.PinDrawing.Finalize">
|
||||
~PinDrawing()
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"></div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">protected ~PinDrawing()</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</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>
|
||||
@@ -0,0 +1,200 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Enum PinFlags | HiAPI-C# 2025 </title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="title" content="Enum PinFlags | HiAPI-C# 2025 ">
|
||||
|
||||
<meta name="description" content="Flag bits of a .">
|
||||
<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 "{query}"">
|
||||
<meta name="loc:searchNoResults" content="No results for "{query}"">
|
||||
<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.Disp.PinFlags">
|
||||
|
||||
|
||||
|
||||
|
||||
<h1 id="Hi_Disp_PinFlags" data-uid="Hi.Disp.PinFlags" class="text-break">
|
||||
Enum PinFlags
|
||||
</h1>
|
||||
|
||||
<div class="facts text-secondary">
|
||||
<dl><dt>Namespace</dt><dd><a class="xref" href="Hi.html">Hi</a>.<a class="xref" href="Hi.Disp.html">Disp</a></dd></dl>
|
||||
<dl><dt>Assembly</dt><dd>HiDisp.dll</dd></dl>
|
||||
</div>
|
||||
|
||||
<div class="markdown summary"><p>Flag bits of a <a class="xref" href="Hi.Disp.PinRecord.html">PinRecord</a>.</p>
|
||||
</div>
|
||||
<div class="markdown conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">[Flags]
|
||||
public enum PinFlags</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<dl class="typelist extensionMethods">
|
||||
<dt>Extension Methods</dt>
|
||||
<dd>
|
||||
<div>
|
||||
<a class="xref" href="Hi.Common.InvokeUtil.html#Hi_Common_InvokeUtil_SelfInvoke__1___0_System_Action___0__">InvokeUtil.SelfInvoke<TSrc>(TSrc, Action<TSrc>)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="Hi.Common.InvokeUtil.html#Hi_Common_InvokeUtil_SelfInvoke__2___0_System_Func___0___1__">InvokeUtil.SelfInvoke<TSrc, TDst>(TSrc, Func<TSrc, TDst>)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="Hi.Common.MaskUtil.html#Hi_Common_MaskUtil_GetMaskedValue__1___0___0_System_Boolean_">MaskUtil.GetMaskedValue<T>(T, T, bool)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="Hi.Common.MaskUtil.html#Hi_Common_MaskUtil_SetMask__1___0____0_System_Boolean_">MaskUtil.SetMask<T>(ref T, T, bool)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="Hi.Coloring.ColorUtil.html#Hi_Coloring_ColorUtil_GetGloomyColor_System_Object_System_Double_System_Double_">ColorUtil.GetGloomyColor(object, double, double)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="Hi.Common.NameUtil.html#Hi_Common_NameUtil_GetSelectionName_System_Object_">NameUtil.GetSelectionName(object)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="Hi.Common.StringUtil.html#Hi_Common_StringUtil_GetPropertyStringIfToStringNotOverloaded_System_Object_System_Boolean_System_Boolean_">StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="Hi.Parallels.LockUtil.html#Hi_Parallels_LockUtil_Lock_System_Object_">LockUtil.Lock(object)</a>
|
||||
</div>
|
||||
</dd></dl>
|
||||
|
||||
<h2 id="fields">Fields
|
||||
</h2>
|
||||
<dl class="parameters">
|
||||
<dt id="Hi_Disp_PinFlags_AlwaysOnTop"><code>AlwaysOnTop = 1</code></dt>
|
||||
|
||||
<dd><p>The pin was displayed always-on-top: never occluded by geometry, so no depth probe.</p>
|
||||
</dd>
|
||||
<dt id="Hi_Disp_PinFlags_DuplicateNameDropped"><code>DuplicateNameDropped = 16</code></dt>
|
||||
|
||||
<dd><p>Another pin of the same name was dropped this frame; this one survived.</p>
|
||||
</dd>
|
||||
<dt id="Hi_Disp_PinFlags_None"><code>None = 0</code></dt>
|
||||
|
||||
<dd><p>No flag.</p>
|
||||
</dd>
|
||||
<dt id="Hi_Disp_PinFlags_Occluded"><code>Occluded = 4</code></dt>
|
||||
|
||||
<dd><p>Scene geometry is nearer than the anchor at its pixel (beyond the probe bias).</p>
|
||||
</dd>
|
||||
<dt id="Hi_Disp_PinFlags_OcclusionTested"><code>OcclusionTested = 8</code></dt>
|
||||
|
||||
<dd><p>The depth probe ran for this pin.</p>
|
||||
</dd>
|
||||
<dt id="Hi_Disp_PinFlags_OnCanvas"><code>OnCanvas = 2</code></dt>
|
||||
|
||||
<dd><p>The anchor lies inside the canvas and inside the depth range.</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>
|
||||
@@ -0,0 +1,578 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Struct PinRecord | HiAPI-C# 2025 </title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="title" content="Struct PinRecord | HiAPI-C# 2025 ">
|
||||
|
||||
<meta name="description" content="One named anchor of a rendered frame: where it landed on the canvas, how deep, and whether it is visible. Positions are canvas pixels with a top-left origin, y down; they may lie outside the canvas.">
|
||||
<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 "{query}"">
|
||||
<meta name="loc:searchNoResults" content="No results for "{query}"">
|
||||
<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.Disp.PinRecord">
|
||||
|
||||
|
||||
|
||||
<h1 id="Hi_Disp_PinRecord" data-uid="Hi.Disp.PinRecord" class="text-break">
|
||||
Struct PinRecord
|
||||
</h1>
|
||||
|
||||
<div class="facts text-secondary">
|
||||
<dl><dt>Namespace</dt><dd><a class="xref" href="Hi.html">Hi</a>.<a class="xref" href="Hi.Disp.html">Disp</a></dd></dl>
|
||||
<dl><dt>Assembly</dt><dd>HiDisp.dll</dd></dl>
|
||||
</div>
|
||||
|
||||
<div class="markdown summary"><p>One named anchor of a rendered frame: where it landed on the canvas, how deep, and whether it is visible.
|
||||
Positions are canvas pixels with a top-left origin, y down; they may lie outside the canvas.</p>
|
||||
</div>
|
||||
<div class="markdown conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public readonly record struct PinRecord : IEquatable<PinRecord></code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<dl class="typelist implements">
|
||||
<dt>Implements</dt>
|
||||
<dd>
|
||||
<div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.iequatable-1">IEquatable</a><<a class="xref" href="Hi.Disp.PinRecord.html">PinRecord</a>></div>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
|
||||
<dl class="typelist inheritedMembers">
|
||||
<dt>Inherited Members</dt>
|
||||
<dd>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.valuetype.equals">ValueType.Equals(object)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.valuetype.gethashcode">ValueType.GetHashCode()</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.valuetype.tostring">ValueType.ToString()</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.gettype">object.GetType()</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.referenceequals">object.ReferenceEquals(object, object)</a>
|
||||
</div>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="typelist extensionMethods">
|
||||
<dt>Extension Methods</dt>
|
||||
<dd>
|
||||
<div>
|
||||
<a class="xref" href="Hi.Common.InvokeUtil.html#Hi_Common_InvokeUtil_SelfInvoke__1___0_System_Action___0__">InvokeUtil.SelfInvoke<TSrc>(TSrc, Action<TSrc>)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="Hi.Common.InvokeUtil.html#Hi_Common_InvokeUtil_SelfInvoke__2___0_System_Func___0___1__">InvokeUtil.SelfInvoke<TSrc, TDst>(TSrc, Func<TSrc, TDst>)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="Hi.Common.MaskUtil.html#Hi_Common_MaskUtil_GetMaskedValue__1___0___0_System_Boolean_">MaskUtil.GetMaskedValue<T>(T, T, bool)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="Hi.Common.MaskUtil.html#Hi_Common_MaskUtil_SetMask__1___0____0_System_Boolean_">MaskUtil.SetMask<T>(ref T, T, bool)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="Hi.Coloring.ColorUtil.html#Hi_Coloring_ColorUtil_GetGloomyColor_System_Object_System_Double_System_Double_">ColorUtil.GetGloomyColor(object, double, double)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="Hi.Common.NameUtil.html#Hi_Common_NameUtil_GetSelectionName_System_Object_">NameUtil.GetSelectionName(object)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="Hi.Common.StringUtil.html#Hi_Common_StringUtil_GetPropertyStringIfToStringNotOverloaded_System_Object_System_Boolean_System_Boolean_">StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="Hi.Parallels.LockUtil.html#Hi_Parallels_LockUtil_Lock_System_Object_">LockUtil.Lock(object)</a>
|
||||
</div>
|
||||
</dd></dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h2 class="section" id="constructors">Constructors
|
||||
</h2>
|
||||
|
||||
|
||||
<a id="Hi_Disp_PinRecord__ctor_" data-uid="Hi.Disp.PinRecord.#ctor*"></a>
|
||||
|
||||
<h3 id="Hi_Disp_PinRecord__ctor_System_String_System_Double_System_Double_System_Double_System_Int32_Hi_Disp_PinFlags_" data-uid="Hi.Disp.PinRecord.#ctor(System.String,System.Double,System.Double,System.Double,System.Int32,Hi.Disp.PinFlags)">
|
||||
PinRecord(string, double, double, double, int, PinFlags)
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>One named anchor of a rendered frame: where it landed on the canvas, how deep, and whether it is visible.
|
||||
Positions are canvas pixels with a top-left origin, y down; they may lie outside the canvas.</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public PinRecord(string Name, double X, double Y, double Depth, int PickID, PinFlags Flags)</code></pre>
|
||||
</div>
|
||||
|
||||
<h4 class="section">Parameters</h4>
|
||||
<dl class="parameters">
|
||||
<dt><code>Name</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
|
||||
<dd><p>The pin name given to <a class="xref" href="Hi.Disp.PinDrawing.html">PinDrawing</a>.</p>
|
||||
</dd>
|
||||
<dt><code>X</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
|
||||
<dd><p>Anchor x in canvas pixels.</p>
|
||||
</dd>
|
||||
<dt><code>Y</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
|
||||
<dd><p>Anchor y in canvas pixels, y down.</p>
|
||||
</dd>
|
||||
<dt><code>Depth</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
|
||||
<dd><p>GL window depth clamped to [0, 1]; 0 is nearest. Comparable within one engine only.</p>
|
||||
</dd>
|
||||
<dt><code>PickID</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int32">int</a></dt>
|
||||
<dd><p>The picking id current when the pin was displayed.</p>
|
||||
</dd>
|
||||
<dt><code>Flags</code> <a class="xref" href="Hi.Disp.PinFlags.html">PinFlags</a></dt>
|
||||
<dd><p>Flag bits.</p>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h2 class="section" id="properties">Properties
|
||||
</h2>
|
||||
|
||||
|
||||
<a id="Hi_Disp_PinRecord_AlwaysOnTop_" data-uid="Hi.Disp.PinRecord.AlwaysOnTop*"></a>
|
||||
|
||||
<h3 id="Hi_Disp_PinRecord_AlwaysOnTop" data-uid="Hi.Disp.PinRecord.AlwaysOnTop">
|
||||
AlwaysOnTop
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>The pin was displayed always-on-top.</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public bool AlwaysOnTop { get; }</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h4 class="section">Property Value</h4>
|
||||
<dl class="parameters">
|
||||
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.boolean">bool</a></dt>
|
||||
<dd></dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a id="Hi_Disp_PinRecord_Depth_" data-uid="Hi.Disp.PinRecord.Depth*"></a>
|
||||
|
||||
<h3 id="Hi_Disp_PinRecord_Depth" data-uid="Hi.Disp.PinRecord.Depth">
|
||||
Depth
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>GL window depth clamped to [0, 1]; 0 is nearest. Comparable within one engine only.</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public double Depth { get; init; }</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h4 class="section">Property Value</h4>
|
||||
<dl class="parameters">
|
||||
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
|
||||
<dd></dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a id="Hi_Disp_PinRecord_Flags_" data-uid="Hi.Disp.PinRecord.Flags*"></a>
|
||||
|
||||
<h3 id="Hi_Disp_PinRecord_Flags" data-uid="Hi.Disp.PinRecord.Flags">
|
||||
Flags
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>Flag bits.</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public PinFlags Flags { get; init; }</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h4 class="section">Property Value</h4>
|
||||
<dl class="parameters">
|
||||
<dt><a class="xref" href="Hi.Disp.PinFlags.html">PinFlags</a></dt>
|
||||
<dd></dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a id="Hi_Disp_PinRecord_IsVisible_" data-uid="Hi.Disp.PinRecord.IsVisible*"></a>
|
||||
|
||||
<h3 id="Hi_Disp_PinRecord_IsVisible" data-uid="Hi.Disp.PinRecord.IsVisible">
|
||||
IsVisible
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>On the canvas and not occluded.</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public bool IsVisible { get; }</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h4 class="section">Property Value</h4>
|
||||
<dl class="parameters">
|
||||
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.boolean">bool</a></dt>
|
||||
<dd></dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a id="Hi_Disp_PinRecord_Name_" data-uid="Hi.Disp.PinRecord.Name*"></a>
|
||||
|
||||
<h3 id="Hi_Disp_PinRecord_Name" data-uid="Hi.Disp.PinRecord.Name">
|
||||
Name
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>The pin name given to <a class="xref" href="Hi.Disp.PinDrawing.html">PinDrawing</a>.</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public string Name { get; init; }</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h4 class="section">Property Value</h4>
|
||||
<dl class="parameters">
|
||||
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
|
||||
<dd></dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a id="Hi_Disp_PinRecord_Occluded_" data-uid="Hi.Disp.PinRecord.Occluded*"></a>
|
||||
|
||||
<h3 id="Hi_Disp_PinRecord_Occluded" data-uid="Hi.Disp.PinRecord.Occluded">
|
||||
Occluded
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>Scene geometry hides the anchor.</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public bool Occluded { get; }</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h4 class="section">Property Value</h4>
|
||||
<dl class="parameters">
|
||||
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.boolean">bool</a></dt>
|
||||
<dd></dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a id="Hi_Disp_PinRecord_OnCanvas_" data-uid="Hi.Disp.PinRecord.OnCanvas*"></a>
|
||||
|
||||
<h3 id="Hi_Disp_PinRecord_OnCanvas" data-uid="Hi.Disp.PinRecord.OnCanvas">
|
||||
OnCanvas
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>The anchor lies inside the canvas.</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public bool OnCanvas { get; }</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h4 class="section">Property Value</h4>
|
||||
<dl class="parameters">
|
||||
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.boolean">bool</a></dt>
|
||||
<dd></dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a id="Hi_Disp_PinRecord_PickID_" data-uid="Hi.Disp.PinRecord.PickID*"></a>
|
||||
|
||||
<h3 id="Hi_Disp_PinRecord_PickID" data-uid="Hi.Disp.PinRecord.PickID">
|
||||
PickID
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>The picking id current when the pin was displayed.</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public int PickID { get; init; }</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h4 class="section">Property Value</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_Disp_PinRecord_X_" data-uid="Hi.Disp.PinRecord.X*"></a>
|
||||
|
||||
<h3 id="Hi_Disp_PinRecord_X" data-uid="Hi.Disp.PinRecord.X">
|
||||
X
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>Anchor x in canvas pixels.</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public double X { get; init; }</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h4 class="section">Property Value</h4>
|
||||
<dl class="parameters">
|
||||
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
|
||||
<dd></dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a id="Hi_Disp_PinRecord_Y_" data-uid="Hi.Disp.PinRecord.Y*"></a>
|
||||
|
||||
<h3 id="Hi_Disp_PinRecord_Y" data-uid="Hi.Disp.PinRecord.Y">
|
||||
Y
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>Anchor y in canvas pixels, y down.</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public double Y { get; init; }</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h4 class="section">Property Value</h4>
|
||||
<dl class="parameters">
|
||||
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</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>
|
||||
@@ -140,6 +140,12 @@ A bind_t object is generated by rendering in the every beginning of each renderi
|
||||
<dl class="jumplist">
|
||||
<dt><a class="xref" href="Hi.Disp.Drawing.html">Drawing</a></dt>
|
||||
<dd><p>The most efficient elemental 3D rendering unit.</p>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="jumplist">
|
||||
<dt><a class="xref" href="Hi.Disp.FramePins.html">FramePins</a></dt>
|
||||
<dd><p>The pin table of one rendered frame, handed to <a class="xref" href="Hi.Disp.DispEngine.html#Hi_Disp_DispEngine_FrameReady">FrameReady</a> together with the pixels.
|
||||
Records are sorted by name and every displayed pin is listed, visible or not; filter with <a class="xref" href="Hi.Disp.FramePins.html#Hi_Disp_FramePins_Visible">Visible</a>.</p>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="jumplist">
|
||||
@@ -166,6 +172,14 @@ A bind_t object is generated by rendering in the every beginning of each renderi
|
||||
<dt><a class="xref" href="Hi.Disp.Pickable.html">Pickable</a></dt>
|
||||
<dd><p>Picking event handler for rendering.
|
||||
Note that it has to be disposed manually or the object occurs memory leak.</p>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="jumplist">
|
||||
<dt><a class="xref" href="Hi.Disp.PinDrawing.html">PinDrawing</a></dt>
|
||||
<dd><p>A named, scale-less anchor. Displaying it draws nothing; the engine reports where the anchor
|
||||
landed in each frame, its depth and whether scene geometry hides it, through
|
||||
<a class="xref" href="Hi.Disp.DispEngine.html#Hi_Disp_DispEngine_FrameReady">FrameReady</a> as a <a class="xref" href="Hi.Disp.PinRecord.html">PinRecord</a> of the same name.
|
||||
Use it to place external UI (an HTML element, say) over a 3D point of the canvas.</p>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="jumplist">
|
||||
@@ -213,6 +227,15 @@ Multi-line text is supported: ‘\n’ starts a new line.</p>
|
||||
<dl class="jumplist">
|
||||
<dt><a class="xref" href="Hi.Disp.WrappedDisplayee.html">WrappedDisplayee</a></dt>
|
||||
<dd><p>A wrapper class for IDisplayee that allows customizing display and bounding box behavior.</p>
|
||||
</dd>
|
||||
</dl>
|
||||
<h3 id="structs">
|
||||
Structs
|
||||
</h3>
|
||||
<dl class="jumplist">
|
||||
<dt><a class="xref" href="Hi.Disp.PinRecord.html">PinRecord</a></dt>
|
||||
<dd><p>One named anchor of a rendered frame: where it landed on the canvas, how deep, and whether it is visible.
|
||||
Positions are canvas pixels with a top-left origin, y down; they may lie outside the canvas.</p>
|
||||
</dd>
|
||||
</dl>
|
||||
<h3 id="interfaces">
|
||||
@@ -244,6 +267,11 @@ Enums
|
||||
<dl class="jumplist">
|
||||
<dt><a class="xref" href="Hi.Disp.MvpBoxRelation.html">MvpBoxRelation</a></dt>
|
||||
<dd><p>Relation between mvpBox and an AABB</p>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="jumplist">
|
||||
<dt><a class="xref" href="Hi.Disp.PinFlags.html">PinFlags</a></dt>
|
||||
<dd><p>Flag bits of a <a class="xref" href="Hi.Disp.PinRecord.html">PinRecord</a>.</p>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="jumplist">
|
||||
@@ -260,8 +288,8 @@ Delegates
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="jumplist">
|
||||
<dt><a class="xref" href="Hi.Disp.DispEngine.ImageRequestedDelegate.html">DispEngine.ImageRequestedDelegate</a></dt>
|
||||
<dd><p>For <a class="xref" href="Hi.Disp.DispEngine.html#Hi_Disp_DispEngine_ImageRequestAfterBufferSwapped">ImageRequestAfterBufferSwapped</a>.</p>
|
||||
<dt><a class="xref" href="Hi.Disp.DispEngine.FrameReadyDelegate.html">DispEngine.FrameReadyDelegate</a></dt>
|
||||
<dd><p>For <a class="xref" href="Hi.Disp.DispEngine.html#Hi_Disp_DispEngine_FrameReady">FrameReady</a>.</p>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="title" content="Interface ICompoundMotionDef | HiAPI-C# 2025 ">
|
||||
|
||||
<meta name="description" content="Compound motion section definition for commands that produce multiple sub-operations (G28, G53.1, G81, G82, etc.). Contains a array resolved by . Item types (discriminated by key presence): — rapid/feed linear motion ( + ) — pause ( in seconds) — spindle direction change () — oriented spindle stop (OSS) ()">
|
||||
<meta name="description" content="Compound motion section definition for commands that produce multiple sub-operations (G28, G53.1, G81, G82, etc.). Contains a array resolved by . Item types (discriminated by key presence): — rapid/feed linear motion ( + ; an item's MachineCoordinateState may carry A/B/C — G28 / tool-change stages write them, and on a canned-cycle block that spoke a rotary word () the first motion item carries the block's root ABC — in which case the semantic emits the 6-axis contour act) — pause ( in seconds) — spindle direction change () — oriented spindle stop (OSS) ()">
|
||||
<link rel="icon" href="../img/HiAPI.favicon.ico">
|
||||
<link rel="stylesheet" href="../public/docfx.min.css">
|
||||
<link rel="stylesheet" href="../public/main.css">
|
||||
@@ -103,7 +103,11 @@ Contains a <a class="xref" href="Hi.NcParsers.Keywords.CompoundMotion.html#Hi_Nc
|
||||
<span class="xref">Hi.NcParsers.Semantics.CompoundMotionSemanticUtil</span>.</p>
|
||||
<p>Item types (discriminated by key presence):</p>
|
||||
<ul><li><a class="xref" href="Hi.Motion.html">Hi.Motion</a> — rapid/feed linear motion
|
||||
(<a class="xref" href="Hi.NcParsers.Keywords.IMotionEventDef.html">IMotionEventDef</a> + <a class="xref" href="Hi.NcParsers.Keywords.IMachineCoordinateStateDef.html">IMachineCoordinateStateDef</a>)</li><li><a class="xref" href="Hi.NcParsers.Keywords.Dwell.html">Dwell</a> — pause (<a class="xref" href="Hi.NcParsers.Keywords.IDwellDef.html#Hi_NcParsers_Keywords_IDwellDef_Time">Time</a> in seconds)</li><li><a class="xref" href="Hi.NcParsers.Keywords.SpindleControl.html">SpindleControl</a> — spindle direction change
|
||||
(<a class="xref" href="Hi.NcParsers.Keywords.IMotionEventDef.html">IMotionEventDef</a> + <a class="xref" href="Hi.NcParsers.Keywords.IMachineCoordinateStateDef.html">IMachineCoordinateStateDef</a>;
|
||||
an item's <code>MachineCoordinateState</code> may carry A/B/C — G28 / tool-change
|
||||
stages write them, and on a canned-cycle block that spoke a rotary word
|
||||
(<a class="xref" href="Hi.NcParsers.Keywords.RotaryWords.html">RotaryWords</a>) the first motion item carries the block's
|
||||
root ABC — in which case the semantic emits the 6-axis contour act)</li><li><a class="xref" href="Hi.NcParsers.Keywords.Dwell.html">Dwell</a> — pause (<a class="xref" href="Hi.NcParsers.Keywords.IDwellDef.html#Hi_NcParsers_Keywords_IDwellDef_Time">Time</a> in seconds)</li><li><a class="xref" href="Hi.NcParsers.Keywords.SpindleControl.html">SpindleControl</a> — spindle direction change
|
||||
(<a class="xref" href="Hi.NcParsers.Keywords.ISpindleControlDef.html#Hi_NcParsers_Keywords_ISpindleControlDef_Direction">Direction</a>)</li><li><a class="xref" href="Hi.NcParsers.Keywords.SpindleOrientation.html">SpindleOrientation</a> — oriented spindle stop (OSS)
|
||||
(<a class="xref" href="Hi.NcParsers.Keywords.ISpindleOrientationDef.html#Hi_NcParsers_Keywords_ISpindleOrientationDef_Angle_deg">Angle_deg</a>)</li></ul>
|
||||
</div>
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="title" content="Interface IMachineCoordinateStateDef | HiAPI-C# 2025 ">
|
||||
|
||||
<meta name="description" content="Modal machine-coordinate state — absolute six-axis machine position after the block has executed. Written on every block by motion-related LogicSyntaxs (, , , , , ); seeded on the init block by ; carried across non-motion blocks — and per-key completed on partially-written blocks (an XYZ-only motion block receives the carried modal rotary values) — by . Only configured axes appear as keys (X/Y/Z/A/B/C). Non-existent axes (e.g., A/B/C on a 3-axis machine) are omitted rather than written as NaN sentinels. After the PostLogic carry the section is a MODAL record: key presence means "state known", never "this block commanded the axis". Consumers needing "commanded" must read the block's Parsing words or compare values against the previous block (see LinearMotionUtil.HasRotaryMotion). The only presence-as-commanded carve-out is CompoundMotion.Items[*] item-level sections, which the carry never touches.">
|
||||
<meta name="description" content="Modal machine-coordinate state — absolute six-axis machine position after the block has executed. Written on every block by motion-related LogicSyntaxs (, , , , , ); seeded on the init block by ; carried across non-motion blocks — and per-key completed on partially-written blocks (an XYZ-only motion block receives the carried modal rotary values) — by . Only configured axes appear as keys (X/Y/Z/A/B/C). Non-existent axes (e.g., A/B/C on a 3-axis machine) are omitted rather than written as NaN sentinels. After the PostLogic carry the section is a MODAL record: key presence means "state known", never "this block commanded the axis". Consumers needing "commanded" must read the block's Parsing words, the one-shot record (the rotary words this block itself spoke, written by ), or compare values against the previous block (see LinearMotionUtil.HasRotaryMotion). The only presence-as-commanded carve-out is CompoundMotion.Items[*] item-level sections, which the carry never touches.">
|
||||
<link rel="icon" href="../img/HiAPI.favicon.ico">
|
||||
<link rel="stylesheet" href="../public/docfx.min.css">
|
||||
<link rel="stylesheet" href="../public/main.css">
|
||||
@@ -117,7 +117,9 @@ as NaN sentinels.
|
||||
<p>
|
||||
After the PostLogic carry the section is a MODAL record: key presence
|
||||
means "state known", never "this block commanded the axis". Consumers
|
||||
needing "commanded" must read the block's Parsing words or compare
|
||||
needing "commanded" must read the block's Parsing words, the one-shot
|
||||
<a class="xref" href="Hi.NcParsers.Keywords.RotaryWords.html">RotaryWords</a> record (the rotary words this block itself
|
||||
spoke, written by <a class="xref" href="Hi.NcParsers.LogicSyntaxs.McAbcSyntax.html">McAbcSyntax</a>), or compare
|
||||
values against the previous block (see
|
||||
<code>LinearMotionUtil.HasRotaryMotion</code>). The only presence-as-commanded
|
||||
carve-out is <code>CompoundMotion.Items[*]</code> item-level sections, which
|
||||
|
||||
@@ -0,0 +1,205 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Class RotaryWords | HiAPI-C# 2025 </title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="title" content="Class RotaryWords | HiAPI-C# 2025 ">
|
||||
|
||||
<meta name="description" content="One-shot block-root record of the rotary axis words the block itself commanded — keyed by axis name (A/B/C), valued with the word as programmed: degrees for a plain word, the signed delta for a per-word incremental word (Siemens IC(), klartext IC+), the indexing position number for a coded-position word (CAC()/CIC()/…). The resolved absolute angle lives in ; this section only says which rotary axes this block spoke. Written by when it consumes A/B/C from Parsing into MachineCoordinateState — and only for axes the declares rotary. After the PostLogic carry MachineCoordinateState is a modal record (key presence never means "commanded"), so consumers that must know whether this block carried a rotary word read this section instead: (a rotary-only block under an active canned cycle is a modal repeat — Fanuc's any-axis-word rule, HardNc parity: the table indexes, then the cycle drills again) and (the cycle's pre-positioning item carries the block's MC A/B/C so the physical rotary state matches the root record instead of lagging one block behind). Not listed in any key set — it never carries to later blocks.">
|
||||
<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 "{query}"">
|
||||
<meta name="loc:searchNoResults" content="No results for "{query}"">
|
||||
<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.RotaryWords">
|
||||
|
||||
|
||||
|
||||
<h1 id="Hi_NcParsers_Keywords_RotaryWords" data-uid="Hi.NcParsers.Keywords.RotaryWords" class="text-break">
|
||||
Class RotaryWords
|
||||
</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.Keywords.html">Keywords</a></dd></dl>
|
||||
<dl><dt>Assembly</dt><dd>HiMech.dll</dd></dl>
|
||||
</div>
|
||||
|
||||
<div class="markdown summary"><p>One-shot block-root record of the rotary axis words the block itself
|
||||
commanded — keyed by axis name (<code>A</code>/<code>B</code>/<code>C</code>), valued
|
||||
with the word as programmed: degrees for a plain word, the signed
|
||||
delta for a per-word incremental word (Siemens <code>IC()</code>, klartext
|
||||
<code>IC+</code>), the indexing position number for a coded-position word
|
||||
(<code>CAC()</code>/<code>CIC()</code>/…). The resolved absolute angle lives in
|
||||
<a class="xref" href="Hi.NcParsers.Keywords.IMachineCoordinateStateDef.html#Hi_NcParsers_Keywords_IMachineCoordinateStateDef_MachineCoordinateState">MachineCoordinateState</a>; this
|
||||
section only says <i>which</i> rotary axes this block spoke.</p>
|
||||
<p>
|
||||
Written by <a class="xref" href="Hi.NcParsers.LogicSyntaxs.McAbcSyntax.html">McAbcSyntax</a> when it consumes
|
||||
A/B/C from <code>Parsing</code> into <code>MachineCoordinateState</code> — and
|
||||
only for axes the <a class="xref" href="Hi.NcParsers.Dependencys.IMachineAxisConfig.html">IMachineAxisConfig</a> declares
|
||||
rotary. After the PostLogic carry <code>MachineCoordinateState</code> is a
|
||||
modal record (key presence never means "commanded"), so consumers that
|
||||
must know whether <b>this</b> block carried a rotary word read this
|
||||
section instead:
|
||||
<a class="xref" href="Hi.NcParsers.LogicSyntaxs.CannedCycleResolveSyntax.html">CannedCycleResolveSyntax</a> (a rotary-only
|
||||
block under an active canned cycle is a modal repeat — Fanuc's
|
||||
any-axis-word rule, HardNc parity: the table indexes, then the cycle
|
||||
drills again) and
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.text.json.nodes.jsonobject">WriteCompoundMotion(JsonObject, string, JsonArray, Vec3d)</a>
|
||||
(the cycle's pre-positioning item carries the block's MC A/B/C so the
|
||||
physical rotary state matches the root record instead of lagging one
|
||||
block behind). Not listed in any
|
||||
<a class="xref" href="Hi.NcParsers.PostLogicSyntaxs.ModalCarrySyntax.html">ModalCarrySyntax</a> key set — it never
|
||||
carries to later blocks.
|
||||
</p>
|
||||
</div>
|
||||
<div class="markdown conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public static class RotaryWords</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">RotaryWords</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 id="Hi_NcParsers_Keywords_RotaryWords_examples">Examples</h2>
|
||||
<pre><code class="lang-csharp">"RotaryWords": { "C": 40 }</code></pre>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</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>
|
||||
@@ -518,6 +518,37 @@ never carries to later blocks.
|
||||
<dl class="jumplist">
|
||||
<dt><a class="xref" href="Hi.NcParsers.Keywords.RadiusCompensation.html">RadiusCompensation</a></dt>
|
||||
<dd><p>Section key holder + concrete implementation for <a class="xref" href="Hi.NcParsers.Keywords.IRadiusCompensationDef.html">IRadiusCompensationDef</a>.</p>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="jumplist">
|
||||
<dt><a class="xref" href="Hi.NcParsers.Keywords.RotaryWords.html">RotaryWords</a></dt>
|
||||
<dd><p>One-shot block-root record of the rotary axis words the block itself
|
||||
commanded — keyed by axis name (<code>A</code>/<code>B</code>/<code>C</code>), valued
|
||||
with the word as programmed: degrees for a plain word, the signed
|
||||
delta for a per-word incremental word (Siemens <code>IC()</code>, klartext
|
||||
<code>IC+</code>), the indexing position number for a coded-position word
|
||||
(<code>CAC()</code>/<code>CIC()</code>/…). The resolved absolute angle lives in
|
||||
<a class="xref" href="Hi.NcParsers.Keywords.IMachineCoordinateStateDef.html#Hi_NcParsers_Keywords_IMachineCoordinateStateDef_MachineCoordinateState">MachineCoordinateState</a>; this
|
||||
section only says <i>which</i> rotary axes this block spoke.</p>
|
||||
<p>
|
||||
Written by <a class="xref" href="Hi.NcParsers.LogicSyntaxs.McAbcSyntax.html">McAbcSyntax</a> when it consumes
|
||||
A/B/C from <code>Parsing</code> into <code>MachineCoordinateState</code> — and
|
||||
only for axes the <a class="xref" href="Hi.NcParsers.Dependencys.IMachineAxisConfig.html">IMachineAxisConfig</a> declares
|
||||
rotary. After the PostLogic carry <code>MachineCoordinateState</code> is a
|
||||
modal record (key presence never means "commanded"), so consumers that
|
||||
must know whether <b>this</b> block carried a rotary word read this
|
||||
section instead:
|
||||
<a class="xref" href="Hi.NcParsers.LogicSyntaxs.CannedCycleResolveSyntax.html">CannedCycleResolveSyntax</a> (a rotary-only
|
||||
block under an active canned cycle is a modal repeat — Fanuc's
|
||||
any-axis-word rule, HardNc parity: the table indexes, then the cycle
|
||||
drills again) and
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.text.json.nodes.jsonobject">WriteCompoundMotion(JsonObject, string, JsonArray, Vec3d)</a>
|
||||
(the cycle's pre-positioning item carries the block's MC A/B/C so the
|
||||
physical rotary state matches the root record instead of lagging one
|
||||
block behind). Not listed in any
|
||||
<a class="xref" href="Hi.NcParsers.PostLogicSyntaxs.ModalCarrySyntax.html">ModalCarrySyntax</a> key set — it never
|
||||
carries to later blocks.
|
||||
</p>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="jumplist">
|
||||
@@ -650,7 +681,11 @@ Contains a <a class="xref" href="Hi.NcParsers.Keywords.CompoundMotion.html#Hi_Nc
|
||||
<span class="xref">Hi.NcParsers.Semantics.CompoundMotionSemanticUtil</span>.</p>
|
||||
<p>Item types (discriminated by key presence):</p>
|
||||
<ul><li><a class="xref" href="Hi.Motion.html">Hi.Motion</a> — rapid/feed linear motion
|
||||
(<a class="xref" href="Hi.NcParsers.Keywords.IMotionEventDef.html">IMotionEventDef</a> + <a class="xref" href="Hi.NcParsers.Keywords.IMachineCoordinateStateDef.html">IMachineCoordinateStateDef</a>)</li><li><a class="xref" href="Hi.NcParsers.Keywords.Dwell.html">Dwell</a> — pause (<a class="xref" href="Hi.NcParsers.Keywords.IDwellDef.html#Hi_NcParsers_Keywords_IDwellDef_Time">Time</a> in seconds)</li><li><a class="xref" href="Hi.NcParsers.Keywords.SpindleControl.html">SpindleControl</a> — spindle direction change
|
||||
(<a class="xref" href="Hi.NcParsers.Keywords.IMotionEventDef.html">IMotionEventDef</a> + <a class="xref" href="Hi.NcParsers.Keywords.IMachineCoordinateStateDef.html">IMachineCoordinateStateDef</a>;
|
||||
an item's <code>MachineCoordinateState</code> may carry A/B/C — G28 / tool-change
|
||||
stages write them, and on a canned-cycle block that spoke a rotary word
|
||||
(<a class="xref" href="Hi.NcParsers.Keywords.RotaryWords.html">RotaryWords</a>) the first motion item carries the block's
|
||||
root ABC — in which case the semantic emits the 6-axis contour act)</li><li><a class="xref" href="Hi.NcParsers.Keywords.Dwell.html">Dwell</a> — pause (<a class="xref" href="Hi.NcParsers.Keywords.IDwellDef.html#Hi_NcParsers_Keywords_IDwellDef_Time">Time</a> in seconds)</li><li><a class="xref" href="Hi.NcParsers.Keywords.SpindleControl.html">SpindleControl</a> — spindle direction change
|
||||
(<a class="xref" href="Hi.NcParsers.Keywords.ISpindleControlDef.html#Hi_NcParsers_Keywords_ISpindleControlDef_Direction">Direction</a>)</li><li><a class="xref" href="Hi.NcParsers.Keywords.SpindleOrientation.html">SpindleOrientation</a> — oriented spindle stop (OSS)
|
||||
(<a class="xref" href="Hi.NcParsers.Keywords.ISpindleOrientationDef.html#Hi_NcParsers_Keywords_ISpindleOrientationDef_Angle_deg">Angle_deg</a>)</li></ul>
|
||||
</dd>
|
||||
@@ -763,7 +798,9 @@ as NaN sentinels.
|
||||
<p>
|
||||
After the PostLogic carry the section is a MODAL record: key presence
|
||||
means "state known", never "this block commanded the axis". Consumers
|
||||
needing "commanded" must read the block's Parsing words or compare
|
||||
needing "commanded" must read the block's Parsing words, the one-shot
|
||||
<a class="xref" href="Hi.NcParsers.Keywords.RotaryWords.html">RotaryWords</a> record (the rotary words this block itself
|
||||
spoke, written by <a class="xref" href="Hi.NcParsers.LogicSyntaxs.McAbcSyntax.html">McAbcSyntax</a>), or compare
|
||||
values against the previous block (see
|
||||
<code>LinearMotionUtil.HasRotaryMotion</code>). The only presence-as-commanded
|
||||
carve-out is <code>CompoundMotion.Items[*]</code> item-level sections, which
|
||||
|
||||
+106
-2
@@ -6,7 +6,7 @@
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="title" content="Class CannedCycleResolveSyntax | HiAPI-C# 2025 ">
|
||||
|
||||
<meta name="description" content="Resolves the canned-cycle Group-09 state for the current block and writes the result to the section. Active cycle (direct G81..G89 or modal repeat): merges Parsing overrides with previous-cycle stored params, applies G91 incremental-to-absolute conversion and missing-axis fallback, writes with , , and . The resolved cycle sub-section is left in Parsing under the cycle code for downstream cycle syntaxes (, etc.) to read.Explicit cancel (G80 flag present on a non-cycle block): consumes the G80 flag and writes = { Term: "G80" }, acting as a hard sentinel for modal lookback.No Group-09 activity: leaves the block untouched. Must be placed after and before the individual cycle syntaxes in the chain.">
|
||||
<meta name="description" content="Resolves the canned-cycle Group-09 state for the current block and writes the result to the section. Active cycle (direct G81..G89 or modal repeat): merges Parsing overrides with previous-cycle stored params, applies G91 incremental-to-absolute conversion and missing-axis fallback, writes with , , and . The resolved cycle sub-section is left in Parsing under the cycle code for downstream cycle syntaxes (, etc.) to read.Explicit cancel (G80 flag present on a non-cycle block): consumes the G80 flag and writes = { Term: "G80" }, acting as a hard sentinel for modal lookback.No Group-09 activity: leaves the block untouched. A rotary-only block (C40.) reaches this syntax without a Parsing node — consumed the word into MachineCoordinateState and dropped the emptied node — but its one-shot record marks it as a block that spoke an axis word, so under an active cycle it is a modal repeat like any X/Y block (Fanuc's any-axis-word rule; HardNc indexes the table and drills again). The cycle's pre-positioning item then carries the block's ABC (). Must be placed after and before the individual cycle syntaxes in the chain.">
|
||||
<link rel="icon" href="../img/HiAPI.favicon.ico">
|
||||
<link rel="stylesheet" href="../public/docfx.min.css">
|
||||
<link rel="stylesheet" href="../public/main.css">
|
||||
@@ -111,6 +111,16 @@ consumes the G80 flag and writes
|
||||
<a class="xref" href="Hi.NcParsers.Keywords.CannedCycle.html">CannedCycle</a> = <code>{ Term: "G80" }</code>, acting as a hard
|
||||
sentinel for <span class="xref">Hi.NcParsers.LogicSyntaxs.CannedCycleSyntaxUtil</span> modal lookback.</li><li><b>No Group-09 activity</b>: leaves the block untouched.</li></ul>
|
||||
<p>
|
||||
A rotary-only block (<code>C40.</code>) reaches this syntax without a
|
||||
<code>Parsing</code> node — <a class="xref" href="Hi.NcParsers.LogicSyntaxs.McAbcSyntax.html">McAbcSyntax</a> consumed the word into
|
||||
<code>MachineCoordinateState</code> and dropped the emptied node — but its
|
||||
one-shot <a class="xref" href="Hi.NcParsers.Keywords.RotaryWords.html">RotaryWords</a> record marks it as a block that
|
||||
spoke an axis word, so under an active cycle it is a modal repeat like
|
||||
any X/Y block (Fanuc's any-axis-word rule; HardNc indexes the table and
|
||||
drills again). The cycle's pre-positioning item then carries the
|
||||
block's ABC (<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.text.json.nodes.jsonobject">WriteCompoundMotion(JsonObject, string, JsonArray, Vec3d)</a>).
|
||||
</p>
|
||||
<p>
|
||||
Must be placed after <a class="xref" href="Hi.NcParsers.LogicSyntaxs.PositioningSyntax.html">PositioningSyntax</a> and before
|
||||
the individual cycle syntaxes in the chain.
|
||||
</p>
|
||||
@@ -218,7 +228,7 @@ neither the current block nor a previous block declares G98/G99:
|
||||
}</code></pre>
|
||||
<p>Modal repeat: the current block carries only an X override and no
|
||||
cycle code, but <code>#Previous:</code> has an active G81 with stored
|
||||
params. <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.text.json.nodes.jsonobject">MergeModalCycleSection(JsonObject, JsonObject, ISentenceCarrier, NcDiagnosticProgress)</a>
|
||||
params. <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.text.json.nodes.jsonobject">MergeModalCycleSection(JsonObject, JsonObject, ISentenceCarrier, NcDiagnosticProgress, out HashSet<string>)</a>
|
||||
merges X=60 (override) with Y/Z/R from stored params, removes the
|
||||
consumed X from <code>Parsing</code> root, and writes the merged section
|
||||
back to <code>Parsing.G81</code>. <code>ReturnMode</code> inherits “G98” from
|
||||
@@ -278,6 +288,100 @@ default applies after reset:
|
||||
"Parsing": { "X": 60 },
|
||||
"CannedCycle": { "Term": "G80" }
|
||||
}</code></pre>
|
||||
<p>Rotary-only modal repeat: the block carries no <code>Parsing</code> at all
|
||||
(<a class="xref" href="Hi.NcParsers.LogicSyntaxs.McAbcSyntax.html">McAbcSyntax</a> consumed <code>C40.</code> into
|
||||
<code>MachineCoordinateState</code> and dropped the emptied node) but its
|
||||
one-shot <a class="xref" href="Hi.NcParsers.Keywords.RotaryWords.html">RotaryWords</a> record says it spoke an axis word,
|
||||
so the active G81 from <code>#Previous:</code> repeats with every stored
|
||||
parameter (no override to merge). The <code>Parsing</code> node is
|
||||
re-created to host the resolved cycle sub-section for the downstream
|
||||
cycle syntax:
|
||||
#Previous:</p>
|
||||
<pre><code class="lang-csharp">{
|
||||
"CannedCycle": {
|
||||
"Term": "G81",
|
||||
"ReturnMode": "G98",
|
||||
"Params": { "X": 50, "Y": 30, "Z": -10, "R": 2 }
|
||||
},
|
||||
"ProgramXyz": { "X": 50, "Y": 30, "Z": 0 }
|
||||
}</code></pre>
|
||||
<p>#BeforeBuild:</p>
|
||||
<pre><code class="lang-csharp">{
|
||||
"MachineCoordinateState": { "C": 40 },
|
||||
"RotaryWords": { "C": 40 }
|
||||
}</code></pre>
|
||||
<p>#AfterBuild:</p>
|
||||
<pre><code class="lang-csharp">{
|
||||
"MachineCoordinateState": { "C": 40 },
|
||||
"RotaryWords": { "C": 40 },
|
||||
"Parsing": { "G81": { "X": 50, "Y": 30, "Z": -10, "R": 2 } },
|
||||
"CannedCycle": {
|
||||
"Term": "G81",
|
||||
"ReturnMode": "G98",
|
||||
"Params": { "X": 50, "Y": 30, "Z": -10, "R": 2 }
|
||||
}
|
||||
}</code></pre>
|
||||
<p>Modal repeat under G91 (<code>X10.</code> pitch): only the block's own X
|
||||
word is an increment (50 + 10 = 60, from the previous block's
|
||||
machine position read back through this block's identity chain);
|
||||
the stored Y / Z / R are the previous cycle's <b>absolute</b>
|
||||
results and are reused verbatim instead of being added onto the
|
||||
anchors again (which would have moved Y to 60 and lifted Z to
|
||||
R + Z):
|
||||
#Previous:</p>
|
||||
<pre><code class="lang-csharp">{
|
||||
"CannedCycle": {
|
||||
"Term": "G81",
|
||||
"ReturnMode": "G98",
|
||||
"Params": { "X": 50, "Y": 30, "Z": -10, "R": 2 }
|
||||
},
|
||||
"ProgramXyz": { "X": 50, "Y": 30, "Z": 0 },
|
||||
"MachineCoordinateState": { "X": 50, "Y": 30, "Z": 0 }
|
||||
}</code></pre>
|
||||
<p>#BeforeBuild:</p>
|
||||
<pre><code class="lang-csharp">{
|
||||
"Positioning": { "Term": "G91", "Mode": "Incremental" },
|
||||
"Parsing": { "X": 10 }
|
||||
}</code></pre>
|
||||
<p>#AfterBuild:</p>
|
||||
<pre><code class="lang-csharp">{
|
||||
"Positioning": { "Term": "G91", "Mode": "Incremental" },
|
||||
"Parsing": { "G81": { "X": 60, "Y": 30, "Z": -10, "R": 2 } },
|
||||
"CannedCycle": {
|
||||
"Term": "G81",
|
||||
"ReturnMode": "G98",
|
||||
"Params": { "X": 60, "Y": 30, "Z": -10, "R": 2 }
|
||||
}
|
||||
}</code></pre>
|
||||
<p>A block whose Group-09 state a brand syntax already authored (the
|
||||
shape <code>SiemensModalCycleSyntax</code> writes for a bare <code>MCALL</code>
|
||||
cancel or an <code>MCALL CYCLE8x(…)</code> arm) is left alone even though
|
||||
<code>#Previous:</code> still carries an active G81 and the block spoke a
|
||||
rotary word: the authoring syntax owns the block, nothing repeats,
|
||||
and the sentinel survives for the blocks after it. (The Siemens
|
||||
parser only accepts <code>MCALL</code> alone on its block, so today this is
|
||||
the contract's guard rather than a reachable program line.)
|
||||
#Previous:</p>
|
||||
<pre><code class="lang-csharp">{
|
||||
"CannedCycle": {
|
||||
"Term": "G81",
|
||||
"ReturnMode": "G98",
|
||||
"Params": { "X": 50, "Y": 30, "Z": -10, "R": 2 }
|
||||
},
|
||||
"ProgramXyz": { "X": 50, "Y": 30, "Z": 0 }
|
||||
}</code></pre>
|
||||
<p>#BeforeBuild:</p>
|
||||
<pre><code class="lang-csharp">{
|
||||
"MachineCoordinateState": { "C": 40 },
|
||||
"RotaryWords": { "C": 40 },
|
||||
"CannedCycle": { "Term": "G80" }
|
||||
}</code></pre>
|
||||
<p>#AfterBuild:</p>
|
||||
<pre><code class="lang-csharp">{
|
||||
"MachineCoordinateState": { "C": 40 },
|
||||
"RotaryWords": { "C": 40 },
|
||||
"CannedCycle": { "Term": "G80" }
|
||||
}</code></pre>
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -264,6 +264,44 @@ to G81. Five items total:
|
||||
},
|
||||
"ProgramXyz": { "X": 50, "Y": 30, "Z": 0 }
|
||||
}</code></pre>
|
||||
G81 on a block that spoke a rotary word — the one-shot
|
||||
<a class="xref" href="Hi.NcParsers.Keywords.RotaryWords.html">RotaryWords</a> record from <a class="xref" href="Hi.NcParsers.LogicSyntaxs.McAbcSyntax.html">McAbcSyntax</a>, whose
|
||||
root <code>MachineCoordinateState</code> already holds the resolved C and
|
||||
the lookback-filled A. <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.text.json.nodes.jsonobject">WriteCompoundMotion(JsonObject, string, JsonArray, Vec3d)</a>
|
||||
copies both onto the first (pre-positioning) item so the rapid to the
|
||||
initial level indexes the table at the same time; the remaining items
|
||||
stay XYZ-only exactly as in the first case. Root MC and the record
|
||||
are left untouched:
|
||||
#BeforeBuild:
|
||||
<pre><code class="lang-csharp">{
|
||||
"Parsing": { "G81": { "X": 50, "Y": 30, "Z": -10, "R": 2, "F": 600 } },
|
||||
"CannedCycle": {
|
||||
"Term": "G81", "ReturnMode": "G98",
|
||||
"Params": { "X": 50, "Y": 30, "Z": -10, "R": 2 }
|
||||
},
|
||||
"MachineCoordinateState": { "A": 0, "C": 40 },
|
||||
"RotaryWords": { "C": 40 }
|
||||
}</code></pre>
|
||||
#AfterBuild:
|
||||
<pre><code class="lang-csharp">{
|
||||
"CannedCycle": {
|
||||
"Term": "G81", "ReturnMode": "G98",
|
||||
"Params": { "X": 50, "Y": 30, "Z": -10, "R": 2 }
|
||||
},
|
||||
"MachineCoordinateState": { "A": 0, "C": 40 },
|
||||
"RotaryWords": { "C": 40 },
|
||||
"Feedrate": { "FeedrateValue": 600, "Term": "G94", "Unit": "mm/min" },
|
||||
"CompoundMotion": {
|
||||
"Term": "G81",
|
||||
"Items": [
|
||||
{ "ProgramXyz": { "X": 50, "Y": 30, "Z": 0 }, "MotionEvent": { "Form": "McLinear", "IsRapid": true }, "MachineCoordinateState": { "A": 0, "C": 40 } },
|
||||
{ "ProgramXyz": { "X": 50, "Y": 30, "Z": 2 }, "MotionEvent": { "Form": "McLinear", "IsRapid": true } },
|
||||
{ "ProgramXyz": { "X": 50, "Y": 30, "Z": -10 }, "MotionEvent": { "Form": "McLinear", "Feedrate_mmds": 10 } },
|
||||
{ "ProgramXyz": { "X": 50, "Y": 30, "Z": 0 }, "MotionEvent": { "Form": "McLinear", "IsRapid": true } }
|
||||
]
|
||||
},
|
||||
"ProgramXyz": { "X": 50, "Y": 30, "Z": 0 }
|
||||
}</code></pre>
|
||||
|
||||
|
||||
<h2 id="Hi_NcParsers_LogicSyntaxs_DrillingCycleSyntax_remarks">Remarks</h2>
|
||||
|
||||
+1
-1
@@ -149,7 +149,7 @@ Canned cycle paths (Parsing.G81, G82, G83, …) are intentionally
|
||||
excluded — their Z/R incremental semantics differ from normal axes
|
||||
(R is relative to init level, Z is relative to R-point).
|
||||
Resolution is handled by
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.text.json.nodes.jsonobject">ResolveCycleCoordinates(JsonObject, Vec3d, double?, double?, double, double)</a>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.text.json.nodes.jsonobject">ResolveCycleCoordinates(JsonObject, Vec3d, double?, double?, double, double, HashSet<string>)</a>
|
||||
inside each cycle syntax class, which runs before this syntax.
|
||||
</p>
|
||||
<p>
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="title" content="Class McAbcCyclicPathSyntax | HiAPI-C# 2025 ">
|
||||
|
||||
<meta name="description" content="Resolve modular rotary axes to the shortest cyclic path relative to the previous node. Uses to determine which axes within need cyclic resolution. Falls back to hardcoded A/B/C if no is available. Must be placed after in . Two stages, mirroring : Root MachineCoordinateState — anchored at the previous block's modal rotary state..[*] — sequential walk through items, anchoring item 0 at the previous block's modal state and item i &gt; 0 at item i-1's post-cycle value (per-axis chain). Items without a rotary MachineCoordinateState are skipped. The items pass enables rotary motion (e.g. G28 ABC intermediate / home stages) to surface as motion segments rather than a single root-MC stamp. Per-word directional override: a block-root entry (stamped by ) valued (Siemens ACP()) or (ACN()) swaps that axis's window for this block only: [anchor, anchor+360°) / (anchor-360°, anchor] instead of the default ±180° — the approach direction is forced even when it is the longer way around. A target congruent with the anchor (within an ULP-scale epsilon) keeps the anchor value verbatim — no move, never a spurious full turn, and no deg→rad→deg drift. (DC()) is the default window and needs no special path here. The override is read from the current block only (it is one-shot, never carried — deliberately unlike the modal RotaryWrap gate's one-step previous fallback) and applies to the root MC stage only, not to items (G28/G74/G75 expansions capture their words in sub-objects the stamping syntax never sees, so an override can only ever describe a root word). Directional/shortest entries keyed by an axis outside the modular set are reported as Coord-McAbc--003 — the promise cannot be honored there and silence would mis-read the program's intent; an entry with no anchor to resolve against (first rotary value in the stream) is reported as Coord-McAbc--004 and adopted unwrapped, matching the default path. Per-word incremental override: an entry (Siemens IC(), klartext IC+270) is a signed traverse by definition — already wrote anchor + delta — so this pass keeps that value verbatim for the axis instead of folding it into the ±180° window (a +270° chain dimension must not become a -90° swing). Incremental entries on non-modular axes need no warning: the literal value is what the axis would do anyway.">
|
||||
<meta name="description" content="Resolve modular rotary axes to the shortest cyclic path relative to the previous node. Uses to determine which axes within need cyclic resolution. Falls back to hardcoded A/B/C if no is available. Must be placed after in . Two stages, mirroring : Root MachineCoordinateState — anchored at the previous block's modal rotary state..[*] — sequential walk through items, anchoring item 0 at the previous block's modal state and item i &gt; 0 at item i-1's post-cycle value (per-axis chain). Items without a rotary MachineCoordinateState are skipped. The items pass enables rotary motion (e.g. G28 ABC intermediate / home stages) to surface as motion segments rather than a single root-MC stamp. Per-word directional override: a block-root entry (stamped by ) valued (Siemens ACP()) or (ACN()) swaps that axis's window for this block only: [anchor, anchor+360°) / (anchor-360°, anchor] instead of the default ±180° — the approach direction is forced even when it is the longer way around. A target congruent with the anchor (within an ULP-scale epsilon) keeps the anchor value verbatim — no move, never a spurious full turn, and no deg→rad→deg drift. (DC()) is the default window and needs no special path here. The override is read from the current block only (it is one-shot, never carried — deliberately unlike the modal RotaryWrap gate's one-step previous fallback) and applies to the root MC stage, not to items in general (G28/G74/G75 expansions capture their words in sub-objects the stamping syntax never sees, so an override can only ever describe a root word) — with one exception: an item whose value for an axis equals the root's pre-pass value verbatim carries that same root word (the canned-cycle pre-positioning item that stamps from the root MC) and inherits the root's directive for that axis, so the default window cannot fold the forced swing the root resolved into the short way. Directional/shortest entries keyed by an axis outside the modular set are reported as Coord-McAbc--003 — the promise cannot be honored there and silence would mis-read the program's intent; an entry with no anchor to resolve against (first rotary value in the stream) is reported as Coord-McAbc--004 and adopted unwrapped, matching the default path. Per-word incremental override: an entry (Siemens IC(), klartext IC+270) is a signed traverse by definition — already wrote anchor + delta — so this pass keeps that value verbatim for the axis instead of folding it into the ±180° window (a +270° chain dimension must not become a -90° swing). Incremental entries on non-modular axes need no warning: the literal value is what the axis would do anyway.">
|
||||
<link rel="icon" href="../img/HiAPI.favicon.ico">
|
||||
<link rel="stylesheet" href="../public/docfx.min.css">
|
||||
<link rel="stylesheet" href="../public/main.css">
|
||||
@@ -129,10 +129,17 @@ deg→rad→deg drift. <a class="xref" href="Hi.NcParsers.Keywords.Positioning.h
|
||||
is the default window and needs no special path here. The override
|
||||
is read from the current block only (it is one-shot, never carried —
|
||||
deliberately unlike the modal <code>RotaryWrap</code> gate's one-step
|
||||
previous fallback) and applies to the root MC stage only, not to
|
||||
<a class="xref" href="Hi.NcParsers.Keywords.CompoundMotion.html">CompoundMotion</a> items (G28/G74/G75 expansions capture
|
||||
their words in sub-objects the stamping syntax never sees, so an
|
||||
override can only ever describe a root word). Directional/shortest
|
||||
previous fallback) and applies to the root MC stage, not to
|
||||
<a class="xref" href="Hi.NcParsers.Keywords.CompoundMotion.html">CompoundMotion</a> items in general (G28/G74/G75 expansions
|
||||
capture their words in sub-objects the stamping syntax never sees, so
|
||||
an override can only ever describe a root word) — with one exception:
|
||||
an item whose value for an axis equals the root's pre-pass value
|
||||
verbatim carries that same root word (the canned-cycle
|
||||
pre-positioning item that
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.text.json.nodes.jsonobject">WriteCompoundMotion(JsonObject, string, JsonArray, Vec3d)</a> stamps
|
||||
from the root MC) and inherits the root's directive for that axis, so
|
||||
the default window cannot fold the forced swing the root resolved
|
||||
into the short way. Directional/shortest
|
||||
entries keyed by an axis outside the modular set are reported as
|
||||
<code>Coord-McAbc--003</code> — the promise cannot be honored there and
|
||||
silence would mis-read the program's intent; an entry with no anchor
|
||||
@@ -362,6 +369,39 @@ rewrote to -90° stays +270°:
|
||||
"MachineCoordinateState": { "B": 270 },
|
||||
"PositioningOverride": { "B": "Incremental" }
|
||||
}</code></pre>
|
||||
A <code>CompoundMotion</code> item carrying the root word verbatim — the
|
||||
canned-cycle pre-positioning item that
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.text.json.nodes.jsonobject">WriteCompoundMotion(JsonObject, string, JsonArray, Vec3d)</a> stamps from
|
||||
the root MC of a <code>B=ACP(270)</code> block — inherits the root's
|
||||
<code>PositiveOnly</code> directive: both stay +270 instead of the item
|
||||
folding to -90 as the plain items-walk case above would (same
|
||||
numbers, opposite outcome). The second item is not a copy (170 ≠ 270)
|
||||
and resolves under the default window against the chained anchor
|
||||
270°, where 170 is already the short way:
|
||||
#Previous:
|
||||
<pre><code class="lang-csharp">{ "MachineCoordinateState": { "B": 0 } }</code></pre>
|
||||
#BeforeBuild:
|
||||
<pre><code class="lang-csharp">{
|
||||
"MachineCoordinateState": { "B": 270 },
|
||||
"PositioningOverride": { "B": "PositiveOnly" },
|
||||
"CompoundMotion": {
|
||||
"Items": [
|
||||
{ "MachineCoordinateState": { "B": 270 } },
|
||||
{ "MachineCoordinateState": { "B": 170 } }
|
||||
]
|
||||
}
|
||||
}</code></pre>
|
||||
#AfterBuild:
|
||||
<pre><code class="lang-csharp">{
|
||||
"MachineCoordinateState": { "B": 270 },
|
||||
"PositioningOverride": { "B": "PositiveOnly" },
|
||||
"CompoundMotion": {
|
||||
"Items": [
|
||||
{ "MachineCoordinateState": { "B": 270 } },
|
||||
{ "MachineCoordinateState": { "B": 170 } }
|
||||
]
|
||||
}
|
||||
}</code></pre>
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="title" content="Class McAbcSyntax | HiAPI-C# 2025 ">
|
||||
|
||||
<meta name="description" content="Writes rotary axis values (A/B/C) into from and modal lookback. Only active when declares rotary axes. Works for both 3+2-axis (no ) and simultaneous 5-axis configurations. This syntax is intentionally ABC-only. When the block is rotary-only (no ProgramXyz, e.g. G00 A30.) the section is created with ABC but without X/Y/Z. — placed after — copies X/Y/Z from the previous block's to finish the section. Splitting the XYZ fill out lets this syntax run before (and before ) without accidentally filling X/Y/Z from prev and thereby short-circuiting . Missing rotary axes are filled from previous lookback, unless the current section already has the value (e.g., from ). Values are stored in degrees (matching ). Per-word override: a block-root section (written by for the Siemens AC()/IC() coordinate functions, and by the Heidenhain L / C parsers for the klartext IA+/IB+/IC+ words) marks a rotary word : the parsed value is then added to the previous modal value of that axis (previous MachineCoordinateState lookback, falling back to a value already present in the current section, then 0) instead of being written as an absolute angle. The accumulated raw degrees stay monotonic across iterations: the tail-pass keeps an Incremental-stamped axis literal (a chain dimension is a signed traverse, never re-shortened), so even a +270° step survives as net rotation. An entry (from AC()) matches the default write and needs no special path — and so, deliberately, do the rotary-family entries (DC()) / (ACP()) / (ACN()): this syntax writes the raw absolute target and the shortest/directional swing is resolved by the tail-pass, which owns the wrap math. Brands that never write the section keep the exact legacy behavior. Coded-position overrides (Siemens CAC()/CIC()/CDC()/CACP()/CACN()) carry an indexing position number instead of an angle: the number is resolved through via and the override entry is rewritten to the plain vocabulary ( / / / — a cyclic CIC keeps its programmed direction through the directional values) before the tail-pass runs, so the tail-pass never sees a coded value. A failed resolve (invalid number, missing table) reports an error and holds the axis at its previous value. Must be placed before so syntaxes that need the current-block ABC to compute transforms (e.g. ) can see it; and before and .">
|
||||
<meta name="description" content="Writes rotary axis values (A/B/C) into from and modal lookback. Only active when declares rotary axes. Works for both 3+2-axis (no ) and simultaneous 5-axis configurations. This syntax is intentionally ABC-only. When the block is rotary-only (no ProgramXyz, e.g. G00 A30.) the section is created with ABC but without X/Y/Z. — placed after — copies X/Y/Z from the previous block's to finish the section. Splitting the XYZ fill out lets this syntax run before (and before ) without accidentally filling X/Y/Z from prev and thereby short-circuiting . Missing rotary axes are filled from previous lookback, unless the current section already has the value (e.g., from ). Values are stored in degrees (matching ). Per-word override: a block-root section (written by for the Siemens AC()/IC() coordinate functions, and by the Heidenhain L / C parsers for the klartext IA+/IB+/IC+ words) marks a rotary word : the parsed value is then added to the previous modal value of that axis (previous MachineCoordinateState lookback, falling back to a value already present in the current section, then 0) instead of being written as an absolute angle. The accumulated raw degrees stay monotonic across iterations: the tail-pass keeps an Incremental-stamped axis literal (a chain dimension is a signed traverse, never re-shortened), so even a +270° step survives as net rotation. An entry (from AC()) matches the default write and needs no special path — and so, deliberately, do the rotary-family entries (DC()) / (ACP()) / (ACN()): this syntax writes the raw absolute target and the shortest/directional swing is resolved by the tail-pass, which owns the wrap math. Brands that never write the section keep the exact legacy behavior. Coded-position overrides (Siemens CAC()/CIC()/CDC()/CACP()/CACN()) carry an indexing position number instead of an angle: the number is resolved through via and the override entry is rewritten to the plain vocabulary ( / / / — a cyclic CIC keeps its programmed direction through the directional values) before the tail-pass runs, so the tail-pass never sees a coded value. A failed resolve (invalid number, missing table) reports an error and holds the axis at its previous value. Every rotary word the block actually carried is also recorded, as programmed, in the one-shot block-root section ({ "C": 40 }) — the resolved angle goes into MachineCoordinateState, which after the modal carry can no longer tell "commanded" from "carried". Downstream consumers that need that distinction ( repeating an active canned cycle on a rotary-only block, riding the block's ABC on the cycle's pre-positioning item) read the record; the section is never modal-carried. Must be placed before so syntaxes that need the current-block ABC to compute transforms (e.g. ) can see it; and before and .">
|
||||
<link rel="icon" href="../img/HiAPI.favicon.ico">
|
||||
<link rel="stylesheet" href="../public/docfx.min.css">
|
||||
<link rel="stylesheet" href="../public/main.css">
|
||||
@@ -168,6 +168,18 @@ resolve (invalid number, missing table) reports an error and holds
|
||||
the axis at its previous value.
|
||||
</p>
|
||||
<p>
|
||||
Every rotary word the block actually carried is also recorded, as
|
||||
programmed, in the one-shot block-root <a class="xref" href="Hi.NcParsers.Keywords.RotaryWords.html">RotaryWords</a>
|
||||
section (<code>{ "C": 40 }</code>) — the resolved angle goes into
|
||||
<code>MachineCoordinateState</code>, which after the modal carry can no
|
||||
longer tell "commanded" from "carried". Downstream consumers that need
|
||||
that distinction (<a class="xref" href="Hi.NcParsers.LogicSyntaxs.CannedCycleResolveSyntax.html">CannedCycleResolveSyntax</a> repeating an
|
||||
active canned cycle on a rotary-only block,
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.text.json.nodes.jsonobject">WriteCompoundMotion(JsonObject, string, JsonArray, Vec3d)</a> riding the
|
||||
block's ABC on the cycle's pre-positioning item) read the record; the
|
||||
section is never modal-carried.
|
||||
</p>
|
||||
<p>
|
||||
Must be placed <b>before</b> <a class="xref" href="Hi.NcParsers.LogicSyntaxs.McXyzSyntax.html">McXyzSyntax</a> so syntaxes
|
||||
that need the current-block ABC to compute transforms
|
||||
(e.g. <a class="xref" href="Hi.NcParsers.LogicSyntaxs.G43p4RtcpSyntax.html">G43p4RtcpSyntax</a>) can see it; and <b>before</b>
|
||||
@@ -270,24 +282,34 @@ no-op (the syntax only fires when rotary axes are declared):
|
||||
AxisConfig declares B+C rotary; <code>Parsing.B/C</code> are consumed
|
||||
into a freshly created <code>MachineCoordinateState</code> section
|
||||
(X/Y/Z are deliberately left out so <a class="xref" href="Hi.NcParsers.LogicSyntaxs.McXyzSyntax.html">McXyzSyntax</a> can
|
||||
still derive XYZ later — see class summary):
|
||||
still derive XYZ later — see class summary). The words the block
|
||||
spoke are recorded as programmed in the one-shot
|
||||
<a class="xref" href="Hi.NcParsers.Keywords.RotaryWords.html">RotaryWords</a> section:
|
||||
#BeforeBuild:
|
||||
<pre><code class="lang-csharp">{ "Parsing": { "B": 45, "C": 90 } }</code></pre>
|
||||
#AfterBuild:
|
||||
<pre><code class="lang-csharp">{ "MachineCoordinateState": { "B": 45, "C": 90 } }</code></pre>
|
||||
<pre><code class="lang-csharp">{
|
||||
"MachineCoordinateState": { "B": 45, "C": 90 },
|
||||
"RotaryWords": { "B": 45, "C": 90 }
|
||||
}</code></pre>
|
||||
Only <code>Parsing.B</code> on the current block; <code>#Previous:</code>
|
||||
carries a full MC including C=0. The missing C is filled from the
|
||||
per-axis backward lookback (<a class="xref" href="Hi.NcParsers.Syntaxs.SyntaxPiece.html">FindPreviousMcAxis(LazyLinkedListNode<SyntaxPiece>, string)</a>):
|
||||
per-axis backward lookback (<a class="xref" href="Hi.NcParsers.Syntaxs.SyntaxPiece.html">FindPreviousMcAxis(LazyLinkedListNode<SyntaxPiece>, string)</a>) — and
|
||||
stays out of <code>RotaryWords</code>, which lists commanded words only:
|
||||
#Previous:
|
||||
<pre><code class="lang-csharp">{ "MachineCoordinateState": { "B": 0, "C": 0 } }</code></pre>
|
||||
#BeforeBuild:
|
||||
<pre><code class="lang-csharp">{ "Parsing": { "B": 30 } }</code></pre>
|
||||
#AfterBuild:
|
||||
<pre><code class="lang-csharp">{ "MachineCoordinateState": { "B": 30, "C": 0 } }</code></pre>
|
||||
<pre><code class="lang-csharp">{
|
||||
"MachineCoordinateState": { "B": 30, "C": 0 },
|
||||
"RotaryWords": { "B": 30 }
|
||||
}</code></pre>
|
||||
Per-word incremental override (the Siemens <code>C=IC(...)</code> shape
|
||||
after the unwrap + evaluation stages) — the parsed 21.5 is added onto
|
||||
the previous modal C instead of overwriting it; B has no override
|
||||
entry and fills from lookback as usual:
|
||||
entry and fills from lookback as usual. <code>RotaryWords</code> keeps the
|
||||
programmed delta, not the accumulated angle:
|
||||
#Previous:
|
||||
<pre><code class="lang-csharp">{ "MachineCoordinateState": { "B": 10, "C": 40 } }</code></pre>
|
||||
#BeforeBuild:
|
||||
@@ -298,14 +320,16 @@ entry and fills from lookback as usual:
|
||||
#AfterBuild:
|
||||
<pre><code class="lang-csharp">{
|
||||
"PositioningOverride": { "C": "Incremental" },
|
||||
"MachineCoordinateState": { "B": 10, "C": 61.5 }
|
||||
"MachineCoordinateState": { "B": 10, "C": 61.5 },
|
||||
"RotaryWords": { "C": 21.5 }
|
||||
}</code></pre>
|
||||
Coded-position absolute (the Siemens <code>C=CAC(3)</code> shape after the
|
||||
unwrap + evaluation stages). The case injects a
|
||||
<code>SiemensMachineDataTable</code> declaring C rotary and assigned to
|
||||
indexing table 1 = <code>[0, 90, 180, 270]</code>: position number 3
|
||||
resolves to 180° and the override entry is rewritten to
|
||||
<code>Absolute</code> for the tail-pass:
|
||||
<code>Absolute</code> for the tail-pass (<code>RotaryWords</code> keeps the
|
||||
position number the program spoke):
|
||||
#BeforeBuild:
|
||||
<pre><code class="lang-csharp">{
|
||||
"PositioningOverride": { "C": "CodedAbsolute" },
|
||||
@@ -314,7 +338,8 @@ resolves to 180° and the override entry is rewritten to
|
||||
#AfterBuild:
|
||||
<pre><code class="lang-csharp">{
|
||||
"PositioningOverride": { "C": "Absolute" },
|
||||
"MachineCoordinateState": { "C": 180 }
|
||||
"MachineCoordinateState": { "C": 180 },
|
||||
"RotaryWords": { "C": 3 }
|
||||
}</code></pre>
|
||||
Coded-position incremental with the same table — from 270° (position
|
||||
4), advancing 2 positions wraps the 4-position cycle to position 2
|
||||
@@ -330,7 +355,8 @@ so the swing keeps the programmed direction:
|
||||
#AfterBuild:
|
||||
<pre><code class="lang-csharp">{
|
||||
"PositioningOverride": { "C": "PositiveOnly" },
|
||||
"MachineCoordinateState": { "C": 90 }
|
||||
"MachineCoordinateState": { "C": 90 },
|
||||
"RotaryWords": { "C": 2 }
|
||||
}</code></pre>
|
||||
|
||||
|
||||
|
||||
@@ -204,6 +204,69 @@ stays Static.</p>
|
||||
|
||||
|
||||
|
||||
<a id="Hi_NcParsers_LogicSyntaxs_PivotTransformUtil_PinTiltInMachineSpaceAcrossRotaryWords_" data-uid="Hi.NcParsers.LogicSyntaxs.PivotTransformUtil.PinTiltInMachineSpaceAcrossRotaryWords*"></a>
|
||||
|
||||
<h3 id="Hi_NcParsers_LogicSyntaxs_PivotTransformUtil_PinTiltInMachineSpaceAcrossRotaryWords_Hi_Common_Collections_LazyLinkedListNode_Hi_NcParsers_Syntaxs_SyntaxPiece__System_Text_Json_Nodes_JsonObject_System_Collections_Generic_List_Hi_NcParsers_Dependencys_INcDependency__" data-uid="Hi.NcParsers.LogicSyntaxs.PivotTransformUtil.PinTiltInMachineSpaceAcrossRotaryWords(Hi.Common.Collections.LazyLinkedListNode{Hi.NcParsers.Syntaxs.SyntaxPiece},System.Text.Json.Nodes.JsonObject,System.Collections.Generic.List{Hi.NcParsers.Dependencys.INcDependency})">
|
||||
PinTiltInMachineSpaceAcrossRotaryWords(LazyLinkedListNode<SyntaxPiece>, JsonObject, List<INcDependency>)
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>Pins the tilted-plane feature frame in <b>machine</b> space across a
|
||||
rotary word: on a block that spoke A/B/C (one-shot
|
||||
<a class="xref" href="Hi.NcParsers.Keywords.RotaryWords.html">RotaryWords</a> record) under an active tilt, rewrites the
|
||||
block's <a class="xref" href="Hi.NcParsers.LogicSyntaxs.TiltTransformUtil.html#Hi_NcParsers_LogicSyntaxs_TiltTransformUtil_TransformSource">TransformSource</a> entry so that
|
||||
<code>Tilt(cur)·Pivot(cur) == Tilt(prev)·Pivot(prev)</code> — the feature
|
||||
point the program addresses stays where it was in machine space and
|
||||
the table turns underneath it. This is the Fanuc TWP behaviour HardNc
|
||||
reproduces through <code>NcArgG68p2.PostMcAbc_rad</code> (the delta between
|
||||
the line's rotary word and the IJK solution re-anchors the feature
|
||||
frame; the comment there cites CHEM20180926 N10, whose
|
||||
<code>G81 … C20.</code>/<code>C40.</code>/… drill a bolt circle on the periphery
|
||||
while the tip never leaves its machine position). Without it the
|
||||
carried tilt stays attached to the table and every C-indexed hole
|
||||
lands on the same spot of the part.</p>
|
||||
<p>
|
||||
Silently no-ops when the block spoke no rotary word, when
|
||||
<a class="xref" href="Hi.Numerical.Xyzabc.IMachineKinematics.html">IMachineKinematics</a> is absent, or when the previous
|
||||
block carries no <a class="xref" href="Hi.NcParsers.Syntaxs.TransformationUtil.html#Hi_NcParsers_Syntaxs_TransformationUtil_PivotTransformSource">PivotTransformSource</a>
|
||||
entry (the tilt was not yet active there — nothing to pin). Must run
|
||||
before <a class="xref" href="Hi.NcParsers.LogicSyntaxs.PivotTransformUtil.html#Hi_NcParsers_LogicSyntaxs_PivotTransformUtil_ComposePivotEntry_Hi_Common_Collections_LazyLinkedListNode_Hi_NcParsers_Syntaxs_SyntaxPiece__System_Text_Json_Nodes_JsonObject_System_Collections_Generic_List_Hi_NcParsers_Dependencys_INcDependency__">ComposePivotEntry(LazyLinkedListNode<SyntaxPiece>, JsonObject, List<INcDependency>)</a> on the same block so the
|
||||
pivot it composes is the one the rewritten tilt was solved against.
|
||||
Brand gates decide whether their tilt vocabulary wants this
|
||||
(<a class="xref" href="Hi.NcParsers.LogicSyntaxs.PivotTransformationSyntax.html">PivotTransformationSyntax</a> applies it to G68.2 without
|
||||
RTCP: under G43.4 the tool centre point is tracked in the
|
||||
workpiece-fixed feature frame while the rotaries move — the tilted
|
||||
CL→NC writeback replays on that contract — so a rotary word there is
|
||||
contouring, not indexing, and the carried tilt stays on the table).
|
||||
</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public static void PinTiltInMachineSpaceAcrossRotaryWords(LazyLinkedListNode<SyntaxPiece> syntaxPieceNode, JsonObject json, List<INcDependency> ncDependencyList)</code></pre>
|
||||
</div>
|
||||
|
||||
<h4 class="section">Parameters</h4>
|
||||
<dl class="parameters">
|
||||
<dt><code>syntaxPieceNode</code> <a class="xref" href="Hi.Common.Collections.LazyLinkedListNode-1.html">LazyLinkedListNode</a><<a class="xref" href="Hi.NcParsers.Syntaxs.SyntaxPiece.html">SyntaxPiece</a>></dt>
|
||||
<dd></dd>
|
||||
<dt><code>json</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.text.json.nodes.jsonobject">JsonObject</a></dt>
|
||||
<dd></dd>
|
||||
<dt><code>ncDependencyList</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.generic.list-1">List</a><<a class="xref" href="Hi.NcParsers.Dependencys.INcDependency.html">INcDependency</a>></dt>
|
||||
<dd></dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a id="Hi_NcParsers_LogicSyntaxs_PivotTransformUtil_ResolveEndpointAbc_" data-uid="Hi.NcParsers.LogicSyntaxs.PivotTransformUtil.ResolveEndpointAbc*"></a>
|
||||
|
||||
<h3 id="Hi_NcParsers_LogicSyntaxs_PivotTransformUtil_ResolveEndpointAbc_Hi_Common_Collections_LazyLinkedListNode_Hi_NcParsers_Syntaxs_SyntaxPiece__Hi_NcParsers_Dependencys_IMachineAxisConfig_" data-uid="Hi.NcParsers.LogicSyntaxs.PivotTransformUtil.ResolveEndpointAbc(Hi.Common.Collections.LazyLinkedListNode{Hi.NcParsers.Syntaxs.SyntaxPiece},Hi.NcParsers.Dependencys.IMachineAxisConfig)">
|
||||
|
||||
+81
@@ -358,6 +358,87 @@ the chain so the new entry stays Static:
|
||||
],
|
||||
"MachineCoordinateState": { "A": 45 }
|
||||
}</code></pre>
|
||||
<p>
|
||||
Active G68.2 across a rotary word — the feature frame stays pinned
|
||||
in machine space (<a class="xref" href="Hi.NcParsers.LogicSyntaxs.PivotTransformUtil.html#Hi_NcParsers_LogicSyntaxs_PivotTransformUtil_PinTiltInMachineSpaceAcrossRotaryWords_Hi_Common_Collections_LazyLinkedListNode_Hi_NcParsers_Syntaxs_SyntaxPiece__System_Text_Json_Nodes_JsonObject_System_Collections_Generic_List_Hi_NcParsers_Dependencys_INcDependency__">PinTiltInMachineSpaceAcrossRotaryWords(LazyLinkedListNode<SyntaxPiece>, JsonObject, List<INcDependency>)</a>).
|
||||
<code>#Previous:</code> had the tilt Rx(30°) composed with the pivot at
|
||||
table-A = 0 (identity on this chain); the current block spoke
|
||||
<code>A45.</code> (one-shot <code>RotaryWords</code>, root MC A = 45) and
|
||||
arrived with the carried Rx(30°) tilt. The tilt entry is rewritten to
|
||||
<code>Tilt·Pivot(prev)·Pivot(cur)⁻¹</code> = Rx(30°)·Rx(45°) = Rx(75°) —
|
||||
so that composed with the new pivot Rx(−45°) the chain still maps the
|
||||
feature frame exactly where the previous block had it — and the
|
||||
pivot entry is written for A = 45 as in the case above. No tool
|
||||
height entry is present, so nothing else is re-aimed:
|
||||
</p>
|
||||
#Previous:
|
||||
<pre><code class="lang-csharp">{
|
||||
"TiltTransform": { "Term": "G68.2" },
|
||||
"ProgramToMcTransform": [
|
||||
{
|
||||
"Source": "TiltTransform",
|
||||
"Kind": "Static",
|
||||
"Mat4d": [
|
||||
1, 0, 0, 0,
|
||||
0, 0.8660254037844387, 0.49999999999999994, 0,
|
||||
0, -0.49999999999999994, 0.8660254037844387, 0,
|
||||
0, 0, 0, 1
|
||||
]
|
||||
},
|
||||
{
|
||||
"Source": "PivotTransform",
|
||||
"Kind": "Static",
|
||||
"Mat4d": [1,0,0,0, 0,1,0,0, 0,0,1,0, 0,0,0,1]
|
||||
}
|
||||
],
|
||||
"MachineCoordinateState": { "X": 0, "Y": 0, "Z": 0, "A": 0, "B": 0 }
|
||||
}</code></pre>
|
||||
#BeforeBuild:
|
||||
<pre><code class="lang-csharp">{
|
||||
"TiltTransform": { "Term": "G68.2" },
|
||||
"ProgramToMcTransform": [
|
||||
{
|
||||
"Source": "TiltTransform",
|
||||
"Kind": "Static",
|
||||
"Mat4d": [
|
||||
1, 0, 0, 0,
|
||||
0, 0.8660254037844387, 0.49999999999999994, 0,
|
||||
0, -0.49999999999999994, 0.8660254037844387, 0,
|
||||
0, 0, 0, 1
|
||||
]
|
||||
}
|
||||
],
|
||||
"MachineCoordinateState": { "A": 45, "B": 0 },
|
||||
"RotaryWords": { "A": 45 }
|
||||
}</code></pre>
|
||||
#AfterBuild:
|
||||
<pre><code class="lang-csharp">{
|
||||
"TiltTransform": { "Term": "G68.2" },
|
||||
"ProgramToMcTransform": [
|
||||
{
|
||||
"Source": "TiltTransform",
|
||||
"Kind": "Static",
|
||||
"Mat4d": [
|
||||
1, 0, 0, 0,
|
||||
0, 0.25881904510252085, 0.9659258262890683, 0,
|
||||
0, -0.9659258262890683, 0.25881904510252085, 0,
|
||||
0, 0, 0, 1
|
||||
]
|
||||
},
|
||||
{
|
||||
"Source": "PivotTransform",
|
||||
"Kind": "Static",
|
||||
"Mat4d": [
|
||||
1, 0, 0, 0,
|
||||
0, 0.7071067811865475, -0.7071067811865475, 0,
|
||||
0, 0.7071067811865475, 0.7071067811865475, 0,
|
||||
0, 0, 0, 1
|
||||
]
|
||||
}
|
||||
],
|
||||
"MachineCoordinateState": { "A": 45, "B": 0 },
|
||||
"RotaryWords": { "A": 45 }
|
||||
}</code></pre>
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -151,6 +151,16 @@ consumes the G80 flag and writes
|
||||
<a class="xref" href="Hi.NcParsers.Keywords.CannedCycle.html">CannedCycle</a> = <code>{ Term: "G80" }</code>, acting as a hard
|
||||
sentinel for <span class="xref">Hi.NcParsers.LogicSyntaxs.CannedCycleSyntaxUtil</span> modal lookback.</li><li><b>No Group-09 activity</b>: leaves the block untouched.</li></ul>
|
||||
<p>
|
||||
A rotary-only block (<code>C40.</code>) reaches this syntax without a
|
||||
<code>Parsing</code> node — <a class="xref" href="Hi.NcParsers.LogicSyntaxs.McAbcSyntax.html">McAbcSyntax</a> consumed the word into
|
||||
<code>MachineCoordinateState</code> and dropped the emptied node — but its
|
||||
one-shot <a class="xref" href="Hi.NcParsers.Keywords.RotaryWords.html">RotaryWords</a> record marks it as a block that
|
||||
spoke an axis word, so under an active cycle it is a modal repeat like
|
||||
any X/Y block (Fanuc's any-axis-word rule; HardNc indexes the table and
|
||||
drills again). The cycle's pre-positioning item then carries the
|
||||
block's ABC (<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.text.json.nodes.jsonobject">WriteCompoundMotion(JsonObject, string, JsonArray, Vec3d)</a>).
|
||||
</p>
|
||||
<p>
|
||||
Must be placed after <a class="xref" href="Hi.NcParsers.LogicSyntaxs.PositioningSyntax.html">PositioningSyntax</a> and before
|
||||
the individual cycle syntaxes in the chain.
|
||||
</p>
|
||||
@@ -486,7 +496,7 @@ Canned cycle paths (Parsing.G81, G82, G83, …) are intentionally
|
||||
excluded — their Z/R incremental semantics differ from normal axes
|
||||
(R is relative to init level, Z is relative to R-point).
|
||||
Resolution is handled by
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.text.json.nodes.jsonobject">ResolveCycleCoordinates(JsonObject, Vec3d, double?, double?, double, double)</a>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.text.json.nodes.jsonobject">ResolveCycleCoordinates(JsonObject, Vec3d, double?, double?, double, double, HashSet<string>)</a>
|
||||
inside each cycle syntax class, which runs before this syntax.
|
||||
</p>
|
||||
<p>
|
||||
@@ -714,10 +724,17 @@ deg→rad→deg drift. <a class="xref" href="Hi.NcParsers.Keywords.Positioning.h
|
||||
is the default window and needs no special path here. The override
|
||||
is read from the current block only (it is one-shot, never carried —
|
||||
deliberately unlike the modal <code>RotaryWrap</code> gate's one-step
|
||||
previous fallback) and applies to the root MC stage only, not to
|
||||
<a class="xref" href="Hi.NcParsers.Keywords.CompoundMotion.html">CompoundMotion</a> items (G28/G74/G75 expansions capture
|
||||
their words in sub-objects the stamping syntax never sees, so an
|
||||
override can only ever describe a root word). Directional/shortest
|
||||
previous fallback) and applies to the root MC stage, not to
|
||||
<a class="xref" href="Hi.NcParsers.Keywords.CompoundMotion.html">CompoundMotion</a> items in general (G28/G74/G75 expansions
|
||||
capture their words in sub-objects the stamping syntax never sees, so
|
||||
an override can only ever describe a root word) — with one exception:
|
||||
an item whose value for an axis equals the root's pre-pass value
|
||||
verbatim carries that same root word (the canned-cycle
|
||||
pre-positioning item that
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.text.json.nodes.jsonobject">WriteCompoundMotion(JsonObject, string, JsonArray, Vec3d)</a> stamps
|
||||
from the root MC) and inherits the root's directive for that axis, so
|
||||
the default window cannot fold the forced swing the root resolved
|
||||
into the short way. Directional/shortest
|
||||
entries keyed by an axis outside the modular set are reported as
|
||||
<code>Coord-McAbc--003</code> — the promise cannot be honored there and
|
||||
silence would mis-read the program's intent; an entry with no anchor
|
||||
@@ -810,6 +827,18 @@ resolve (invalid number, missing table) reports an error and holds
|
||||
the axis at its previous value.
|
||||
</p>
|
||||
<p>
|
||||
Every rotary word the block actually carried is also recorded, as
|
||||
programmed, in the one-shot block-root <a class="xref" href="Hi.NcParsers.Keywords.RotaryWords.html">RotaryWords</a>
|
||||
section (<code>{ "C": 40 }</code>) — the resolved angle goes into
|
||||
<code>MachineCoordinateState</code>, which after the modal carry can no
|
||||
longer tell "commanded" from "carried". Downstream consumers that need
|
||||
that distinction (<a class="xref" href="Hi.NcParsers.LogicSyntaxs.CannedCycleResolveSyntax.html">CannedCycleResolveSyntax</a> repeating an
|
||||
active canned cycle on a rotary-only block,
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.text.json.nodes.jsonobject">WriteCompoundMotion(JsonObject, string, JsonArray, Vec3d)</a> riding the
|
||||
block's ABC on the cycle's pre-positioning item) read the record; the
|
||||
section is never modal-carried.
|
||||
</p>
|
||||
<p>
|
||||
Must be placed <b>before</b> <a class="xref" href="Hi.NcParsers.LogicSyntaxs.McXyzSyntax.html">McXyzSyntax</a> so syntaxes
|
||||
that need the current-block ABC to compute transforms
|
||||
(e.g. <a class="xref" href="Hi.NcParsers.LogicSyntaxs.G43p4RtcpSyntax.html">G43p4RtcpSyntax</a>) can see it; and <b>before</b>
|
||||
|
||||
@@ -650,6 +650,47 @@ sibling section. Throws if any entry lacks <a class="xref" href="Hi.NcParsers.Sy
|
||||
|
||||
|
||||
|
||||
<a id="Hi_NcParsers_Syntaxs_TransformationUtil_HasTransformEntry_" data-uid="Hi.NcParsers.Syntaxs.TransformationUtil.HasTransformEntry*"></a>
|
||||
|
||||
<h3 id="Hi_NcParsers_Syntaxs_TransformationUtil_HasTransformEntry_System_Text_Json_Nodes_JsonObject_System_String_" data-uid="Hi.NcParsers.Syntaxs.TransformationUtil.HasTransformEntry(System.Text.Json.Nodes.JsonObject,System.String)">
|
||||
HasTransformEntry(JsonObject, string)
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>True when the chain carries an entry with the given source name
|
||||
(<a class="xref" href="Hi.NcParsers.Syntaxs.TransformationUtil.html#Hi_NcParsers_Syntaxs_TransformationUtil_GetTransformBySource_System_Text_Json_Nodes_JsonObject_System_String_">GetTransformBySource(JsonObject, string)</a> cannot tell “absent” from
|
||||
“identity”).</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public static bool HasTransformEntry(JsonObject json, string source)</code></pre>
|
||||
</div>
|
||||
|
||||
<h4 class="section">Parameters</h4>
|
||||
<dl class="parameters">
|
||||
<dt><code>json</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.text.json.nodes.jsonobject">JsonObject</a></dt>
|
||||
<dd></dd>
|
||||
<dt><code>source</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.boolean">bool</a></dt>
|
||||
<dd></dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a id="Hi_NcParsers_Syntaxs_TransformationUtil_MakePivotTransformMat_" data-uid="Hi.NcParsers.Syntaxs.TransformationUtil.MakePivotTransformMat*"></a>
|
||||
|
||||
<h3 id="Hi_NcParsers_Syntaxs_TransformationUtil_MakePivotTransformMat_Hi_Numerical_Xyzabc_IMachineKinematics_Hi_Geom_Vec3d_" data-uid="Hi.NcParsers.Syntaxs.TransformationUtil.MakePivotTransformMat(Hi.Numerical.Xyzabc.IMachineKinematics,Hi.Geom.Vec3d)">
|
||||
|
||||
@@ -786,7 +786,7 @@
|
||||
<a href="Hi.Disp.DispEngine.html" name="" title="DispEngine">DispEngine</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="Hi.Disp.DispEngine.ImageRequestedDelegate.html" name="" title="DispEngine.ImageRequestedDelegate">DispEngine.ImageRequestedDelegate</a>
|
||||
<a href="Hi.Disp.DispEngine.FrameReadyDelegate.html" name="" title="DispEngine.FrameReadyDelegate">DispEngine.FrameReadyDelegate</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="Hi.Disp.DispEngineConfig.html" name="" title="DispEngineConfig">DispEngineConfig</a>
|
||||
@@ -803,6 +803,9 @@
|
||||
<li>
|
||||
<a href="Hi.Disp.Drawing.html" name="" title="Drawing">Drawing</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="Hi.Disp.FramePins.html" name="" title="FramePins">FramePins</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="Hi.Disp.FuncDisplayee.html" name="" title="FuncDisplayee">FuncDisplayee</a>
|
||||
</li>
|
||||
@@ -833,6 +836,15 @@
|
||||
<li>
|
||||
<a href="Hi.Disp.Pickable.html" name="" title="Pickable">Pickable</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="Hi.Disp.PinDrawing.html" name="" title="PinDrawing">PinDrawing</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="Hi.Disp.PinFlags.html" name="" title="PinFlags">PinFlags</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="Hi.Disp.PinRecord.html" name="" title="PinRecord">PinRecord</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="Hi.Disp.PopModelMat.html" name="" title="PopModelMat">PopModelMat</a>
|
||||
</li>
|
||||
@@ -3172,6 +3184,9 @@
|
||||
<li>
|
||||
<a href="Hi.NcParsers.Keywords.RadiusCompensation.html" name="" title="RadiusCompensation">RadiusCompensation</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="Hi.NcParsers.Keywords.RotaryWords.html" name="" title="RotaryWords">RotaryWords</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="Hi.NcParsers.Keywords.SpindleControl.html" name="" title="SpindleControl">SpindleControl</a>
|
||||
</li>
|
||||
|
||||
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user