fix bug of opt arc circle offset.

This commit is contained in:
2026-03-08 12:39:38 +08:00
parent 091da347a4
commit 1dfeb39345
136 changed files with 8007 additions and 11118 deletions
@@ -6,7 +6,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Class RadiusCompensationBuf | HiAPI-C# 2025 ">
<meta name="description" content="Buffer for radius compensation operations in numerical control">
<meta name="description" content="Buffer for radius compensation (G41/G42) operations in numerical control. At each line junction, the offset paths of adjacent lines may form an intersection (intersected rays) or align directly (parallel rays). For straight lines, the tool goes to the intersection point. For arcs, the offset curve doesn&#39;t pass through the intersection, so transient points bridge the gap: Arc → TransientEnd → (linear) → Intersection → (linear) → TransientBegin → NextArc. Transient properties are null when rays are parallel (offset paths align, no corner needed) or when the adjacent line is not an arc.">
<link rel="icon" href="../img/HiAPI.favicon.ico">
<link rel="stylesheet" href="../public/docfx.min.css">
<link rel="stylesheet" href="../public/main.css">
@@ -97,7 +97,18 @@ Class RadiusCompensationBuf
<dl><dt>Assembly</dt><dd>HiUniNc.dll</dd></dl>
</div>
<div class="markdown summary"><p>Buffer for radius compensation operations in numerical control</p>
<div class="markdown summary"><p>Buffer for radius compensation (G41/G42) operations in numerical control.</p>
<p>
At each line junction, the offset paths of adjacent lines may form an intersection
(intersected rays) or align directly (parallel rays). For straight lines, the tool
goes to the intersection point. For arcs, the offset curve doesn't pass through the
intersection, so transient points bridge the gap:
<code>Arc → TransientEnd → (linear) → Intersection → (linear) → TransientBegin → NextArc</code>.
</p>
<p>
Transient properties are null when rays are parallel (offset paths align, no corner needed)
or when the adjacent line is not an arc.
</p>
</div>
<div class="markdown conceptual"></div>
@@ -213,7 +224,8 @@ Class RadiusCompensationBuf
</h3>
<div class="markdown level1 summary"><p>For arc command only.</p>
<div class="markdown level1 summary"><p>Arc only. The circle center in program coordinates, computed from the arc's IJK
values and the begin position. Used by <a class="xref" href="Hi.Numerical.NcProc.html">NcProc</a> to generate spiral contours.</p>
</div>
<div class="markdown level1 conceptual"></div>
@@ -245,8 +257,10 @@ Class RadiusCompensationBuf
</h3>
<div class="markdown level1 summary"><p>Program Pos at certain NcLine.
Program Pos can be Cartesian XYZ or Polar Coordinate Interpolation Mode (G12.1) XCZ.</p>
<div class="markdown level1 summary"><p>The compensated tool-tip position on program coordinates (after radius offset).
For straight lines, this is the intersection of the adjacent offset lines.
For parallel rays, this is a direct perpendicular offset from the program position.
Can be Cartesian XYZ or Polar Coordinate Interpolation Mode (G12.1) XCZ.</p>
</div>
<div class="markdown level1 conceptual"></div>
@@ -278,7 +292,7 @@ Program Pos can be Cartesian XYZ or Polar Coordinate Interpolation Mode (G12.1)
</h3>
<div class="markdown level1 summary"><p>For arc command only.</p>
<div class="markdown level1 summary"><p>Arc only. Machine coordinates corresponding to <a class="xref" href="Hi.Numerical.RadiusCompensationBuf.html#Hi_Numerical_RadiusCompensationBuf_TransientBeginProgramPos">TransientBeginProgramPos</a>.</p>
</div>
<div class="markdown level1 conceptual"></div>
@@ -310,7 +324,10 @@ Program Pos can be Cartesian XYZ or Polar Coordinate Interpolation Mode (G12.1)
</h3>
<div class="markdown level1 summary"><p>For arc command only.</p>
<div class="markdown level1 summary"><p>Arc only. The point on this arc's offset curve where the arc motion begins,
when the previous line's offset path intersects at a corner.
Null when rays are parallel (no corner) or the previous line is not intersecting.
Set by the previous line's iteration in <a class="xref" href="Hi.Numerical.RadiusCompensationBuf.html#Hi_Numerical_RadiusCompensationBuf_ResolveRadiusCompensation_System_Collections_Generic_LinkedListNode_Hi_Numerical_HardNcLine__Hi_Numerical_HardNcEnv_Hi_Numerical_NcNoteCache_System_IProgress_System_Object__">ResolveRadiusCompensation(LinkedListNode&lt;HardNcLine&gt;, HardNcEnv, NcNoteCache, IProgress&lt;object&gt;)</a>.</p>
</div>
<div class="markdown level1 conceptual"></div>
@@ -342,7 +359,7 @@ Program Pos can be Cartesian XYZ or Polar Coordinate Interpolation Mode (G12.1)
</h3>
<div class="markdown level1 summary"><p>For arc command only.</p>
<div class="markdown level1 summary"><p>Arc only. Machine coordinates corresponding to <a class="xref" href="Hi.Numerical.RadiusCompensationBuf.html#Hi_Numerical_RadiusCompensationBuf_TransientEndProgramPos">TransientEndProgramPos</a>.</p>
</div>
<div class="markdown level1 conceptual"></div>
@@ -374,7 +391,10 @@ Program Pos can be Cartesian XYZ or Polar Coordinate Interpolation Mode (G12.1)
</h3>
<div class="markdown level1 summary"><p>For arc command only.</p>
<div class="markdown level1 summary"><p>Arc only. The point on this arc's offset curve where the arc motion ends,
when the next line's offset path intersects at a corner.
Null when rays are parallel (no corner) or the next line is not intersecting.
Set by the current line's iteration in <a class="xref" href="Hi.Numerical.RadiusCompensationBuf.html#Hi_Numerical_RadiusCompensationBuf_ResolveRadiusCompensation_System_Collections_Generic_LinkedListNode_Hi_Numerical_HardNcLine__Hi_Numerical_HardNcEnv_Hi_Numerical_NcNoteCache_System_IProgress_System_Object__">ResolveRadiusCompensation(LinkedListNode&lt;HardNcLine&gt;, HardNcEnv, NcNoteCache, IProgress&lt;object&gt;)</a>.</p>
</div>
<div class="markdown level1 conceptual"></div>