deploy webservice static-file routing for docsite folder URLs, per-instance step-cache db, and constant-height panel title bars.

This commit is contained in:
2026-08-27 14:51:37 +08:00
parent 1fc510af5e
commit 2a98ae7556
1468 changed files with 182837 additions and 18888 deletions
@@ -2,9 +2,9 @@
<html>
<head>
<meta charset="utf-8">
<title>Background / Coolant Page | HiAPI-C# 2025 </title>
<title>Background / Coolant (Control Tree) | HiAPI-C# 2025 </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Background / Coolant Page | HiAPI-C# 2025 ">
<meta name="title" content="Background / Coolant (Control Tree) | HiAPI-C# 2025 ">
<link rel="icon" href="../../img/HiAPI.favicon.ico">
@@ -85,34 +85,36 @@
</div>
<article data-uid="">
<h1 id="background--coolant-page">Background / Coolant Page</h1>
<h1 id="background--coolant-control-tree">Background / Coolant (Control Tree)</h1>
<p>The Background / Coolant page edits three thermal scalars on the current project's <a class="xref" href="../../api/Hi.Machining.MachiningEquipmentUtils.MachiningEquipment.html">MachiningEquipment</a>:</p>
<p>Background and Coolant are two leaves under the Player control tree's <strong>Equipment Setup</strong> group (<code>/player?tree=equipment/background</code>, <code>/player?tree=equipment/coolant</code>), sharing one panel component. They edit the thermal condition on the current project's <a class="xref" href="../../api/Hi.Machining.MachiningEquipmentUtils.MachiningEquipment.html">MachiningEquipment</a>:</p>
<ul>
<li><a class="xref" href="../../api/Hi.Machining.MachiningEquipmentUtils.MachiningEquipment.html#Hi_Machining_MachiningEquipmentUtils_MachiningEquipment_BackgroundTemperature_C">BackgroundTemperature_C</a></li>
<li><code>CoolantHeatCondition.CoolantTemperature_C</code></li>
<li><code>CoolantHeatCondition.CoolantConvectionCoefficient_Wdm2K</code></li>
<li><a class="xref" href="../../api/Hi.Machining.MachiningEquipmentUtils.MachiningEquipment.html#Hi_Machining_MachiningEquipmentUtils_MachiningEquipment_BackgroundTemperature_C">BackgroundTemperature_C</a> (Background leaf)</li>
<li>the whole <a class="xref" href="../../api/Hi.Physics.CoolantHeatCondition.html">CoolantHeatCondition</a> (Coolant leaf) — preset-first, see below</li>
</ul>
<p>Key Model: <a class="xref" href="../../api/Hi.Machining.MachiningEquipmentUtils.MachiningEquipment.html">MachiningEquipment</a> (+ its <code>CoolantHeatCondition</code>).</p>
<div class="NOTE">
<h5>Note</h5>
<p>This page exists only in the Quasar webservice. The WPF desktop app has no equivalent; the values are edited via scripting or XML.</p>
<p>These leaves exist only in the Quasar webservice. The WPF desktop app has no equivalent; the values are edited via scripting or XML.</p>
</div>
<h2 id="layout">Layout</h2>
<ul>
<li>Background / Coolant Page
<ul>
<li>Background Card
<li>Background leaf
<ul>
<li>Background Temperature NumberField (°C) — <a class="xref" href="../../api/Hi.Machining.MachiningEquipmentUtils.MachiningEquipment.html#Hi_Machining_MachiningEquipmentUtils_MachiningEquipment_BackgroundTemperature_C">BackgroundTemperature_C</a>.</li>
</ul>
</li>
<li>Coolant Card
<li>Coolant leaf (pure WorkpieceMaterial layout — file pick on top, properties below)
<ul>
<li>&ldquo;Not attached&rdquo; badge — visible until the first coolant-related save (see <em>Lazy CoolantHeatCondition creation</em> below).</li>
<li>Coolant Temperature NumberField (°C) — <code>CoolantHeatCondition.CoolantTemperature_C</code>.</li>
<li>Coolant Convection Coefficient NumberField (W/(m²·K)) — <code>CoolantHeatCondition.CoolantConvectionCoefficient_Wdm2K</code>. Clamped to <code>min: 0</code>.</li>
<li>Sanity-range hint — echoes the table from <code>CoolantHeatCondition.cs</code> doc-comments (forced air 10–500, typical coolant 1000–10000).</li>
<li><strong>File row</strong> — <code>FilePathInput</code> (<code>.CoolantHeatCondition</code>, resource subfolder <code>CoolantHeatCondition</code>) loading a saved condition by named root, plus a <strong>Save As&hellip;</strong> prompt exporting the current condition to a project-relative file. Tracked in <code>MachiningEquipment.CoolantHeatConditionFile</code>. The three standard cooling types ship as ready-made files in <code>HiNc-Resource</code> (<code>Resource/CoolantHeatCondition/*.CoolantHeatCondition</code>), so <strong>Browse Resource&hellip;</strong> starts populated like the workpiece-material picker — picking a shipped file <em>is</em> the cooling-type selection.</li>
<li>Name / Note — read-only mirror of the loaded condition.</li>
<li>Property fields (always visible, under Name / Note):
<ul>
<li>Coolant Temperature (°C) — <code>CoolantTemperature_C</code>.</li>
<li>Flood Convection Coefficient (W/(m²·K)) — <code>CoolantConvectionCoefficient_Wdm2K</code>, <code>min: 0</code>.</li>
<li>Mist / Flood Ratio — <code>MistFloodConvectionRatio</code>, <code>min: 0</code>.</li>
<li>Off (Air) Convection Coefficient (W/(m²·K)) — <code>OffConvectionCoefficient_Wdm2K</code>, <code>min: 0</code>.</li>
</ul>
</li>
</ul>
@@ -120,10 +122,11 @@
</ul>
<h2 id="behavior">Behavior</h2>
<ul>
<li><strong>Lazy <code>CoolantHeatCondition</code> creation.</strong> If the machining equipment has no <code>CoolantHeatCondition</code> yet, the first write lazy-creates one server-side so the page can edit a fresh project before the operator explicitly attaches a coolant condition. The &ldquo;not attached&rdquo; badge disappears once the first value is saved.</li>
<li><strong>File-based conditions (WorkpieceMaterial pattern).</strong> Picking a <code>.CoolantHeatCondition</code> file installs it as the whole condition (<code>XFactory.GenByFile</code>); <strong>Save As&hellip;</strong> exports the current values and renames the condition after the file (<code>IPreferredFileName</code>). While <code>MachiningEquipment.CoolantHeatConditionFile</code> is set, the project save externalizes the condition as <code>&lt;CoolantHeatCondition&gt;&lt;XmlSource&gt;relPath&lt;/XmlSource&gt;&lt;/CoolantHeatCondition&gt;</code> and regenerates the side-file (a resource pick is copied into the project on save); with no file the legacy bare inline shape is kept byte-compatible. Coefficient edits tune <em>this project's</em> copy. The static presets on <code>CoolantHeatCondition</code> (<code>StandardPresets</code> / <code>ApplyPreset</code> / <code>MatchStandardPreset</code>) remain the API-side source of the shipped files.</li>
<li><strong>Lazy <code>CoolantHeatCondition</code> creation.</strong> If the machining equipment has no <code>CoolantHeatCondition</code> yet, the first write lazy-creates one server-side so the panel can edit a fresh project before the operator explicitly attaches a coolant condition. The &ldquo;not attached&rdquo; badge disappears once the first value is saved.</li>
<li><strong>Celsius is the wire format.</strong> <code>CoolantHeatCondition</code> stores Kelvin internally but exposes <code>_C</code> getters that handle the conversion.</li>
<li><strong>No file IO.</strong> Background / coolant settings are part of the <code>.hincproj</code> save; there's no separate file to load.</li>
<li><strong>Infinity round-trip.</strong> <code>NumericInput</code> handles <code>Infinity</code> for free. Background and coolant temperatures allow negatives (e.g. -40 °C for cryogenic coolant); the convection coefficient is clamped to <code>min: 0</code>.</li>
<li><strong>No file IO.</strong> Background / coolant settings are part of the <code>.hincproj</code> save; there's no separate file to load. A fresh project value-matches <code>StandardWaterSolubleCoolant</code> (the class defaults), so the select starts on a meaningful entry instead of &ldquo;Custom&rdquo;.</li>
<li><strong>Infinity round-trip.</strong> <code>NumericInput</code> handles <code>Infinity</code> for free. Background and coolant temperatures allow negatives (e.g. -40 °C for cryogenic coolant); the convection fields are clamped to <code>min: 0</code>.</li>
</ul>
<h2 id="source-code-path">Source Code Path</h2>
<p>See <a href="../index.html">HiNC App Anatomy</a> for git repository links.</p>
@@ -134,22 +137,23 @@
<h3 id="web-page-application-source-code-path">Web Page Application Source Code Path</h3>
<p>HiNC-2025-webservice (Quasar CLI SPA):</p>
<ul>
<li><code>wwwroot-src/src/pages/BackgroundCoolantPage.vue</code> — routed page at <code>/equipment/background-coolant</code>.</li>
<li><code>wwwroot-src/src/components/controlTree/ThermalConditionPanel.vue</code> — the shared Background / Coolant panel (keyed off the node's role path).</li>
<li><code>wwwroot-src/src/components/controlTree/useControlTreeHost.ts</code> — the two <code>ThermalCondition</code> tree nodes under the Equipment Setup group.</li>
<li><code>wwwroot-src/src/api/backgroundCoolant.ts</code> — typed wrapper over <code>/api/mech/background-coolant/*</code>.</li>
<li><code>wwwroot-src/src/router/routes.ts</code> — <code>/equipment/background-coolant</code> entry.</li>
<li><code>wwwroot-src/src/layouts/AppMenuBar.vue</code> — <code>Environment → Background / Coolant</code> menu entry below Workpiece.</li>
<li><code>Mech/BackgroundCoolantController.cs</code> — REST endpoints:
<ul>
<li><code>GET /api/mech/background-coolant</code> — flat snapshot <code>{ hasEquipment, backgroundTemperature_C, hasCoolant, coolantTemperature_C, coolantConvectionCoefficient_Wdm2K }</code>.</li>
<li><code>GET /api/mech/background-coolant</code> — flat snapshot <code>{ hasEquipment, backgroundTemperature_C, hasCoolant, coolantTemperature_C, coolantConvectionCoefficient_Wdm2K, mistFloodConvectionRatio, offConvectionCoefficient_Wdm2K, coolantName, coolantNote, coolantHeatConditionFile }</code>.</li>
<li><code>POST /load</code>, <code>POST /save-as</code> — <code>{ rootName, relFile }</code>: install a <code>.CoolantHeatCondition</code> file / export the current condition (extension auto-appended, renames via <code>IPreferredFileName</code>), both recording <code>MachiningEquipment.CoolantHeatConditionFile</code>.</li>
<li><code>PUT /background-temperature-c</code> — set <a class="xref" href="../../api/Hi.Machining.MachiningEquipmentUtils.MachiningEquipment.html#Hi_Machining_MachiningEquipmentUtils_MachiningEquipment_BackgroundTemperature_C">BackgroundTemperature_C</a>.</li>
<li><code>PUT /coolant-temperature-c</code> — lazy-creates <code>CoolantHeatCondition</code> if needed, then sets <code>CoolantTemperature_C</code>.</li>
<li><code>PUT /coolant-convection-coefficient-wdm2k</code> — same pattern for the heat-transfer coefficient.</li>
<li><code>PUT /coolant-convection-coefficient-wdm2k</code>, <code>PUT /mist-flood-convection-ratio</code>, <code>PUT /off-convection-coefficient-wdm2k</code> — same pattern for the three convection values (Custom mode).</li>
</ul>
</li>
</ul>
<h2 id="related-pages">Related Pages</h2>
<ul>
<li><a href="spindle-capability-page.html">Spindle Capability Page</a> — sibling under <code>Environment</code>, also targets <code>MachiningEquipment</code>.</li>
<li><a href="spindle-capability-page.html">Spindle Capability Page</a> — sibling equipment editor, also targets <code>MachiningEquipment</code>.</li>
<li><a href="../../manual/setup/coolant.html">Coolant (manual)</a> — the end-user / API manual page for the cooling types.</li>
</ul>
</article>