Enum ThermalStepOutcome
What BuildCuttingTemperatureAndWear(SeqPhysicsState, MachineMotionStep, MachineMotionStep, double, SpindleCapability, IMachiningTool, Workpiece, int, Substraction, LayerMillingEngagement, MillingForceBrief, CoolantHeatCondition, CoolantMode, bool, MillingToolPhysicsPack, Action<string>)
did with the thermal step, as data: the state has no message channel, so the caller
that owns one says what needs saying at its own site – the play says
ModelUnavailable once per tool, until a runtime reset, as
Physics-Thermal–ModelUnavailable (MachiningActRunner.ReportThermalModelUnavailable),
the step-physics recompute says its own StepPhysics-Recompute–ThermalSkipped
ahead of its chain – and the quiet outcomes were named where they arose (the tool
change, the session begin). The loop's warning callback carries the tooth-cycle cap
alone. Until 2026-10-15 the state announced the unavailable model itself through that
callback, once per tool and process, and the play labelled it with the cap's id.
public enum ThermalStepOutcome
- Extension Methods
Fields
Skipped: the native thermal session refuses the tool as it is configured – a cutter material without a hardness or wear curve, a thermal layer whose material is not a cutter material (the uncoated insert cutter was one until 2026-10-15) – no managed reference chain serves it either, and nothing else has said so: the caller announces it, once per tool. The thermal and wear values of the chain stay where the tool change, or the last step the model ran on, left them. A chain carrying another node layout than the tool has now (the tool edited with the session alive) is refused by the native step as well; the play and the recompute re-seed such a chain before they ask (ThermalLayoutMatches(IMachiningTool)), so the answer does not reach them for it. A chain that was never seeded is not answered at all: the method throws on it (the pipelines re-arm their tool-change gate so that it does not happen).
NoThermalChain = 1No thermal chain for the tool: a cutter that is not a milling cutter, or a milling cutter whose APT refuses its geometry (no flute envelope). The play and the step-physics recompute both gate their call on the flute envelope and never see this; a caller that does not, such as the NC optimization's thermal-yield probes, receives it.
PhysicsInputsMissing = 3Skipped without a word: a physics input the step needs is missing – no flute, no flute or shank material, no workpiece material, no coolant condition, or no cutting parameter on a step whose tool has no physics pack of its own (no pack, no native step) – named at the session begin, or at the first play start with the physics on, and at the tool change (
MissingPhysicsInputs–*,Tool-FluteMaterial–Missing/–Unreadable,Tool-ShankMaterial–Missing/–Unreadable,Tool-FluteCount–Zero); the native step refuses such a step as well.Served = 0A kernel ran the step: the native thermal session, or the managed reference chain of a dev / test host (whatever it made of the step: a material it refuses leaves the temperatures where they were).
ThermalConstantsNotGiven = 2Skipped without a word: a material the model reads is present with a thermal constant not given (HasThermalConstants), named at the tool change, the session begin, the start of the play and the recompute (
Material-ThermalConstants–NotGiven).