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
@@ -266,8 +266,8 @@ Shank and Flute compose the full cutter.</p>
<a id="Hi_Milling_Cutters_MillingCutter__ctor_" data-uid="Hi.Milling.Cutters.MillingCutter.#ctor*"></a>
<h3 id="Hi_Milling_Cutters_MillingCutter__ctor_System_Xml_Linq_XElement_System_String_System_String_System_IProgress_System_Object__System_Object___" data-uid="Hi.Milling.Cutters.MillingCutter.#ctor(System.Xml.Linq.XElement,System.String,System.String,System.IProgress{System.Object},System.Object[])">
MillingCutter(XElement, string, string, IProgress&lt;object&gt;, object[])
<h3 id="Hi_Milling_Cutters_MillingCutter__ctor_System_Xml_Linq_XElement_System_String_System_String_System_IProgress_Hi_Common_Messages_IMessage__System_Object___" data-uid="Hi.Milling.Cutters.MillingCutter.#ctor(System.Xml.Linq.XElement,System.String,System.String,System.IProgress{Hi.Common.Messages.IMessage},System.Object[])">
MillingCutter(XElement, string, string, IProgress&lt;IMessage&gt;, object[])
</h3>
@@ -276,7 +276,7 @@ Shank and Flute compose the full cutter.</p>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public MillingCutter(XElement src, string baseDirectory, string relFile, IProgress&lt;object&gt; progress, object[] res)</code></pre>
<pre><code class="lang-csharp hljs">public MillingCutter(XElement src, string baseDirectory, string relFile, IProgress&lt;IMessage&gt; progress, object[] res)</code></pre>
</div>
<h4 class="section">Parameters</h4>
@@ -290,7 +290,7 @@ Shank and Flute compose the full cutter.</p>
<dt><code>relFile</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>Relative file path</p>
</dd>
<dt><code>progress</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.iprogress-1">IProgress</a>&lt;<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a>&gt;</dt>
<dt><code>progress</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.iprogress-1">IProgress</a>&lt;<a class="xref" href="Hi.Common.Messages.IMessage.html">IMessage</a>&gt;</dt>
<dd><p>Progress reporter for diagnostic messages emitted during construction.</p>
</dd>
<dt><code>res</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a>[]</dt>
@@ -611,7 +611,10 @@ The sequence starts from surface, i.e. from outer to inner.</p>
</h3>
<div class="markdown level1 summary"><p>Cutting Diameter for calculate cutting speed.</p>
<div class="markdown level1 summary"><p>Cutting Diameter for calculate cutting speed.
Pure computation — deliberately uncached (see <span class="xref">Hi.Milling.Cutters.MillingCutter.SideRakeAngle_rad</span>);
per-step session paths read the value from
<a class="xref" href="Hi.Milling.MillingTools.MillingToolPhysicsPack.html">MillingToolPhysicsPack</a>.</p>
</div>
<div class="markdown level1 conceptual"></div>
@@ -668,38 +671,6 @@ The sequence starts from surface, i.e. from outer to inner.</p>
<a id="Hi_Milling_Cutters_MillingCutter_FluteContourTray_" data-uid="Hi.Milling.Cutters.MillingCutter.FluteContourTray*"></a>
<h3 id="Hi_Milling_Cutters_MillingCutter_FluteContourTray" data-uid="Hi.Milling.Cutters.MillingCutter.FluteContourTray">
FluteContourTray
</h3>
<div class="markdown level1 summary"><p>Gets or sets the flute contour tray that defines the flute geometry.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public IContourTray FluteContourTray { get; set; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="Hi.Milling.FluteContours.IContourTray.html">IContourTray</a></dt>
<dd></dd>
</dl>
<a id="Hi_Milling_Cutters_MillingCutter_FluteHeight_mm_" data-uid="Hi.Milling.Cutters.MillingCutter.FluteHeight_mm*"></a>
<h3 id="Hi_Milling_Cutters_MillingCutter_FluteHeight_mm" data-uid="Hi.Milling.Cutters.MillingCutter.FluteHeight_mm">
@@ -796,6 +767,41 @@ The sequence starts from surface, i.e. from outer to inner.</p>
<a id="Hi_Milling_Cutters_MillingCutter_Fluting_" data-uid="Hi.Milling.Cutters.MillingCutter.Fluting*"></a>
<h3 id="Hi_Milling_Cutters_MillingCutter_Fluting" data-uid="Hi.Milling.Cutters.MillingCutter.Fluting">
Fluting
</h3>
<div class="markdown level1 summary"><p>Gets or sets the cutter's fluting — the whole set of flute contours,
either one shared baseline repeated evenly around the cutter
(<a class="xref" href="Hi.Milling.FluteContours.UniformFluting.html">UniformFluting</a>) or one contour defined per flute
(<a class="xref" href="Hi.Milling.FluteContours.FreeFluting.html">FreeFluting</a>).</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public IFluting Fluting { get; set; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="Hi.Milling.FluteContours.IFluting.html">IFluting</a></dt>
<dd></dd>
</dl>
<a id="Hi_Milling_Cutters_MillingCutter_FullHeight_mm_" data-uid="Hi.Milling.Cutters.MillingCutter.FullHeight_mm*"></a>
<h3 id="Hi_Milling_Cutters_MillingCutter_FullHeight_mm" data-uid="Hi.Milling.Cutters.MillingCutter.FullHeight_mm">
@@ -2278,7 +2284,10 @@ The volume is count from <a class="xref" href="Hi.Milling.Cutters.MillingCutter.
</h3>
<div class="markdown level1 summary"><p>Gets the minimum uncut chip thickness in millimeters for the specified cutting parameters.
The value is dependent on <a class="xref" href="Hi.Milling.Cutters.MillingCutter.html#Hi_Milling_Cutters_MillingCutter_HoneRadius_um">HoneRadius_um</a>.</p>
The value is dependent on <a class="xref" href="Hi.Milling.Cutters.MillingCutter.html#Hi_Milling_Cutters_MillingCutter_HoneRadius_um">HoneRadius_um</a>.
Pure computation — deliberately uncached (see <a class="xref" href="Hi.MillingForces.Fittings.ICuttingPara.html">GetStagnantAngle_rad(ICuttingPara)</a>);
session paths read the value from
<a class="xref" href="Hi.Milling.MillingTools.MillingToolPhysicsPack.html">MillingToolPhysicsPack</a>.</p>
</div>
<div class="markdown level1 conceptual"></div>
@@ -2553,6 +2562,48 @@ The value is dependent on <a class="xref" href="Hi.Milling.Cutters.MillingCutter
<a id="Hi_Milling_Cutters_MillingCutter_GetUpperBeamGeometryIssues_" data-uid="Hi.Milling.Cutters.MillingCutter.GetUpperBeamGeometryIssues*"></a>
<h3 id="Hi_Milling_Cutters_MillingCutter_GetUpperBeamGeometryIssues" data-uid="Hi.Milling.Cutters.MillingCutter.GetUpperBeamGeometryIssues">
GetUpperBeamGeometryIssues()
</h3>
<div class="markdown level1 summary"><p>Collects human-readable configuration issues on the upper-beam / shank
geometry — the settings that used to surface only as an opaque per-step
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.nullreferenceexception">NullReferenceException</a> cascade inside the thermal physics
(e.g. an <a class="xref" href="Hi.Geom.ExtendedCylinder.html">ExtendedCylinder</a> beam whose
<a class="xref" href="Hi.Geom.ExtendedCylinder.html#Hi_Geom_ExtendedCylinder_FullLength">FullLength</a> is below the flute height, so the
shank solid inverts and <span class="xref">Hi.Milling.Cutters.MillingCutter.GetShankThermalZrList()</span> cannot build).
Returns <code>(Id, Message)</code> pairs following the structured-id convention of
the <code>IMessage</code> channel (e.g. <code>Cutter-UpperBeam&ndash;BelowFluteHeight</code>);
empty when no upper beam is configured (a legal state — physics runs without
a shank) or the beam is consistent. Shared by the physics runner (tool-change
<code>ConfigurationError</code>) and the web API (post-edit validation warnings).</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public List&lt;(string Id, string Message)&gt; GetUpperBeamGeometryIssues()</code></pre>
</div>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.generic.list-1">List</a>&lt;(<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.valuetuple-system.string,system.string-.filtertitle">FilterTitle</a>, <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.valuetuple-system.string,system.string-.fileextension">FileExtension</a>)&gt;</dt>
<dd></dd>
</dl>
<a id="Hi_Milling_Cutters_MillingCutter_GetZrList_" data-uid="Hi.Milling.Cutters.MillingCutter.GetZrList*"></a>
<h3 id="Hi_Milling_Cutters_MillingCutter_GetZrList" data-uid="Hi.Milling.Cutters.MillingCutter.GetZrList">