This commit is contained in:
2026-09-17 10:22:49 +08:00
parent bfa3106a69
commit 8f2d00155b
41 changed files with 4244 additions and 698 deletions
@@ -762,6 +762,41 @@ post-run reset.</p>
<a id="Hi_MachiningProcs_LocalProjectService_LastSetupAngleEstimates_" data-uid="Hi.MachiningProcs.LocalProjectService.LastSetupAngleEstimates*"></a>
<h3 id="Hi_MachiningProcs_LocalProjectService_LastSetupAngleEstimates" data-uid="Hi.MachiningProcs.LocalProjectService.LastSetupAngleEstimates">
LastSetupAngleEstimates
</h3>
<div class="markdown level1 summary"><p>Snapshot of the most recent <a class="xref" href="Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_EstimateSetupAngle_Hi_MillingForces_Fittings_SampleFlag_System_Double_System_String_System_Threading_CancellationToken_System_IProgress_Hi_Common_Messages_IMessage__Hi_MillingForces_Fittings_ICuttingPara_">EstimateSetupAngle(SampleFlag, double, string, CancellationToken, IProgress&lt;IMessage&gt;, ICuttingPara)</a> outcome —
one estimate per tool the mapped data covered. Service lifetime,
last-wins; null until the first estimation completes. Like
<a class="xref" href="Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_LastMillingParaTrainResult">LastMillingParaTrainResult</a> it survives <a class="xref" href="Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_ResetRuntime_System_IProgress_Hi_Common_Messages_IMessage__">ResetRuntime(IProgress&lt;IMessage&gt;)</a>.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public List&lt;SetupAngleEstimate&gt; LastSetupAngleEstimates { get; }</code></pre>
</div>
<h4 class="section">Property Value</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="Hi.MillingForces.Training.SetupAngleEstimate.html">SetupAngleEstimate</a>&gt;</dt>
<dd></dd>
</dl>
<a id="Hi_MachiningProcs_LocalProjectService_Logger_" data-uid="Hi.MachiningProcs.LocalProjectService.Logger*"></a>
<h3 id="Hi_MachiningProcs_LocalProjectService_Logger" data-uid="Hi.MachiningProcs.LocalProjectService.Logger">
@@ -2173,6 +2208,63 @@ no-op, for hosts without a setup face (e.g. test stubs).</p>
<a id="Hi_MachiningProcs_LocalProjectService_EstimateSetupAngle_" data-uid="Hi.MachiningProcs.LocalProjectService.EstimateSetupAngle*"></a>
<h3 id="Hi_MachiningProcs_LocalProjectService_EstimateSetupAngle_Hi_MillingForces_Fittings_SampleFlag_System_Double_System_String_System_Threading_CancellationToken_System_IProgress_Hi_Common_Messages_IMessage__Hi_MillingForces_Fittings_ICuttingPara_" data-uid="Hi.MachiningProcs.LocalProjectService.EstimateSetupAngle(Hi.MillingForces.Fittings.SampleFlag,System.Double,System.String,System.Threading.CancellationToken,System.IProgress{Hi.Common.Messages.IMessage},Hi.MillingForces.Fittings.ICuttingPara)">
EstimateSetupAngle(SampleFlag, double, string, CancellationToken, IProgress&lt;IMessage&gt;, ICuttingPara)
</h3>
<div class="markdown level1 summary"><p>Estimates the cutter setup angle from the mapped smart-holder data and a
known cutting parameter (<code class="paramref">knownPara</code>, default
<code>Workpiece.CuttingPara</code> — the same seed <a class="xref" href="Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_ReTrainMillingPara_Hi_MillingForces_Fittings_SampleFlag_System_Double_System_String_System_Threading_CancellationToken_System_IProgress_Hi_Common_Messages_IMessage__">ReTrainMillingPara(SampleFlag, double, string, CancellationToken, IProgress&lt;IMessage&gt;)</a>
uses). Nothing is trained; see <a class="xref" href="Hi.MillingForces.Training.SetupAngleEstimation.html">SetupAngleEstimation</a>.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public List&lt;SetupAngleEstimate&gt; EstimateSetupAngle(SampleFlag sampleFlags, double outlierRatio, string dstRelFile, CancellationToken cancellationToken, IProgress&lt;IMessage&gt; messageProgress = null, ICuttingPara knownPara = null)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>sampleFlags</code> <a class="xref" href="Hi.MillingForces.Fittings.SampleFlag.html">SampleFlag</a></dt>
<dd><p>Channels to use; must include Mx and My.</p>
</dd>
<dt><code>outlierRatio</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
<dd><p>Fraction of the worst-fitting steps trimmed before the final estimate.</p>
</dd>
<dt><code>dstRelFile</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>Optional report file (relative to the project base directory); JSON.</p>
</dd>
<dt><code>cancellationToken</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.threading.cancellationtoken">CancellationToken</a></dt>
<dd><p>Cancellation token.</p>
</dd>
<dt><code>messageProgress</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>Message sink.</p>
</dd>
<dt><code>knownPara</code> <a class="xref" href="Hi.MillingForces.Fittings.ICuttingPara.html">ICuttingPara</a></dt>
<dd><p>The known cutting parameter; null uses <code>Workpiece.CuttingPara</code>.</p>
</dd>
</dl>
<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="Hi.MillingForces.Training.SetupAngleEstimate.html">SetupAngleEstimate</a>&gt;</dt>
<dd><p>The estimates (possibly empty).</p>
</dd>
</dl>
<a id="Hi_MachiningProcs_LocalProjectService_FixedPace_" data-uid="Hi.MachiningProcs.LocalProjectService.FixedPace*"></a>
<h3 id="Hi_MachiningProcs_LocalProjectService_FixedPace_System_Double_System_Double_" data-uid="Hi.MachiningProcs.LocalProjectService.FixedPace(System.Double,System.Double)">