Table of Contents

Class RadiusCompensationBuf

Namespace
Hi.Numerical
Assembly
HiUniNc.dll

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'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.

public class RadiusCompensationBuf
Inheritance
RadiusCompensationBuf
Inherited Members
Extension Methods

Constructors

RadiusCompensationBuf()

Initializes a new instance of the RadiusCompensationBuf class.

public RadiusCompensationBuf()

Properties

CenterProgramPos

Arc only. The circle center in program coordinates, computed from the arc's IJK values and the begin position. Used by NcProc to generate spiral contours.

public Vec3d CenterProgramPos { get; set; }

Property Value

Vec3d

CompensatedPosOnProgramCoordinate

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.

public Vec3d CompensatedPosOnProgramCoordinate { get; set; }

Property Value

Vec3d

TransientBeginMc

Arc only. Machine coordinates corresponding to TransientBeginProgramPos.

public DVec3d TransientBeginMc { get; set; }

Property Value

DVec3d

TransientBeginProgramPos

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 ResolveRadiusCompensation(LinkedListNode<HardNcLine>, HardNcEnv, NcNoteCache, IProgress<object>).

public Vec3d TransientBeginProgramPos { get; set; }

Property Value

Vec3d

TransientEndMc

Arc only. Machine coordinates corresponding to TransientEndProgramPos.

public DVec3d TransientEndMc { get; set; }

Property Value

DVec3d

TransientEndProgramPos

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 ResolveRadiusCompensation(LinkedListNode<HardNcLine>, HardNcEnv, NcNoteCache, IProgress<object>).

public Vec3d TransientEndProgramPos { get; set; }

Property Value

Vec3d

Methods

ResolveRadiusCompensation(LinkedListNode<HardNcLine>, HardNcEnv, NcNoteCache, IProgress<object>)

Resolves radius compensation for the given node.

public static bool ResolveRadiusCompensation(LinkedListNode<HardNcLine> srcNode, HardNcEnv ncEnv, NcNoteCache ncLineCache, IProgress<object> messageHost)

Parameters

srcNode LinkedListNode<HardNcLine>

The source node to resolve radius compensation for.

ncEnv HardNcEnv

The numerical control environment.

ncLineCache NcNoteCache

The NC line cache for storing messages.

messageHost IProgress<object>

The message host for reporting issues.

Returns

bool

True if radius compensation was resolved; otherwise, false.

ToString()

Returns a string that represents the current object.

public override string ToString()

Returns

string

A string that represents the current object.