Table of Contents

Class MachiningStepRecord

Namespace
Hi.MachiningSteps
Assembly
HiMech.dll

Internal Use Only. The record of one published MachiningStep as the result recording takes it: the step index, the snapshot of the step's source sentence, a copy of the motion step, the removal scalars, a copy of the collided pairs and a copy of the measured time – values and copies only, nothing that keeps the play alive: not the step's host, not its live source command, not its motion step. Of(MachiningStep) takes it the moment the step pipeline publishes the step, and the record is the step's values of that moment: what is written onto a step after it was published is not in it – the CSV mapping embedded after a play sets the steps' ActualTime, and the step-physics recompute replaces the force brief's tag in the step's SubstractionBrief (MachiningStep.ReplaceMillingForceBriefTag); the recorder of the plan's P3 decides how those two are recorded. ActualTime has a value for the CSV-driven play alone, whose step-built action stamps the step before it is published.

public sealed class MachiningStepRecord
Inheritance
MachiningStepRecord
Inherited Members
Extension Methods

Constructors

MachiningStepRecord(int, SentenceSnapshot, MachineMotionStep, in SubstractionBrief, CollidedKeyPair[], StepActualTime)

Initializes a record from its parts, which it keeps as they are given: the copying is Of(MachiningStep)'s.

public MachiningStepRecord(int stepIndex, SentenceSnapshot sentence, MachineMotionStep motion, in SubstractionBrief substractionBrief, MachiningStep.CollidedKeyPair[] collidedKeyPairs, StepActualTime actualTime)

Parameters

stepIndex int

The step's index.

sentence SentenceSnapshot

The snapshot of the step's source sentence; null for none.

motion MachineMotionStep

The motion step; not null.

substractionBrief SubstractionBrief

The removal scalars.

collidedKeyPairs CollidedKeyPair[]

The collided pairs; null for none.

actualTime StepActualTime

The measured time; null for none.

Exceptions

ArgumentNullException

motion is null.

Properties

ActualTime

A copy of the step's ActualTime; null when the step had no stamp when it was published.

public StepActualTime ActualTime { get; }

Property Value

StepActualTime

CollidedKeyPairs

A copy of the step's CollidedKeyPairs array, its immutable pairs shared; null when the step has none.

public MachiningStep.CollidedKeyPair[] CollidedKeyPairs { get; }

Property Value

CollidedKeyPair[]

Motion

A copy of the step's MachineMotionStep with values of its own – its own McValues array, its own pair on the workpiece geometry coordinate; the holder of the two program-zero legs is shared, it is never written – so a write to the step after the record was taken does not reach the record. Never null. Read it; it is data, not a step of the play: do not call GetMachiningTool(MachiningToolHouse) on it, which would memoise a tool of the play on the copy. The four matrices of the record's shell are read off it (SeqOnWorkpieceGeomCoordinate, ProgramToWorkpieceGeomMat4d, WorkpieceGeomToProgramMat4d), beside the blob WriteBin(BinaryWriter) writes without them.

public MachineMotionStep Motion { get; }

Property Value

MachineMotionStep

Sentence

The snapshot of the step's source sentence, the one interned for the step's SourceCommand (Of(ISentenceCarrier)): every record of the same sentence carries this same object, the key under which the recorder hands the sentence its piece id. Null for a step without a source command.

public SentenceSnapshot Sentence { get; }

Property Value

SentenceSnapshot

SentenceIndex

The sentence's execution-order index, SentenceIndex; -1 without a sentence. A diagnostic column: the key is Sentence.

public int SentenceIndex { get; }

Property Value

int

StepIndex

The step's index, StepIndex: the record's key.

public int StepIndex { get; }

Property Value

int

SubstractionBrief

The step's removal scalars as they were when the step was published: a value, copied.

public SubstractionBrief SubstractionBrief { get; }

Property Value

SubstractionBrief

Methods

Of(MachiningStep)

Internal Use Only. The record of step as it is now: the motion step copied (the copy constructor, then its own McValues array and its own pair, null staying null), the removal scalars by value, the collided pairs array copied, the measured time copied into a new object, and the sentence as the snapshot interned for the step's source command. Taken by the recorder the moment the step pipeline publishes the step.

public static MachiningStepRecord Of(MachiningStep step)

Parameters

step MachiningStep

The step; not null.

Returns

MachiningStepRecord

The record.

Exceptions

ArgumentNullException

step is null.

ArgumentException

step carries no motion step, or one of its collided pairs is null.