Class RadiusCompensationBuf
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
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
TransientBeginMc
Arc only. Machine coordinates corresponding to TransientBeginProgramPos.
public DVec3d TransientBeginMc { get; set; }
Property Value
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
TransientEndMc
Arc only. Machine coordinates corresponding to TransientEndProgramPos.
public DVec3d TransientEndMc { get; set; }
Property Value
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
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
srcNodeLinkedListNode<HardNcLine>The source node to resolve radius compensation for.
ncEnvHardNcEnvThe numerical control environment.
ncLineCacheNcNoteCacheThe NC line cache for storing messages.
messageHostIProgress<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.