Archived
deploy.
This commit is contained in:
@@ -87,9 +87,32 @@
|
||||
<article data-uid="Equipment/Coolant">
|
||||
<h1 id="coolant">Coolant</h1>
|
||||
|
||||
<p>Models the cutting-zone cooling for the milling temperature FEM. Lives on <a class="xref" href="../../api/Hi.Physics.CoolantHeatCondition.html">CoolantHeatCondition</a><small>(API)</small>; consumed by <a class="xref" href="../../api/Hi.Physics.MillingTemperatureUtil.html">MillingTemperatureUtil</a><small>(API)</small> every simulation step.</p>
|
||||
<p>Two thermal settings sit beside each other in the equipment tree: how the cutting zone is cooled,
|
||||
and how warm the shop is around it. Both feed the milling-temperature model, so they move computed
|
||||
temperatures and everything downstream of them — and setting them needs no heat-transfer numbers at
|
||||
all, because the cooling types ship as ready-made files.</p>
|
||||
<h2 id="where-it-is">Where it is</h2>
|
||||
<p>The General Setup page, at <code>/general-setup</code>, reached from the menu bar's <strong>Page</strong> dropdown.
|
||||
<strong>Background</strong> (<code>/general-setup?tree=equipment/background</code>) and <strong>Coolant</strong>
|
||||
(<code>/general-setup?tree=equipment/coolant</code>) are two leaves of the Control Tree, sitting together
|
||||
between Spindle Capability and Fixture. Both are inert until a project is open: the fields are
|
||||
disabled and the panel says so.</p>
|
||||
<p>The <strong>Coolant</strong> leaf selected on a demo project. The panel under the tree opens with the file row —
|
||||
the <strong>Select</strong> dropdown, the path field reading <em>No coolant file (saved inline)</em>, and <strong>Save As…</strong>
|
||||
— then the read-only <strong>Name</strong> and <strong>Note</strong> of whatever file is loaded, and then the condition's own
|
||||
values. Neither leaf puts anything in the middle column.</p>
|
||||
<p><img src="coolant-img/coolant-leaf.en.png" alt="The Coolant leaf of the Control Tree selected on the General Setup page, its panel showing the Select dropdown and empty file path above read-only Name and Note fields, then a Coolant Temperature of 25 °C and a Flood Convection Coefficient of 1000 W/(m²·K) with the app's own guidance underneath it"></p>
|
||||
<h2 id="pick-a-cooling-type">Pick a cooling type</h2>
|
||||
<p>You do not need to know any heat-transfer numbers to set up cooling. In the Player control tree, open <strong>Equipment Setup → Coolant</strong>, click <strong>Select → Browse Resource…</strong>, and pick the ready-made <code>.CoolantHeatCondition</code> file for the cooling your machine uses — exactly the way a workpiece material file is picked:</p>
|
||||
<p>The three standard cooling types ship as ready-made <code>.CoolantHeatCondition</code> files, so picking one
|
||||
<em>is</em> the cooling-type selection — exactly the way a workpiece material file is picked.</p>
|
||||
<ol>
|
||||
<li>Select the <strong>Coolant</strong> leaf.</li>
|
||||
<li>Open the <strong>Select</strong> dropdown at the left of the file row and choose <strong>Browse Resource…</strong>. It
|
||||
opens the file picker in the shipped library's own coolant folder, so the three files below are
|
||||
what it lists. <strong>Browse…</strong> above it opens the same picker without that jump, which is how a
|
||||
condition you saved yourself is reached.</li>
|
||||
<li>Pick the file that matches the machine.</li>
|
||||
</ol>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
@@ -104,7 +127,7 @@
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>StandardWaterSolubleCoolant</strong></td>
|
||||
<td>Water-based emulsion coolant, the common flood coolant. (A fresh project already carries these values.)</td>
|
||||
<td>Water-based emulsion coolant, the common flood coolant.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>StandardOilBasedCoolant</strong></td>
|
||||
@@ -112,136 +135,74 @@
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<p>Loading a file fills the <strong>Name / Note</strong> and every property field shown below them. For a customized setup, tune the fields directly and keep the result as your own named file with <strong>Save As…</strong> — it can be loaded back later, or from another project.</p>
|
||||
<p>That is the whole end-user setup. Everything below explains what the values mean.</p>
|
||||
<h2 id="nc-program-drives-the-mode">NC program drives the mode</h2>
|
||||
<p>The parser reads M07/M08/M09 into <a class="xref" href="../../api/Hi.Numerical.CoolantMode.html">CoolantMode</a><small>(API)</small> and carries it on every <a class="xref" href="../../api/Hi.MachiningSteps.MachineMotionStep.html">MachineMotionStep</a><small>(API)</small>. The FEM picks the effective convection coefficient at run time from that mode.</p>
|
||||
<p>Loading a file fills the read-only <strong>Name</strong> and <strong>Note</strong> and every value below them, and reports the
|
||||
name it loaded.</p>
|
||||
<p><strong>A project nobody has touched here is not neutral.</strong> Every project carries a coolant condition from
|
||||
the moment it exists, and it starts on the water-soluble numbers — 25 °C, a flood baseline of
|
||||
1000 W/(m²·K), a mist ratio of 0.5 and 50 W/(m²·K) with the coolant off. The read-only <strong>Name</strong> is
|
||||
blank, because no file has been picked, and that blank is the only sign that nobody chose these
|
||||
values. A dry-cutting machine left alone therefore simulates as though it were flooded with
|
||||
water-soluble coolant, and its computed temperatures come out low.</p>
|
||||
<h2 id="the-four-values">The four values</h2>
|
||||
<p>They are visible whether or not a file is loaded, and editing one tunes <em>this project's</em> copy rather
|
||||
than the file it came from. Each carries the app's own working range as a hint:</p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>M-code</th>
|
||||
<th><code>CoolantMode</code></th>
|
||||
<th>Coefficient source</th>
|
||||
<th>Field</th>
|
||||
<th>What it is</th>
|
||||
<th>Range the panel suggests</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><code>M08</code></td>
|
||||
<td><code>Flood</code></td>
|
||||
<td><code>CoolantConvectionCoefficient_Wdm2K</code> (baseline of the chosen type)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>M07</code></td>
|
||||
<td><code>Mist</code></td>
|
||||
<td>baseline × <code>MistFloodConvectionRatio</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>M09</code></td>
|
||||
<td><code>Off</code></td>
|
||||
<td><code>OffConvectionCoefficient_Wdm2K</code></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<p>Before the first M07/M08/M09 the mode is <code>UnDefined</code>; the FEM treats it as <code>Off</code>.</p>
|
||||
<p>For <strong>StandardForcedAir</strong> (dry cutting) the machine has no liquid circuit, so even <code>M08</code> only means “air blast on” — its flood baseline is an air-blast coefficient, not a liquid one.</p>
|
||||
<h2 id="what-each-shipped-file-sets">What each shipped file sets</h2>
|
||||
<p>Each shipped cooling type is also a static preset on <a class="xref" href="../../api/Hi.Physics.CoolantHeatCondition.html">CoolantHeatCondition</a><small>(API)</small> (<code>StandardForcedAir</code>, <code>StandardWaterSolubleCoolant</code>, <code>StandardOilBasedCoolant</code>) — the same pattern as <code>WorkpieceMaterial.Al6061T6</code>; the resource files are generated from them:</p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Preset / file</th>
|
||||
<th>Flood baseline W/(m²·K)</th>
|
||||
<th>Mist ratio</th>
|
||||
<th>Off W/(m²·K)</th>
|
||||
<th>Temperature °C</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><code>StandardForcedAir</code></td>
|
||||
<td>100</td>
|
||||
<td>0.5</td>
|
||||
<td>50</td>
|
||||
<td>25</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>StandardWaterSolubleCoolant</code></td>
|
||||
<td>1 000</td>
|
||||
<td>0.5</td>
|
||||
<td>50</td>
|
||||
<td>25</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>StandardOilBasedCoolant</code></td>
|
||||
<td>300</td>
|
||||
<td>0.5</td>
|
||||
<td>50</td>
|
||||
<td>25</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<p>The baselines are engineering defaults from the literature ranges below; when you have dynamometer / thermocouple data for your own system, tune the fields and save your own file instead. API side: <code>ApplyPreset</code> copies a preset in place; <code>MatchStandardPreset</code> maps values back to a preset name.</p>
|
||||
<h2 id="properties">Properties</h2>
|
||||
<p>These are the fields shown under Name / Note in the Coolant panel:</p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Property</th>
|
||||
<th>Default</th>
|
||||
<th>Notes</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><code>CoolantTemperature_C</code></td>
|
||||
<td>25</td>
|
||||
<td>Room temperature inside the enclosure.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>CoolantConvectionCoefficient_Wdm2K</code></td>
|
||||
<td>1 000</td>
|
||||
<td>Flood baseline. Water-based emulsion ≈ 1 000–3 000, oil ≈ 100–500, forced air ≈ 10–500.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>MistFloodConvectionRatio</code></td>
|
||||
<td>0.5</td>
|
||||
<td>MQL is roughly half the heat removal of flood. See below.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>OffConvectionCoefficient_Wdm2K</code></td>
|
||||
<td>50</td>
|
||||
<td>Forced air inside a running enclosure. Natural air ≈ 5–25.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>Name</code> / <code>Note</code></td>
|
||||
<td><strong>Coolant Temperature</strong> (°C)</td>
|
||||
<td>The temperature of the coolant as it arrives at the cut</td>
|
||||
<td>—</td>
|
||||
<td>From the loaded file / preset; <strong>Save As…</strong> renames the condition after the file. Legacy projects without a name still work.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>Flood Convection Coefficient</strong> (W/(m²·K))</td>
|
||||
<td>Heat removal with the coolant on</td>
|
||||
<td>Forced air 10–500; typical liquid coolant 1000–10000</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>Mist / Flood Ratio</strong></td>
|
||||
<td>Mist heat removal relative to flood</td>
|
||||
<td>Typically 0.4–0.8</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>Off (Air) Convection Coefficient</strong> (W/(m²·K))</td>
|
||||
<td>Heat removal with the coolant off</td>
|
||||
<td>Natural air 5–25; forced air inside an enclosure about 50</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h2 id="why-the-mist-ratio-defaults-to-05">Why the mist ratio defaults to 0.5</h2>
|
||||
<p>MQL removes much less heat than flood because a thin oil aerosol has a tiny thermal mass; its main value is lubrication plus evaporative cooling, not convection. Industry handbooks place it at <strong>roughly half of flood</strong>, which gives the conservative default <code>0.5</code>. Override it when you have dynamometer / thermocouple data for your own MQL system.</p>
|
||||
<div class="NOTE">
|
||||
<h5>Note</h5>
|
||||
<p>Further reading: UNIST <em>MQL Handbook</em> (source of the “about half” rule), ANEBON mist-vs-flood AISI 1045 tests, Mukesh et al. <em>IEJ</em> May 2023 review on sustainable machining. Use these only to dig deeper — the <code>0.5</code> default is already calibrated from them.</p>
|
||||
</div>
|
||||
<h2 id="coolant-files-workpiecematerial-pattern">Coolant files (WorkpieceMaterial pattern)</h2>
|
||||
<p><code>MachiningEquipment.CoolantHeatConditionFile</code> tracks an optional <code>.CoolantHeatCondition</code> side-file, exactly like <code>Workpiece.WorkpieceMaterialFile</code> tracks a material file:</p>
|
||||
<p>Negative temperatures are accepted, for cryogenic coolant; the three convection coefficients cannot
|
||||
go below zero.</p>
|
||||
<p>Which of the three coefficients is in force at any moment is not decided here — the NC program's own
|
||||
M07 / M08 / M09 decide it, step by step. That, and what the numbers do to the simulation, are
|
||||
<a class="xref" href="../../technique/milling-physics/coolant-model.html">Coolant Model</a>.</p>
|
||||
<h2 id="keeping-a-tuned-condition">Keeping a tuned condition</h2>
|
||||
<p><strong>Save As…</strong> writes the current values out as a <code>.CoolantHeatCondition</code> file in the project folder
|
||||
and starts tracking it, so the project saves a reference to the file instead of a copy of the
|
||||
values. It offers a name taken from the loaded condition; a file picked from the shipped library
|
||||
loses its <code>.default</code> marker on the way, because that marker means <em>shipped</em> and a file you saved is
|
||||
yours.</p>
|
||||
<p>The result is loadable into the next project through the same <strong>Select</strong> dropdown — which is the
|
||||
point of saving one: a shop with its own measured coolant performance describes it once.</p>
|
||||
<h2 id="background-temperature">Background temperature</h2>
|
||||
<p>The <strong>Background</strong> leaf carries a single field, <strong>Background Temperature</strong> in °C: the surrounding
|
||||
temperature the thermal model works against. It defaults to 25 °C, it belongs to the project exactly
|
||||
as the coolant condition does, and it is read by the same milling-temperature model and by the feed
|
||||
optimizer, so it is not a display setting.</p>
|
||||
<p>Set it to the shop's real ambient. There is no file to load and nothing else to configure: one
|
||||
number, applied to the whole project.</p>
|
||||
<h2 id="see-also">See Also</h2>
|
||||
<ul>
|
||||
<li><strong>No file (default):</strong> the condition serializes inline in the <code>.hincproj</code>, byte-compatible with pre-pattern readers.</li>
|
||||
<li><strong>File tracked:</strong> the project save externalizes the condition as <code><CoolantHeatCondition><XmlSource>relPath</XmlSource></CoolantHeatCondition></code> and (re)writes the side-file. Loading a file installs it in place of the current condition and records the reference (<code>XFactory.GenByFile<CoolantHeatCondition></code>); a file loaded from the resource folder is copied into the project on the next save (self-contained project root).</li>
|
||||
<li><a class="xref" href="../../technique/milling-physics/coolant-model.html">Coolant Model</a> — the coefficients, the M-code that selects one, the shipped presets and the file format</li>
|
||||
<li><a class="xref" href="../../anatomy/general-setup/background-coolant.html">Background / Coolant Page</a> — the Control-Tree editor for these values, field by field</li>
|
||||
<li><a href="index.html">Setup</a> — the rest of the pre-simulation configuration</li>
|
||||
</ul>
|
||||
<h2 id="xml">XML</h2>
|
||||
<pre><code class="lang-xml"><CoolantHeatCondition>
|
||||
<Name>StandardOilBasedCoolant</Name>
|
||||
<Note>Oil-based cutting fluid (neat oil).</Note>
|
||||
<CoolantTemperature_C>25</CoolantTemperature_C>
|
||||
<CoolantConvectionCoefficient_Wdm2K>300</CoolantConvectionCoefficient_Wdm2K>
|
||||
<MistFloodConvectionRatio>0.5</MistFloodConvectionRatio>
|
||||
<OffConvectionCoefficient_Wdm2K>50</OffConvectionCoefficient_Wdm2K>
|
||||
</CoolantHeatCondition>
|
||||
</code></pre>
|
||||
<p><code>Name</code>/<code>Note</code> are optional (pre-preset files omit them); omit the last two elements to accept the defaults. The same element saved standalone is the <code>.CoolantHeatCondition</code> file format; inside a <code>.hincproj</code> it may instead appear as the <code><XmlSource></code> reference shown above.</p>
|
||||
|
||||
</article>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user