Class MachiningVolumeRemovalProc.StepMotionSnapshot
Represents a snapshot of the machining motion state.
public record MachiningVolumeRemovalProc.StepMotionSnapshot : IEquatable<MachiningVolumeRemovalProc.StepMotionSnapshot>
- Inheritance
-
MachiningVolumeRemovalProc.StepMotionSnapshot
- Implements
- Inherited Members
- Extension Methods
Constructors
StepMotionSnapshot(dvec3d_t?, dvec3d_t?, SeqPair<mat4d_t>, double[], bool, IMachiningTool, WorkpieceService, double, CoolantHeatCondition, SortedList<double, double>, dvec3d_t?, mat4d_t, mat4d_t, bool, bool, bool)
Represents a snapshot of the machining motion state.
public StepMotionSnapshot(dvec3d_t? GeomCl, dvec3d_t? ProgramCl, SeqPair<mat4d_t> Seq, double[] McValues, bool EnableSweeping, IMachiningTool MachiningTool, WorkpieceService WorkpieceService, double AmbientTemperature_K, CoolantHeatCondition CoolantHeatCondition, SortedList<double, double> FluteZToDzList, dvec3d_t? PreTipPose, mat4d_t ProgramZeroToGeomMat4d, mat4d_t GeomToProgramZeroMat4d, bool ToolTipUnreachable = false, bool ProgramZeroUnreachable = false, bool CutterLocationNotFinite = false)
Parameters
GeomCldvec3d_t?The geometric CL point; null when no tool tip is mounted, when the mounted tip is not reachable from the workpiece geometry anchor, when the workpiece has no program zero to place it on, or when the cutter location is not finite (no step any of these ways; see ToolTipUnreachable, ProgramZeroUnreachable and CutterLocationNotFinite).
ProgramCldvec3d_t?The program CL point; null when
GeomClis null.SeqSeqPair<mat4d_t>The sequence pair of transformation matrices.
McValuesdouble[]Array of machine values.
EnableSweepingboolWhether sweeping is enabled.
MachiningToolIMachiningToolThe machining tool being used.
WorkpieceServiceWorkpieceServiceService that owns the workpiece being machined.
AmbientTemperature_KdoubleAmbient temperature in Kelvin.
CoolantHeatConditionCoolantHeatConditionThe coolant heat condition.
FluteZToDzListSortedList<double, double>Sorted list mapping flute Z positions to their deltas.
PreTipPosedvec3d_t?The tip pose the previous StepMotion(bool, double, mat4d_t?) call fed to the valve, on the workpiece-geometry coordinate – whether or not that call produced a step (the valve skips a collinear return over a segment it already covered). Null on the first call after a reset, and on the first finite location after one that was not finite (CutterLocationNotFinite). The one-step reference for the real tip feedrate;
Seq.preis not, it may span two steps back.ProgramZeroToGeomMat4dmat4d_tThe workpiece's program-zero anchor to its geometry anchor through its topology, read once per workpiece. The run gate guarantees the chain; the no-step snapshot (Seq null) carries Idt as a placeholder that nothing reads.
GeomToProgramZeroMat4dmat4d_tThe inverse leg: geometry anchor to program-zero anchor; the same placeholder rule as ProgramZeroToGeomMat4d.
ToolTipUnreachableboolTrue when a tool is mounted but no branch chain connects its tip to the workpiece geometry anchor – no machining chain at all, or a chain missing its spindle or table leg – so the snapshot is the no-step one (Seq null) exactly as with no tool. The caller reports it once per chain assignment (
MachiningActRunner.ReportToolTipUnreachable); false in every other snapshot, including the one where the workpiece's own geometry role is unbound (that is ProgramZeroUnreachable: the workpiece's roles, not the chain).ProgramZeroUnreachableboolTrue when a tool is mounted and the workpiece's geometry anchor does not reach its program-zero anchor through the workpiece's own branches (either role unbound, or the branch between them detached), so the CL cannot be placed in program-zero coordinates and the snapshot is the no-step one (Seq null) exactly as with no tool. The chain is re-read on every such step, so binding the role or attaching the branch on the same workpiece heals on the next step. The caller reports it once per workpiece (
MachiningActRunner.ReportProgramZeroUnreachable); false in every other snapshot, including the one ToolTipUnreachable marks (no CL, so the question does not arise).CutterLocationNotFiniteboolTrue when the tool tip is on the chain and the workpiece has its program zero, but the cutter location that comes out of the chain is not finite (a NaN axis value turns the whole tip matrix NaN through 0 * NaN): nothing can be swept from it, so the snapshot is the no-step one (Seq null, GeomCl null). The valve is not fed – its window still holds the last finite pose, which the next finite location pairs with – and the feed reference (PreTipPose) is dropped, so that next step's real tip feedrate falls back to the commanded one. The caller reports it once per run of such locations (
MachiningActRunner.ReportCutterLocationNotFinite).
Properties
AmbientTemperature_K
Ambient temperature in Kelvin.
public double AmbientTemperature_K { get; init; }
Property Value
CoolantHeatCondition
The coolant heat condition.
public CoolantHeatCondition CoolantHeatCondition { get; init; }
Property Value
CutterLocationNotFinite
True when the tool tip is on the chain and the
workpiece has its program zero, but the cutter location that comes out of the chain is not
finite (a NaN axis value turns the whole tip matrix NaN through 0 * NaN): nothing can be
swept from it, so the snapshot is the no-step one (Seq null,
GeomCl null). The valve is not fed – its window still holds the last finite
pose, which the next finite location pairs with – and the feed reference
(PreTipPose) is dropped, so that next step's real tip feedrate falls back to
the commanded one. The caller reports it once per run of such locations
(MachiningActRunner.ReportCutterLocationNotFinite).
public bool CutterLocationNotFinite { get; init; }
Property Value
EnableSweeping
Whether sweeping is enabled.
public bool EnableSweeping { get; init; }
Property Value
FluteZToDzList
Sorted list mapping flute Z positions to their deltas.
public SortedList<double, double> FluteZToDzList { get; init; }
Property Value
GeomCl
The geometric CL point; null when no tool tip is mounted, when the mounted tip is not reachable from the workpiece geometry anchor, when the workpiece has no program zero to place it on, or when the cutter location is not finite (no step any of these ways; see ToolTipUnreachable, ProgramZeroUnreachable and CutterLocationNotFinite).
public dvec3d_t? GeomCl { get; init; }
Property Value
GeomToProgramZeroMat4d
The inverse leg: geometry anchor to program-zero anchor; the same placeholder rule as ProgramZeroToGeomMat4d.
public mat4d_t GeomToProgramZeroMat4d { get; init; }
Property Value
MachiningTool
The machining tool being used.
public IMachiningTool MachiningTool { get; init; }
Property Value
McValues
Array of machine values.
public double[] McValues { get; init; }
Property Value
- double[]
PreTipPose
The tip pose the previous StepMotion(bool, double, mat4d_t?) call fed to the
valve, on the workpiece-geometry coordinate – whether or not that call produced a step
(the valve skips a collinear return over a segment it already covered). Null on the first
call after a reset, and on the first finite location after one that was not finite
(CutterLocationNotFinite). The one-step reference for the real tip feedrate; Seq.pre is not,
it may span two steps back.
public dvec3d_t? PreTipPose { get; init; }
Property Value
ProgramCl
The program CL point; null when GeomCl is null.
public dvec3d_t? ProgramCl { get; init; }
Property Value
ProgramZeroToGeomMat4d
The workpiece's program-zero anchor to its geometry anchor through its topology, read once per workpiece. The run gate guarantees the chain; the no-step snapshot (Seq null) carries Idt as a placeholder that nothing reads.
public mat4d_t ProgramZeroToGeomMat4d { get; init; }
Property Value
ProgramZeroUnreachable
True when a tool is mounted and the workpiece's
geometry anchor does not reach its program-zero anchor through the workpiece's own
branches (either role unbound, or the branch between them detached), so the CL cannot be
placed in program-zero coordinates and the snapshot is the no-step one (Seq
null) exactly as with no tool. The chain is re-read on every such step, so binding the
role or attaching the branch on the same workpiece heals on the next step. The caller
reports it once per workpiece (MachiningActRunner.ReportProgramZeroUnreachable);
false in every other snapshot, including the one ToolTipUnreachable marks
(no CL, so the question does not arise).
public bool ProgramZeroUnreachable { get; init; }
Property Value
Seq
The sequence pair of transformation matrices.
public SeqPair<mat4d_t> Seq { get; init; }
Property Value
ToolTipUnreachable
True when a tool is mounted but no branch chain connects
its tip to the workpiece geometry anchor – no machining chain at all, or a chain missing
its spindle or table leg – so the snapshot is the no-step one (Seq null)
exactly as with no tool. The caller reports it once per chain assignment
(MachiningActRunner.ReportToolTipUnreachable); false in every other snapshot,
including the one where the workpiece's own geometry role is unbound (that is
ProgramZeroUnreachable: the workpiece's roles, not the chain).
public bool ToolTipUnreachable { get; init; }
Property Value
Workpiece
The workpiece data model.
public Workpiece Workpiece { get; }
Property Value
WorkpieceService
Service that owns the workpiece being machined.
public WorkpieceService WorkpieceService { get; init; }