Class StepPhysicsChannelReader
- Namespace
- Hi.MachiningProcs
- Assembly
- HiMech.dll
Internal Use Only. The reader of the resident channels (StepPhysicsChannels): the per-step quantities the plural strip charts and the color trees derive from the few float32 source numbers a published step left in the channels, with the formulas the step's getters use — the same static formulas, with the spindle capability, the ambient temperature, the tool house and the physics packs of the moment — so that a poll over the whole strip and a tree's evaluation never read the step cache. One reader a runner (StepPhysicsChannelReader), read on any thread at once: the sequencing thread (the step-built hook), the inspecting-slot scan, the requests' polls and the export.
The spindle limits at a step's speed (SpindleSpeedCache) are built once per speed met and kept in a snapshot of the environment they were built from: the capability object, the ambient temperature's bits and the tool house object. A read whose environment differs from the snapshot's by identity builds a new snapshot (a capability or a tool house replaced, an ambient edited); an edit made in place on the capability object is not seen by identity, and the host drops the snapshot where it moves the inspecting-slot generation (Invalidate()) — the environment forward, the step-physics recompute's end, a session's begin — and the runner drops it with the strip.
public sealed class StepPhysicsChannelReader
- Inheritance
-
StepPhysicsChannelReader
- Inherited Members
- Extension Methods
Constructors
StepPhysicsChannelReader(StepPhysicsChannels, Func<MachiningEquipment>, Func<MachiningToolHouse>)
Creates a reader over channels for the equipment and the tool house
of the moment.
public StepPhysicsChannelReader(StepPhysicsChannels channels, Func<MachiningEquipment> equipment, Func<MachiningToolHouse> house)
Parameters
channelsStepPhysicsChannelsThe resident channels the reader reads.
equipmentFunc<MachiningEquipment>Answers the equipment of the moment (its spindle capability and ambient temperature); may answer null.
houseFunc<MachiningToolHouse>Answers the tool house of the moment; may answer null.
Exceptions
- ArgumentNullException
A parameter is null.
Fields
CachedSpeedCap
The spindle speeds a snapshot keeps the limits of, about: an adder stops adding once the snapshot's count has reached it (a few adders through the check at once can land a few over). A replay whose every step carries its own measured speed would otherwise keep a cache a step for the session; a speed met past the cap is read from limits built for that read and not kept.
public const int CachedSpeedCap = 4096
Field Value
Properties
CachedSpeedCount
The spindle speeds whose limits are cached in the current snapshot; 0 after Invalidate().
public int CachedSpeedCount { get; }
Property Value
ResidentReads
The quantities a step's presentation key can read off the resident channels, by key: the
seven ratios and the four values that place the stress ratio on the cutter. The
step-property registry attaches each to its
entry as PropertyAccess.ResidentQuantityFunc, so a color tree reads those keys
here and not through the step's getter (which reads the step cache once a step).
public static IReadOnlyDictionary<string, Func<StepPhysicsChannelReader, MachiningStep, double>> ResidentReads { get; }
Property Value
Methods
ContinueSpindlePowerRatio(MachiningStep)
Continuous spindle power ratio: input power / time-unlimited maximum power per the current spindle capability, computed on read.
public double ContinueSpindlePowerRatio(MachiningStep s)
Parameters
sMachiningStepThe step; NaN for a step not held.
Returns
ContinueSpindleTorqueRatio(MachiningStep)
Gets the infinite insistent spindle torque ratio: the step's peak axial torque over the torque the current spindle capability sustains indefinitely at the step's speed, computed on read.
public double ContinueSpindleTorqueRatio(MachiningStep s)
Parameters
sMachiningStepThe step; NaN for a step not held.
Returns
DeltaTipDeflection_um(MachiningStep, int)
One component of the delta tip deflection on the tool running coordinate in micrometers (DeltaTipDeflectionOnToolRunningCoordinate_um): 0 for an untouched step; NaN for a step not held or a deflection not built.
public double DeltaTipDeflection_um(MachiningStep s, int axis)
Parameters
sMachiningStepThe step; NaN for null.
axisint0, 1 or 2 for X, Y or Z of the tool running coordinate.
Returns
Invalidate()
Drops the spindle caches: the next read builds them from the capability and the ambient temperature of the moment. For an edit made in place on the capability object, which the reader cannot see by identity.
public void Invalidate()
IsHeld(MachiningStep)
Whether the step's channels were written: the step was published by this runner (its row of the two briefs exists) and the strip was not cleared since.
public bool IsHeld(MachiningStep step)
Parameters
stepMachiningStepThe step; null is not held.
Returns
- bool
true when the reader can answer for the step.
MaxForce_N(MachiningStep, int)
One component of the maximum force on the tool running coordinate in N (MaxForceOnToolRunningCoordinate_N): NaN for a step not held, the null record or a force not built.
public double MaxForce_N(MachiningStep s, int axis)
Parameters
sMachiningStepThe step; NaN for a step not held.
axisint0, 1 or 2 for X, Y or Z of the tool running coordinate.
Returns
MaxSpindlePowerRatio(MachiningStep)
Maximum spindle power ratio: input power / instantaneous maximum power per the current spindle capability, computed on read.
public double MaxSpindlePowerRatio(MachiningStep s)
Parameters
sMachiningStepThe step; NaN for a step not held.
Returns
MaxSpindleRatios(MachiningStep, out double, out double)
The max spindle torque ratio and the max spindle power ratio in one go (one read of the channels' row, one look-up of the spindle limits), each as MaxSpindleTorqueRatio(MachiningStep) and MaxSpindlePowerRatio(MachiningStep) read it: NaN while the physics did not run on the step, or there is no capability or no limits at the step's speed; 0 on a step the cutter did not touch. What the overload run fold folds (OverloadRunFold), each ratio into its own runs: the peak torque in a revolution and the mean power over it are two causes, and a run of one is not a run of the other.
public void MaxSpindleRatios(MachiningStep s, out double torqueRatio, out double powerRatio)
Parameters
sMachiningStepThe step; both NaN for a step not held.
torqueRatiodoubleThe max spindle torque ratio.
powerRatiodoubleThe max spindle power ratio.
MaxSpindleTorqueRatio(MachiningStep)
Gets the maximum spindle torque ratio: the step's peak axial torque over the peak torque the current spindle capability sustains at the step's speed, computed on read.
public double MaxSpindleTorqueRatio(MachiningStep s)
Parameters
sMachiningStepThe step; NaN for a step not held.
Returns
ReCutDepth_um(MachiningStep)
The re-cut depth on the bottom edge in micrometers, swung out of the channels' maximum force at its height with the formula of ReCutDepth_um: 0 for an untouched step, for a touched one not held or without a force brief, and for a deflection the formula cannot build (the no-deflection answer the plural chart draws); NaN for null alone.
public double ReCutDepth_um(MachiningStep s)
Parameters
sMachiningStepThe step; NaN for null.
Returns
SpindleWorkingTemperatureRatio(MachiningStep)
Gets the spindle working temperature ratio: the spindle temperature above ambient over the current spindle capability's working range, computed on read; NaN without a spindle capability or without its continuous condition.
public double SpindleWorkingTemperatureRatio(MachiningStep s)
Parameters
sMachiningStepThe step; NaN for a step not held.
Returns
StressCriticalHeight_mm(MachiningStep)
The height above the tool tip, mm, of the critical section: the cutter beam section StressRatio is read at, the one whose ratio is the largest under this step's forces — where the cutter would break first (StressCriticalHeight_mm). Read with StressCriticalZone. Null when the physics did not run on the step; NaN when no section is placed: the ratio not evaluated, or an untouched step, whose ratio reads 0 with no section stressed.
public double StressCriticalHeight_mm(MachiningStep s)
Parameters
sMachiningStepThe step; NaN for a step not held.
Returns
StressCriticalZone(MachiningStep)
The zone of the critical section as its number (CutterBeamZone: 0 none, 1 flute, 2 taper, 3 cylinder), what a color tree and the categorical coloring of StressCriticalZone read; NaN for a step not held and for the null record.
public double StressCriticalZone(MachiningStep s)
Parameters
sMachiningStepThe step; NaN for a step not held.
Returns
StressOnsetHeight_mm(MachiningStep)
The height above the tool tip, mm, of the onset section: the lowest cutter beam section — the one nearest the tip — whose stress ratio is above 1 under this step's forces, where the overload begins when the cutter is read from the tip up (StressOnsetHeight_mm). Read with StressOnsetZone. Null when the physics did not run on the step; NaN when no section is above 1, the ratio not evaluated and an untouched step among the cases.
public double StressOnsetHeight_mm(MachiningStep s)
Parameters
sMachiningStepThe step; NaN for a step not held.
Returns
StressOnsetZone(MachiningStep)
The zone of the onset section as its number (CutterBeamZone), read as StressCriticalZone(MachiningStep) is; NaN for a step not held and for the null record.
public double StressOnsetZone(MachiningStep s)
Parameters
sMachiningStepThe step; NaN for a step not held.
Returns
StressRatio(MachiningStep)
Gets the stress ratio: the largest principal stress at the cutter beam's critical section over the beam material's stress line (StressLimit_MPa: its yield strength where it gives one – a ductile insert body – else its tensile strength, which is every shipped cutter material's line, a carbide having no yield point). At or above 1 the machining is bad: a ductile beam deforms permanently, a brittle one is past its listed tensile strength; either way the user watches 100 % alone, a cut below it being safe with high probability. The material's fracture strength is the line of no ratio.
public double StressRatio(MachiningStep s)
Parameters
sMachiningStepThe step; NaN for a step not held.
Returns
ThermalStressRatio(MachiningStep)
Gets the thermal stress ratio: ThermalStress_MPa over the current cutter's flute material stress line (StressLimit_MPa: its yield strength where it gives one, else its tensile strength), computed on read. The line does not fall with temperature. NaN where the flute material knows no strength (its line NaN), as the stress ratio reads.
public double ThermalStressRatio(MachiningStep s)
Parameters
sMachiningStepThe step; NaN for a step not held.