Class CoolantHeatCondition
Represents the heat condition parameters for coolant in machining operations. Provides effective convection-coefficient lookups keyed by CoolantMode — Flood uses the configured baseline CoolantConvectionCoefficient_Wdm2K; Mist scales it by MistFloodConvectionRatio; Off falls back to OffConvectionCoefficient_Wdm2K (natural/forced air). Named standard presets (StandardForcedAir, StandardWaterSolubleCoolant, StandardOilBasedCoolant) bundle all coefficients so end users can pick a cooling type by name instead of entering convection coefficients; MatchStandardPreset() maps a configured instance back to the preset it equals.
public class CoolantHeatCondition : IMakeXmlSource, INameNote, IPreferredFileName
- Inheritance
-
CoolantHeatCondition
- Implements
- Inherited Members
- Extension Methods
Constructors
CoolantHeatCondition()
Initializes a new instance of the CoolantHeatCondition class.
public CoolantHeatCondition()
CoolantHeatCondition(XElement)
Initializes a new instance of the CoolantHeatCondition class from XML data.
public CoolantHeatCondition(XElement src)
Parameters
srcXElementThe XML element containing coolant heat condition data.
Fields
CustomName
Reserved Name marking an explicitly customized condition; see MatchStandardPreset().
public const string CustomName = "Custom"
Field Value
Properties
CoolantConvectionCoefficient_Wdm2K
Gets or sets the coolant heat transfer coefficient (flood baseline) in Watts per square meter per Kelvin.
public double CoolantConvectionCoefficient_Wdm2K { get; set; }
Property Value
Remarks
Common value: forced air: 10~500; coolant: 1e3~1e4 (ref by “Effects of coolant on temperature distribution in metal machining”, 1988) coolant: 1e3 (ref by “Modeling heat transfer in die milling”, 2014)
CoolantConvectionCoefficient_Wdmm2K
Gets or sets the coolant heat transfer coefficient (flood baseline) in Watts per square millimeter per Kelvin.
public double CoolantConvectionCoefficient_Wdmm2K { get; set; }
Property Value
CoolantTemperature_C
Gets or sets the coolant temperature in Celsius.
public double CoolantTemperature_C { get; set; }
Property Value
CoolantTemperature_K
Gets or sets the coolant temperature in Kelvin.
public double CoolantTemperature_K { get; set; }
Property Value
MistFloodConvectionRatio
Convection-coefficient ratio of mist coolant (MQL) relative to flood coolant. Applied multiplicatively to CoolantConvectionCoefficient_Wdm2K when the current CoolantMode is Mist.
public double MistFloodConvectionRatio { get; set; }
Property Value
Remarks
Default 0.5. Industry handbooks place MQL at roughly half the
heat removal of flood coolant — UNIST MQL Handbook: “actual heat
removal is generally about half of that removed by a flood coolant”.
Empirical milling / turning measurements on AISI 1045 steel give
ΔT_flood ≈ 230 °C vs ΔT_mist ≈ 170 °C relative to dry (Mist ≈ 0.74
of flood), while tool-life / surface-finish studies on aluminium and
titanium range 0.4–0.8. The single-number 0.5 default is the
conservative midpoint; projects that characterise their own MQL
system should override via XML.
Name
Gets or sets the name of the coolant condition. Standard presets carry
their preset name (e.g. “StandardWaterSolubleCoolant”); set to
CustomName to mark the condition as explicitly customized
(which makes MatchStandardPreset() return null even
when the coefficients happen to equal a preset). null/empty on
legacy projects that predate naming.
public string Name { get; set; }
Property Value
Note
Gets or sets additional notes about the coolant condition.
public string Note { get; set; }
Property Value
OffConvectionCoefficient_Wdm2K
Gets or sets the convection coefficient when coolant is off (ambient air / forced blow-off), in Watts per square meter per Kelvin.
public double OffConvectionCoefficient_Wdm2K { get; set; }
Property Value
Remarks
Natural convection in still air is ~5–25 W/(m²·K); forced air
(shop blow-off / chip conveyor draft) falls in 10–500 W/(m²·K).
Default 50 W/(m²·K) represents a mild forced-air environment
typical of a running machine enclosure.
PreferredFileName
Gets or sets the preferred file name for this object when generating or saving files.
public string PreferredFileName { get; set; }
Property Value
StandardForcedAir
Forced-air / dry cutting: air blast only, no liquid coolant. Even when the NC program turns coolant on (M07/M08), the machine only blows air, so the flood baseline is an air-blast coefficient.
public static CoolantHeatCondition StandardForcedAir { get; }
Property Value
Remarks
Coefficients are engineering estimates from the ranges documented on CoolantConvectionCoefficient_Wdm2K and OffConvectionCoefficient_Wdm2K (forced air 10–500 W/(m²·K)); override via XML when characterised data is available.
StandardOilBasedCoolant
Oil-based (neat oil) cutting fluid: better lubrication, noticeably lower heat removal than water-based emulsion.
public static CoolantHeatCondition StandardOilBasedCoolant { get; }
Property Value
Remarks
Flood baseline 300 W/(m²·K) sits in the documented straight-oil range (roughly 100–500 W/(m²·K)); override via XML when characterised data is available.
StandardPresets
The named standard presets, in menu order. Each access returns fresh instances (same as Al6061T6), so callers may mutate the result freely.
public static IReadOnlyList<CoolantHeatCondition> StandardPresets { get; }
Property Value
StandardWaterSolubleCoolant
Water-soluble (water-based emulsion) cutting fluid — the common flood coolant. Matches this class's field defaults, so an unconfigured condition reads as this preset.
public static CoolantHeatCondition StandardWaterSolubleCoolant { get; }
Property Value
Remarks
Flood baseline 1000 W/(m²·K) is the literature-backed default (see CoolantConvectionCoefficient_Wdm2K; water-based emulsion spans roughly 1000–3000).
XName
Name for XML IO.
public static string XName { get; }
Property Value
Methods
ApplyPreset(CoolantHeatCondition)
Copies all values (name, note, temperature and the three convection
values) from preset into this instance, in place —
existing references (e.g. a live
MachiningEquipment.CoolantHeatCondition) keep observing the
updated condition.
public void ApplyPreset(CoolantHeatCondition preset)
Parameters
presetCoolantHeatCondition
FindStandardPreset(string)
Finds the standard preset with the given Name, or
null when the name is not a standard preset name (including
CustomName and null).
public static CoolantHeatCondition FindStandardPreset(string name)
Parameters
namestring
Returns
GetEffectiveConvectionCoefficient_Wdm2K(CoolantMode)
Gets the effective convection coefficient for the given coolant mode in Watts per square meter per Kelvin.
public double GetEffectiveConvectionCoefficient_Wdm2K(CoolantMode mode)
Parameters
modeCoolantMode
Returns
GetEffectiveConvectionCoefficient_Wdmm2K(CoolantMode)
Mode-dependent convection coefficient in Watts per square millimetre per Kelvin (direct input to the FEM layer). See GetEffectiveConvectionCoefficient_Wdm2K(CoolantMode).
public double GetEffectiveConvectionCoefficient_Wdmm2K(CoolantMode mode)
Parameters
modeCoolantMode
Returns
MakeXmlSource(string, string, bool)
Creates an XML representation of the object. This method may also generate additional resources such as related files.
public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly)
Parameters
baseDirectorystringThe base directory for resolving relative paths
relFilestringThe relative file path for the XML source
exhibitionOnlyboolif true, the extended file creation is suppressed.
Returns
- XElement
An XML element representing the object's state
Remarks
For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied.
The baseDirectory is typically the folder at the nearest configuration file folder.
Since the folder can be moving with the configuration file.
MatchStandardPreset()
Returns the standard preset whose three convection values
(CoolantConvectionCoefficient_Wdm2K,
MistFloodConvectionRatio,
OffConvectionCoefficient_Wdm2K) exactly equal this
instance's, or null when none matches or Name is
CustomName. CoolantTemperature_C is
intentionally excluded — temperature is an independent setting that a
user may tune without leaving the preset.
public CoolantHeatCondition MatchStandardPreset()
Returns
Reg(XFactory)
Registers this type's deserializer with the given XFactory
(or Default when factory is
null). Idempotent.
public static void Reg(XFactory factory = null)
Parameters
factoryXFactory