Archived
deploy.
This commit is contained in:
@@ -1074,7 +1074,8 @@ task representing this disposal (see <a class="xref" href="Hi.Cbtr.CubeTree.html
|
||||
|
||||
<div class="markdown level1 summary"><p>Enqueues disposal of objects retired alongside a tree (typically its attachments) on
|
||||
the SAME serialized chain as <a class="xref" href="Hi.Cbtr.CubeTree.html#Hi_Cbtr_CubeTree_DisposeBackground">DisposeBackground()</a>, so there is a single
|
||||
drain point (<a class="xref" href="Hi.Cbtr.CubeTree.html#Hi_Cbtr_CubeTree_WaitForPendingDisposals">WaitForPendingDisposals()</a>). Disposing a <a class="xref" href="Hi.Cbtr.CbtrPickable.html">CbtrPickable</a>
|
||||
drain point (<a class="xref" href="Hi.Cbtr.CubeTree.html#Hi_Cbtr_CubeTree_DrainAndCloseBackgroundDisposals">DrainAndCloseBackgroundDisposals()</a> at application end,
|
||||
<a class="xref" href="Hi.Cbtr.CubeTree.html#Hi_Cbtr_CubeTree_WaitForPendingDisposals">WaitForPendingDisposals()</a> for a snapshot). Disposing a <a class="xref" href="Hi.Cbtr.CbtrPickable.html">CbtrPickable</a>
|
||||
now clears its (possibly huge) attached node map — O(nodes) — which must not run on the
|
||||
hot path. Enqueue the owning tree's <a class="xref" href="Hi.Cbtr.CubeTree.html#Hi_Cbtr_CubeTree_DisposeBackground">DisposeBackground()</a> <em>first</em> so the
|
||||
gated tree teardown (which waits out in-flight renders) runs before its attachments are freed.</p>
|
||||
@@ -1107,6 +1108,67 @@ gated tree teardown (which waits out in-flight renders) runs before its attachme
|
||||
|
||||
|
||||
|
||||
<a id="Hi_Cbtr_CubeTree_DrainAndCloseBackgroundDisposals_" data-uid="Hi.Cbtr.CubeTree.DrainAndCloseBackgroundDisposals*"></a>
|
||||
|
||||
<h3 id="Hi_Cbtr_CubeTree_DrainAndCloseBackgroundDisposals" data-uid="Hi.Cbtr.CubeTree.DrainAndCloseBackgroundDisposals">
|
||||
DrainAndCloseBackgroundDisposals()
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p><a class="xref" href="Hi.Cbtr.CubeTree.html#Hi_Cbtr_CubeTree_DrainBackgroundDisposals">DrainBackgroundDisposals()</a>, then closes the chain: every
|
||||
<a class="xref" href="Hi.Cbtr.CubeTree.html#Hi_Cbtr_CubeTree_DisposeBackground">DisposeBackground()</a> from here on frees inline on its caller.
|
||||
Call it once at application end, before the native library is torn down –
|
||||
after it, no disposal can be left running on a thread nobody waits for.</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public static void DrainAndCloseBackgroundDisposals()</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a id="Hi_Cbtr_CubeTree_DrainBackgroundDisposals_" data-uid="Hi.Cbtr.CubeTree.DrainBackgroundDisposals*"></a>
|
||||
|
||||
<h3 id="Hi_Cbtr_CubeTree_DrainBackgroundDisposals" data-uid="Hi.Cbtr.CubeTree.DrainBackgroundDisposals">
|
||||
DrainBackgroundDisposals()
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>Blocks until the background disposal chain is empty – including entries queued
|
||||
by other threads while it was waiting, which a single
|
||||
<a class="xref" href="Hi.Cbtr.CubeTree.html#Hi_Cbtr_CubeTree_WaitForPendingDisposals">WaitForPendingDisposals()</a> snapshot does not cover. A drain that can
|
||||
return with work still queued is not a drain; the callers that queue at shutdown
|
||||
are stopped by the host before this runs (see <a class="xref" href="Hi.Cbtr.CubeTree.html#Hi_Cbtr_CubeTree_DrainAndCloseBackgroundDisposals">DrainAndCloseBackgroundDisposals()</a>).</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public static void DrainBackgroundDisposals()</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a id="Hi_Cbtr_CubeTree_ExpandToBox3d_" data-uid="Hi.Cbtr.CubeTree.ExpandToBox3d*"></a>
|
||||
|
||||
<h3 id="Hi_Cbtr_CubeTree_ExpandToBox3d_Hi_Geom_Box3d_" data-uid="Hi.Cbtr.CubeTree.ExpandToBox3d(Hi.Geom.Box3d)">
|
||||
@@ -1829,8 +1891,9 @@ This function put <code class="paramref">src</code> to the nodes that contain nu
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>A task that completes when all queued background disposals have finished.
|
||||
Await this at application shutdown before the native dll is unloaded.</p>
|
||||
<div class="markdown level1 summary"><p>A task that completes when every background disposal queued SO FAR has finished -
|
||||
a snapshot: anything queued after the call is not covered. Application end must
|
||||
use <a class="xref" href="Hi.Cbtr.CubeTree.html#Hi_Cbtr_CubeTree_DrainAndCloseBackgroundDisposals">DrainAndCloseBackgroundDisposals()</a> instead.</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
|
||||
@@ -1415,8 +1415,9 @@ when API users drag a picked object via <a class="xref" href="Hi.Disp.Pickable.h
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>Elegantly end the rendering core.
|
||||
Probably not essential.</p>
|
||||
<div class="markdown level1 summary"><p>Ends the rendering core for the rest of the process: disposes every live
|
||||
engine, raises <a class="xref" href="Hi.Disp.DispEngine.html#Hi_Disp_DispEngine_FinishingDisp">FinishingDisp</a>, stops the display thread.
|
||||
Call it once, after everything that renders has been stopped.</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
|
||||
@@ -339,7 +339,14 @@ Class LocalApp
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>Cleans up the application by stopping services and logging out licenses.</p>
|
||||
<div class="markdown level1 summary"><p>Cleans up the application by stopping services and logging out licenses.
|
||||
Call it LAST – after the host has stopped serving and disposed everything
|
||||
that drives the native core (display engines, the project service with its
|
||||
play and workpiece trees). On Linux, exit() runs the native library's static
|
||||
destructors while any thread still inside it keeps running, so every native
|
||||
caller has to be finished before Main returns; hooking this at the START of
|
||||
a host's shutdown (ASP.NET Core's ApplicationStopping) is what crashed
|
||||
HiNC-1 on four deploy stops in 2026-09.</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
|
||||
@@ -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<IMessage>, 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<IMessage>)</a>.</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public List<SetupAngleEstimate> 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><<a class="xref" href="Hi.MillingForces.Training.SetupAngleEstimate.html">SetupAngleEstimate</a>></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<IMessage>, 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<IMessage>)</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<SetupAngleEstimate> EstimateSetupAngle(SampleFlag sampleFlags, double outlierRatio, string dstRelFile, CancellationToken cancellationToken, IProgress<IMessage> 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><<a class="xref" href="Hi.Common.Messages.IMessage.html">IMessage</a>></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><<a class="xref" href="Hi.MillingForces.Training.SetupAngleEstimate.html">SetupAngleEstimate</a>></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)">
|
||||
|
||||
@@ -2854,6 +2854,66 @@ public void ErrorMessage(string message)</code></pre>
|
||||
|
||||
|
||||
|
||||
<a id="Hi_MachiningProcs_SessionShell_EstimateSetupAngle_" data-uid="Hi.MachiningProcs.SessionShell.EstimateSetupAngle*"></a>
|
||||
|
||||
<h3 id="Hi_MachiningProcs_SessionShell_EstimateSetupAngle_Hi_MillingForces_Fittings_SampleFlag_System_String_System_Boolean_System_Double_System_String_" data-uid="Hi.MachiningProcs.SessionShell.EstimateSetupAngle(Hi.MillingForces.Fittings.SampleFlag,System.String,System.Boolean,System.Double,System.String)">
|
||||
EstimateSetupAngle(SampleFlag, string, bool, double, string)
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>Estimates the cutter setup angle from the mapped smart-holder data and
|
||||
the workpiece's cutting parameter (the seed <a class="xref" href="Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_ReTrainMillingPara_Hi_MillingForces_Fittings_SampleFlag_System_String_System_Double_">ReTrainMillingPara(SampleFlag, string, double)</a>
|
||||
uses), one estimate per tool. The estimate is the rotation of the
|
||||
measured (Mx, My) against the model's, folded into the flute period;
|
||||
with <code class="paramref">applyToTool</code> the tool's uniform-fluting setup
|
||||
angle is advanced by it (<a class="xref" href="Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_SetUniformFlutingShiftAngle_deg_System_Int32_System_Double_">SetUniformFlutingShiftAngle_deg(int, double)</a>).
|
||||
Read the diagnostics before trusting it: a low contrast means the cut
|
||||
does not constrain the angle, a preferred mirror means the sensor axes
|
||||
are swapped rather than rotated.</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">[JsAce("EstimateSetupAngle(Mx|My, $1dstFile, false)")]
|
||||
public List<SetupAngleEstimate> EstimateSetupAngle(SampleFlag sampleFlag, string dstRelFile = null, bool applyToTool = false, double outlierRatio = 0.1, string knownParaRelFile = null)</code></pre>
|
||||
</div>
|
||||
|
||||
<h4 class="section">Parameters</h4>
|
||||
<dl class="parameters">
|
||||
<dt><code>sampleFlag</code> <a class="xref" href="Hi.MillingForces.Fittings.SampleFlag.html">SampleFlag</a></dt>
|
||||
<dd><p>Channels to use; must include Mx and My (Mz only sharpens the phase alignment).</p>
|
||||
</dd>
|
||||
<dt><code>dstRelFile</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
|
||||
<dd><p>Optional JSON report (relative to the project base directory).</p>
|
||||
</dd>
|
||||
<dt><code>applyToTool</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.boolean">bool</a></dt>
|
||||
<dd><p>Advance each estimated tool's setup angle by its estimate. Call <a class="xref" href="Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_ResetRuntime">ResetRuntime()</a> before replaying: the physics session snapshots the flute geometry.</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>knownParaRelFile</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
|
||||
<dd><p>Optional cutting-parameter file (relative to the project base directory) to use instead of the workpiece's.</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><<a class="xref" href="Hi.MillingForces.Training.SetupAngleEstimate.html">SetupAngleEstimate</a>></dt>
|
||||
<dd><p>The estimates, one per tool.</p>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a id="Hi_MachiningProcs_SessionShell_ExportMeshedGeomToObj_" data-uid="Hi.MachiningProcs.SessionShell.ExportMeshedGeomToObj*"></a>
|
||||
|
||||
<h3 id="Hi_MachiningProcs_SessionShell_ExportMeshedGeomToObj_System_String_System_Double_" data-uid="Hi.MachiningProcs.SessionShell.ExportMeshedGeomToObj(System.String,System.Double)">
|
||||
|
||||
@@ -239,7 +239,7 @@ Class Anchor
|
||||
<h4 class="section">Parameters</h4>
|
||||
<dl class="parameters">
|
||||
<dt><code>asmb</code> <a class="xref" href="Hi.Mech.Topo.Asmb.html">Asmb</a></dt>
|
||||
<dd><p>add this to <code class="paramref">asmb</code>.<a class="xref" href="Hi.Mech.Topo.Asmb.html#Hi_Mech_Topo_Asmb_ChildAncs">ChildAncs</a></p>
|
||||
<dd><p>add this to <code class="paramref">asmb</code> by <a class="xref" href="Hi.Mech.Topo.Asmb.html#Hi_Mech_Topo_Asmb_Add_Hi_Mech_Topo_Anchor_">Add(Anchor)</a></p>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
@@ -272,7 +272,7 @@ Class Anchor
|
||||
<h4 class="section">Parameters</h4>
|
||||
<dl class="parameters">
|
||||
<dt><code>asmb</code> <a class="xref" href="Hi.Mech.Topo.Asmb.html">Asmb</a></dt>
|
||||
<dd><p>add this to <code class="paramref">asmb</code>.<a class="xref" href="Hi.Mech.Topo.Asmb.html#Hi_Mech_Topo_Asmb_ChildAncs">ChildAncs</a></p>
|
||||
<dd><p>add this to <code class="paramref">asmb</code> by <a class="xref" href="Hi.Mech.Topo.Asmb.html#Hi_Mech_Topo_Asmb_Add_Hi_Mech_Topo_Anchor_">Add(Anchor)</a></p>
|
||||
</dd>
|
||||
<dt><code>name</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
|
||||
<dd><p><a class="xref" href="Hi.Mech.Topo.Anchor.html#Hi_Mech_Topo_Anchor_Name">Name</a></p>
|
||||
@@ -301,7 +301,8 @@ Class Anchor
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>Gets the branch map. ‘this’ anchor locates on <a class="xref" href="Hi.Mech.Topo.Branch.html#Hi_Mech_Topo_Branch_Fletch">Fletch</a> .</p>
|
||||
<div class="markdown level1 summary"><p>Gets a snapshot of the branches departing from this anchor, keyed by their
|
||||
<a class="xref" href="Hi.Mech.Topo.Branch.html#Hi_Mech_Topo_Branch_Arrow">Arrow</a>. ‘this’ anchor locates on <a class="xref" href="Hi.Mech.Topo.Branch.html#Hi_Mech_Topo_Branch_Fletch">Fletch</a>.</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
@@ -316,8 +317,7 @@ Class Anchor
|
||||
<h4 class="section">Property Value</h4>
|
||||
<dl class="parameters">
|
||||
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.generic.dictionary-2">Dictionary</a><<a class="xref" href="Hi.Mech.Topo.Anchor.html">Anchor</a>, <a class="xref" href="Hi.Mech.Topo.Branch.html">Branch</a>></dt>
|
||||
<dd><p>The branch map.</p>
|
||||
</dd>
|
||||
<dd></dd>
|
||||
</dl>
|
||||
|
||||
|
||||
@@ -334,7 +334,8 @@ Class Anchor
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>Gets the branch map. ‘this’ anchor locates on <a class="xref" href="Hi.Mech.Topo.Branch.html#Hi_Mech_Topo_Branch_Arrow">Arrow</a> .</p>
|
||||
<div class="markdown level1 summary"><p>Gets a snapshot of the branches arriving at this anchor, keyed by their
|
||||
<a class="xref" href="Hi.Mech.Topo.Branch.html#Hi_Mech_Topo_Branch_Fletch">Fletch</a>. ‘this’ anchor locates on <a class="xref" href="Hi.Mech.Topo.Branch.html#Hi_Mech_Topo_Branch_Arrow">Arrow</a>.</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
@@ -349,8 +350,7 @@ Class Anchor
|
||||
<h4 class="section">Property Value</h4>
|
||||
<dl class="parameters">
|
||||
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.generic.dictionary-2">Dictionary</a><<a class="xref" href="Hi.Mech.Topo.Anchor.html">Anchor</a>, <a class="xref" href="Hi.Mech.Topo.Branch.html">Branch</a>></dt>
|
||||
<dd><p>The branch map.</p>
|
||||
</dd>
|
||||
<dd></dd>
|
||||
</dl>
|
||||
|
||||
|
||||
@@ -490,10 +490,109 @@ Only the Guid takes effect when reading.</p>
|
||||
|
||||
|
||||
|
||||
<a id="Hi_Mech_Topo_Anchor_Parent_" data-uid="Hi.Mech.Topo.Anchor.Parent*"></a>
|
||||
|
||||
<h3 id="Hi_Mech_Topo_Anchor_Parent" data-uid="Hi.Mech.Topo.Anchor.Parent">
|
||||
Parent
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>The assembly this anchor belongs to; null while it belongs to none.
|
||||
An anchor belongs to at most one assembly at a time.
|
||||
Maintained by <a class="xref" href="Hi.Mech.Topo.Asmb.html#Hi_Mech_Topo_Asmb_Add_Hi_Mech_Topo_Anchor_">Add(Anchor)</a> and <a class="xref" href="Hi.Mech.Topo.Asmb.html#Hi_Mech_Topo_Asmb_Remove_Hi_Mech_Topo_Anchor_">Remove(Anchor)</a>.</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public Asmb Parent { get; }</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h4 class="section">Property Value</h4>
|
||||
<dl class="parameters">
|
||||
<dt><a class="xref" href="Hi.Mech.Topo.Asmb.html">Asmb</a></dt>
|
||||
<dd></dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h2 class="section" id="methods">Methods
|
||||
</h2>
|
||||
|
||||
|
||||
<a id="Hi_Mech_Topo_Anchor_Ancestors_" data-uid="Hi.Mech.Topo.Anchor.Ancestors*"></a>
|
||||
|
||||
<h3 id="Hi_Mech_Topo_Anchor_Ancestors" data-uid="Hi.Mech.Topo.Anchor.Ancestors">
|
||||
Ancestors()
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>The assemblies enclosing this anchor, nearest first.</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public IEnumerable<Asmb> Ancestors()</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.ienumerable-1">IEnumerable</a><<a class="xref" href="Hi.Mech.Topo.Asmb.html">Asmb</a>></dt>
|
||||
<dd></dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a id="Hi_Mech_Topo_Anchor_ConnectedAnchors_" data-uid="Hi.Mech.Topo.Anchor.ConnectedAnchors*"></a>
|
||||
|
||||
<h3 id="Hi_Mech_Topo_Anchor_ConnectedAnchors" data-uid="Hi.Mech.Topo.Anchor.ConnectedAnchors">
|
||||
ConnectedAnchors()
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>Every anchor reachable from this one over branches, this one included,
|
||||
regardless of which assemblies they belong to.</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public HashSet<Anchor> ConnectedAnchors()</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.hashset-1">HashSet</a><<a class="xref" href="Hi.Mech.Topo.Anchor.html">Anchor</a>></dt>
|
||||
<dd></dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a id="Hi_Mech_Topo_Anchor_Detach_" data-uid="Hi.Mech.Topo.Anchor.Detach*"></a>
|
||||
|
||||
<h3 id="Hi_Mech_Topo_Anchor_Detach" data-uid="Hi.Mech.Topo.Anchor.Detach">
|
||||
@@ -663,38 +762,6 @@ This function is usually used to compute the bounding box of elements.</p>
|
||||
|
||||
|
||||
|
||||
<a id="Hi_Mech_Topo_Anchor_GetClusterAnchors_" data-uid="Hi.Mech.Topo.Anchor.GetClusterAnchors*"></a>
|
||||
|
||||
<h3 id="Hi_Mech_Topo_Anchor_GetClusterAnchors" data-uid="Hi.Mech.Topo.Anchor.GetClusterAnchors">
|
||||
GetClusterAnchors()
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>Gets all the linked anchors by <a class="xref" href="Hi.Mech.Topo.Branch.html">Branch</a>.</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public HashSet<Anchor> GetClusterAnchors()</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.hashset-1">HashSet</a><<a class="xref" href="Hi.Mech.Topo.Anchor.html">Anchor</a>></dt>
|
||||
<dd></dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a id="Hi_Mech_Topo_Anchor_GetMat4d_" data-uid="Hi.Mech.Topo.Anchor.GetMat4d*"></a>
|
||||
|
||||
<h3 id="Hi_Mech_Topo_Anchor_GetMat4d_Hi_Mech_Topo_IGetAnchor_" data-uid="Hi.Mech.Topo.Anchor.GetMat4d(Hi.Mech.Topo.IGetAnchor)">
|
||||
@@ -720,7 +787,7 @@ This function is usually used to compute the bounding box of elements.</p>
|
||||
<h4 class="section">Returns</h4>
|
||||
<dl class="parameters">
|
||||
<dt><a class="xref" href="Hi.Geom.Mat4d.html">Mat4d</a></dt>
|
||||
<dd><p>transform matrix</p>
|
||||
<dd><p>transform matrix; null when no branch chain connects the two</p>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
@@ -741,7 +808,8 @@ This function is usually used to compute the bounding box of elements.</p>
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>Gets the mat4d map in <a class="xref" href="Hi.Mech.Topo.Anchor.html#Hi_Mech_Topo_Anchor_GetClusterAnchors">GetClusterAnchors()</a></p>
|
||||
<div class="markdown level1 summary"><p>Gets the transform of every anchor in <a class="xref" href="Hi.Mech.Topo.Anchor.html#Hi_Mech_Topo_Anchor_ConnectedAnchors">ConnectedAnchors()</a>,
|
||||
expressed in this anchor's coordinate.</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
@@ -766,60 +834,26 @@ This function is usually used to compute the bounding box of elements.</p>
|
||||
|
||||
|
||||
|
||||
<a id="Hi_Mech_Topo_Anchor_GetNeighborAnchorList_" data-uid="Hi.Mech.Topo.Anchor.GetNeighborAnchorList*"></a>
|
||||
<a id="Hi_Mech_Topo_Anchor_NeighborAnchors_" data-uid="Hi.Mech.Topo.Anchor.NeighborAnchors*"></a>
|
||||
|
||||
<h3 id="Hi_Mech_Topo_Anchor_GetNeighborAnchorList" data-uid="Hi.Mech.Topo.Anchor.GetNeighborAnchorList">
|
||||
GetNeighborAnchorList()
|
||||
<h3 id="Hi_Mech_Topo_Anchor_NeighborAnchors" data-uid="Hi.Mech.Topo.Anchor.NeighborAnchors">
|
||||
NeighborAnchors()
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>Get neighbor anchors.</p>
|
||||
<div class="markdown level1 summary"><p>The anchors one branch away, in either direction; each once.</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public List<Anchor> GetNeighborAnchorList()</code></pre>
|
||||
<pre><code class="lang-csharp hljs">public IEnumerable<Anchor> NeighborAnchors()</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><<a class="xref" href="Hi.Mech.Topo.Anchor.html">Anchor</a>></dt>
|
||||
<dd><p>neighbor anchors</p>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a id="Hi_Mech_Topo_Anchor_GetNeighborAnchorSet_" data-uid="Hi.Mech.Topo.Anchor.GetNeighborAnchorSet*"></a>
|
||||
|
||||
<h3 id="Hi_Mech_Topo_Anchor_GetNeighborAnchorSet" data-uid="Hi.Mech.Topo.Anchor.GetNeighborAnchorSet">
|
||||
GetNeighborAnchorSet()
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>Get neighbor anchors.</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public HashSet<Anchor> GetNeighborAnchorSet()</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.hashset-1">HashSet</a><<a class="xref" href="Hi.Mech.Topo.Anchor.html">Anchor</a>></dt>
|
||||
<dd><p>neighbor anchors</p>
|
||||
</dd>
|
||||
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.generic.ienumerable-1">IEnumerable</a><<a class="xref" href="Hi.Mech.Topo.Anchor.html">Anchor</a>></dt>
|
||||
<dd></dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -277,10 +277,79 @@ Class DirectionBranchEntry
|
||||
|
||||
|
||||
|
||||
<h2 class="section" id="properties">Properties
|
||||
</h2>
|
||||
|
||||
|
||||
<a id="Hi_Mech_Topo_DirectionBranchEntry_Next_" data-uid="Hi.Mech.Topo.DirectionBranchEntry.Next*"></a>
|
||||
|
||||
<h3 id="Hi_Mech_Topo_DirectionBranchEntry_Next" data-uid="Hi.Mech.Topo.DirectionBranchEntry.Next">
|
||||
Next
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>The anchor this entry leads to: the arrow when forward, the fletch otherwise.</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public Anchor Next { get; }</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h4 class="section">Property Value</h4>
|
||||
<dl class="parameters">
|
||||
<dt><a class="xref" href="Hi.Mech.Topo.Anchor.html">Anchor</a></dt>
|
||||
<dd></dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h2 class="section" id="methods">Methods
|
||||
</h2>
|
||||
|
||||
|
||||
<a id="Hi_Mech_Topo_DirectionBranchEntry_GetMat_" data-uid="Hi.Mech.Topo.DirectionBranchEntry.GetMat*"></a>
|
||||
|
||||
<h3 id="Hi_Mech_Topo_DirectionBranchEntry_GetMat" data-uid="Hi.Mech.Topo.DirectionBranchEntry.GetMat">
|
||||
GetMat()
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>The transform of crossing the branch in this direction.
|
||||
A branch without a transformer counts as identity.</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public Mat4d GetMat()</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
<h4 class="section">Returns</h4>
|
||||
<dl class="parameters">
|
||||
<dt><a class="xref" href="Hi.Geom.Mat4d.html">Mat4d</a></dt>
|
||||
<dd></dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a id="Hi_Mech_Topo_DirectionBranchEntry_ToString_" data-uid="Hi.Mech.Topo.DirectionBranchEntry.ToString*"></a>
|
||||
|
||||
<h3 id="Hi_Mech_Topo_DirectionBranchEntry_ToString" data-uid="Hi.Mech.Topo.DirectionBranchEntry.ToString">
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="title" content="Class TopoReflection | HiAPI-C# 2025 ">
|
||||
|
||||
<meta name="description" content="Clone and provide map between source topology and cloned topology.">
|
||||
<meta name="description" content="Clone and provide map between source topology and cloned topology. The source is read under , so the clone is one consistent state.">
|
||||
<link rel="icon" href="../img/HiAPI.favicon.ico">
|
||||
<link rel="stylesheet" href="../public/docfx.min.css">
|
||||
<link rel="stylesheet" href="../public/main.css">
|
||||
@@ -97,7 +97,8 @@ Class TopoReflection
|
||||
<dl><dt>Assembly</dt><dd>HiMech.dll</dd></dl>
|
||||
</div>
|
||||
|
||||
<div class="markdown summary"><p>Clone <a class="xref" href="Hi.Mech.Topo.Asmb.html">Asmb</a> and provide map between source topology and cloned topology.</p>
|
||||
<div class="markdown summary"><p>Clone <a class="xref" href="Hi.Mech.Topo.Asmb.html">Asmb</a> and provide map between source topology and cloned topology.
|
||||
The source is read under <span class="xref">Hi.Mech.Topo.Asmb.ReadLockAll()</span>, so the clone is one consistent state.</p>
|
||||
</div>
|
||||
<div class="markdown conceptual"></div>
|
||||
|
||||
@@ -354,8 +355,8 @@ Class TopoReflection
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.generic.keyvaluepair-2.key">Key</a> is source branch.
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.generic.keyvaluepair-2.value">Value</a> is cloned branch.</p>
|
||||
<div class="markdown level1 summary"><p><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.generic.keyvaluepair-2.key">Key</a> is source transformer.
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.generic.keyvaluepair-2.value">Value</a> is cloned transformer.</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
|
||||
@@ -117,6 +117,20 @@ Classes
|
||||
<dl class="jumplist">
|
||||
<dt><a class="xref" href="Hi.Mech.Topo.Asmb.html">Asmb</a></dt>
|
||||
<dd><p>Collection of <a class="xref" href="Hi.Mech.Topo.Anchor.html">Anchor</a> and <a class="xref" href="Hi.Mech.Topo.Asmb.html">Asmb</a>.</p>
|
||||
<p>
|
||||
Membership is a tree: every anchor and every assembly belongs to at most one parent,
|
||||
recorded on <a class="xref" href="Hi.Mech.Topo.Anchor.html#Hi_Mech_Topo_Anchor_Parent">Parent</a> and <a class="xref" href="Hi.Mech.Topo.Asmb.html#Hi_Mech_Topo_Asmb_Parent">Parent</a>. Change membership only
|
||||
through <a class="xref" href="Hi.Mech.Topo.Asmb.html#Hi_Mech_Topo_Asmb_Add_Hi_Mech_Topo_Anchor_">Add(Anchor)</a>, <a class="xref" href="Hi.Mech.Topo.Asmb.html#Hi_Mech_Topo_Asmb_Add_Hi_Mech_Topo_Asmb_">Add(Asmb)</a>, <a class="xref" href="Hi.Mech.Topo.Asmb.html#Hi_Mech_Topo_Asmb_Remove_Hi_Mech_Topo_Anchor_">Remove(Anchor)</a>
|
||||
and <a class="xref" href="Hi.Mech.Topo.Asmb.html#Hi_Mech_Topo_Asmb_Remove_Hi_Mech_Topo_Asmb_">Remove(Asmb)</a>; the child collections are snapshots.
|
||||
</p>
|
||||
<p>
|
||||
A member is addressed by a path of names relative to the assembly asked, joined by
|
||||
<a class="xref" href="Hi.Mech.Topo.Asmb.html#Hi_Mech_Topo_Asmb_PathSeparator">PathSeparator</a>, one segment per assembly on the way down:
|
||||
<code>"MillingTool.MillingCutter.CutterTip"</code> asked of the equipment names the same anchor as
|
||||
<code>"MillingCutter.CutterTip"</code> asked of the tool. Any segment may give the member's GUID
|
||||
in braces instead, <code>"MillingTool.{12345678}"</code>, which is how <a class="xref" href="Hi.Mech.Topo.Asmb.html#Hi_Mech_Topo_Asmb_GetPath_Hi_Mech_Topo_Anchor_">GetPath(Anchor)</a>
|
||||
spells a member whose name cannot stand on its own. See <a class="xref" href="Hi.Mech.Topo.Asmb.html#Hi_Mech_Topo_Asmb_GetAnchorByPath_System_String_">GetAnchorByPath(string)</a>.
|
||||
</p>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="jumplist">
|
||||
@@ -197,7 +211,8 @@ in form of <a class="xref" href="Hi.Disp.Flag.CoordinateDrawing.html">Coordinate
|
||||
</dl>
|
||||
<dl class="jumplist">
|
||||
<dt><a class="xref" href="Hi.Mech.Topo.TopoReflection.html">TopoReflection</a></dt>
|
||||
<dd><p>Clone <a class="xref" href="Hi.Mech.Topo.Asmb.html">Asmb</a> and provide map between source topology and cloned topology.</p>
|
||||
<dd><p>Clone <a class="xref" href="Hi.Mech.Topo.Asmb.html">Asmb</a> and provide map between source topology and cloned topology.
|
||||
The source is read under <span class="xref">Hi.Mech.Topo.Asmb.ReadLockAll()</span>, so the clone is one consistent state.</p>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="jumplist">
|
||||
|
||||
@@ -689,6 +689,67 @@ default 0.1 keeps the historical seed-anchored ridge behaviour.
|
||||
|
||||
|
||||
|
||||
<a id="Hi_MillingForces_Training_MillingTraining_GatherAndEstimateSetupAngle_" data-uid="Hi.MillingForces.Training.MillingTraining.GatherAndEstimateSetupAngle*"></a>
|
||||
|
||||
<h3 id="Hi_MillingForces_Training_MillingTraining_GatherAndEstimateSetupAngle_System_Collections_Concurrent_ConcurrentDictionary_System_Int32_System_Collections_Generic_List_Hi_Mapping_ITimeShot___Hi_CutterLocations_ClStrips_ClStrip_Hi_MillingForces_Fittings_ICuttingPara_Hi_MillingForces_Fittings_SampleFlag_System_Double_System_IProgress_Hi_Common_Messages_IMessage__System_Threading_CancellationToken_" data-uid="Hi.MillingForces.Training.MillingTraining.GatherAndEstimateSetupAngle(System.Collections.Concurrent.ConcurrentDictionary{System.Int32,System.Collections.Generic.List{Hi.Mapping.ITimeShot}},Hi.CutterLocations.ClStrips.ClStrip,Hi.MillingForces.Fittings.ICuttingPara,Hi.MillingForces.Fittings.SampleFlag,System.Double,System.IProgress{Hi.Common.Messages.IMessage},System.Threading.CancellationToken)">
|
||||
GatherAndEstimateSetupAngle(ConcurrentDictionary<int, List<ITimeShot>>, ClStrip, ICuttingPara, SampleFlag, double, IProgress<IMessage>, CancellationToken)
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>Gathers samples against a known cutting parameter and estimates, per
|
||||
tool, the cutter setup angle the model is missing — the constant
|
||||
rotation of the measured spindle-rotation-frame (Mx, My) against the
|
||||
model's (see <a class="xref" href="Hi.MillingForces.Training.SetupAngleEstimation.html">SetupAngleEstimation</a>). The parameter is used
|
||||
as the gather template exactly like the ReTrain seed; nothing is trained.</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public static List<SetupAngleEstimate> GatherAndEstimateSetupAngle(ConcurrentDictionary<int, List<ITimeShot>> stepToTimeShotListDictionary, ClStrip clStrip, ICuttingPara knownPara, SampleFlag sampleFlags, double outlierRatio, IProgress<IMessage> messageProgress, CancellationToken cancellationToken)</code></pre>
|
||||
</div>
|
||||
|
||||
<h4 class="section">Parameters</h4>
|
||||
<dl class="parameters">
|
||||
<dt><code>stepToTimeShotListDictionary</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.concurrent.concurrentdictionary-2">ConcurrentDictionary</a><<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int32">int</a>, <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.generic.list-1">List</a><<a class="xref" href="Hi.Mapping.ITimeShot.html">ITimeShot</a>>></dt>
|
||||
<dd><p>Dictionary mapping step indices to time shot lists.</p>
|
||||
</dd>
|
||||
<dt><code>clStrip</code> <a class="xref" href="Hi.CutterLocations.ClStrips.ClStrip.html">ClStrip</a></dt>
|
||||
<dd><p>The cutter location strip.</p>
|
||||
</dd>
|
||||
<dt><code>knownPara</code> <a class="xref" href="Hi.MillingForces.Fittings.ICuttingPara.html">ICuttingPara</a></dt>
|
||||
<dd><p>The known (already built) cutting parameter.</p>
|
||||
</dd>
|
||||
<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>messageProgress</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.iprogress-1">IProgress</a><<a class="xref" href="Hi.Common.Messages.IMessage.html">IMessage</a>></dt>
|
||||
<dd><p>Message sink.</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>
|
||||
</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><<a class="xref" href="Hi.MillingForces.Training.SetupAngleEstimate.html">SetupAngleEstimate</a>></dt>
|
||||
<dd><p>One estimate per tool that produced samples; empty when nothing could be estimated.</p>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a id="Hi_MillingForces_Training_MillingTraining_GatherAndGetUpdate_" data-uid="Hi.MillingForces.Training.MillingTraining.GatherAndGetUpdate*"></a>
|
||||
|
||||
<h3 id="Hi_MillingForces_Training_MillingTraining_GatherAndGetUpdate_System_Collections_Concurrent_ConcurrentDictionary_System_Int32_System_Collections_Generic_List_Hi_Mapping_ITimeShot___Hi_CutterLocations_ClStrips_ClStrip_Hi_MillingForces_Fittings_ICuttingPara_Hi_MillingForces_Fittings_SampleFlag_System_Double_System_IProgress_Hi_Common_Messages_IMessage__System_Threading_CancellationToken_" data-uid="Hi.MillingForces.Training.MillingTraining.GatherAndGetUpdate(System.Collections.Concurrent.ConcurrentDictionary{System.Int32,System.Collections.Generic.List{Hi.Mapping.ITimeShot}},Hi.CutterLocations.ClStrips.ClStrip,Hi.MillingForces.Fittings.ICuttingPara,Hi.MillingForces.Fittings.SampleFlag,System.Double,System.IProgress{Hi.Common.Messages.IMessage},System.Threading.CancellationToken)">
|
||||
|
||||
@@ -0,0 +1,860 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Class SetupAngleEstimate | HiAPI-C# 2025 </title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="title" content="Class SetupAngleEstimate | HiAPI-C# 2025 ">
|
||||
|
||||
<meta name="description" content="Result of : the rotation of the measured spindle-rotation-frame transverse moment (Mx, My) relative to the model built from a known cutting parameter, i.e. the cutter setup angle the model is missing, plus the diagnostics that say how much to trust it.">
|
||||
<link rel="icon" href="../img/HiAPI.favicon.ico">
|
||||
<link rel="stylesheet" href="../public/docfx.min.css">
|
||||
<link rel="stylesheet" href="../public/main.css">
|
||||
<meta name="docfx:navrel" content="../toc.html">
|
||||
<meta name="docfx:tocrel" content="toc.html">
|
||||
|
||||
<meta name="docfx:rel" content="../">
|
||||
|
||||
|
||||
|
||||
<meta name="loc:inThisArticle" content="In this article">
|
||||
<meta name="loc:searchResultsCount" content="{count} results for "{query}"">
|
||||
<meta name="loc:searchNoResults" content="No results for "{query}"">
|
||||
<meta name="loc:tocFilter" content="Filter by title">
|
||||
<meta name="loc:nextArticle" content="Next">
|
||||
<meta name="loc:prevArticle" content="Previous">
|
||||
<meta name="loc:themeLight" content="Light">
|
||||
<meta name="loc:themeDark" content="Dark">
|
||||
<meta name="loc:themeAuto" content="Auto">
|
||||
<meta name="loc:changeTheme" content="Change theme">
|
||||
<meta name="loc:copy" content="Copy">
|
||||
<meta name="loc:downloadPdf" content="Download PDF">
|
||||
|
||||
<script type="module" src="./../public/docfx.min.js"></script>
|
||||
|
||||
<script>
|
||||
const theme = localStorage.getItem('theme') || 'auto'
|
||||
document.documentElement.setAttribute('data-bs-theme', theme === 'auto' ? (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light') : theme)
|
||||
</script>
|
||||
|
||||
</head>
|
||||
|
||||
<body class="tex2jax_ignore" data-layout="" data-yaml-mime="ManagedReference">
|
||||
<header class="bg-body border-bottom">
|
||||
<nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
|
||||
<div class="container-xxl flex-nowrap">
|
||||
<a class="navbar-brand" href="../index.html">
|
||||
<img id="logo" class="svg" src="../img/HiAPI.logo.png" alt="">
|
||||
|
||||
</a>
|
||||
<button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">
|
||||
<i class="bi bi-three-dots"></i>
|
||||
</button>
|
||||
<div class="collapse navbar-collapse" id="navpanel">
|
||||
<div id="navbar">
|
||||
<form class="search" role="search" id="search">
|
||||
<i class="bi bi-search"></i>
|
||||
<input class="form-control" id="search-query" type="search" disabled placeholder="Search" autocomplete="off" aria-label="Search">
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
</header>
|
||||
|
||||
<main class="container-xxl">
|
||||
<div class="toc-offcanvas">
|
||||
<div class="offcanvas-md offcanvas-start" tabindex="-1" id="tocOffcanvas" aria-labelledby="tocOffcanvasLabel">
|
||||
<div class="offcanvas-header">
|
||||
<h5 class="offcanvas-title" id="tocOffcanvasLabel">Table of Contents</h5>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" data-bs-target="#tocOffcanvas" aria-label="Close"></button>
|
||||
</div>
|
||||
<div class="offcanvas-body">
|
||||
<nav class="toc" id="toc"></nav>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="content">
|
||||
<div class="actionbar">
|
||||
<button class="btn btn-lg border-0 d-md-none" type="button" data-bs-toggle="offcanvas" data-bs-target="#tocOffcanvas" aria-controls="tocOffcanvas" aria-expanded="false" aria-label="Show table of contents">
|
||||
<i class="bi bi-list"></i>
|
||||
</button>
|
||||
|
||||
<nav id="breadcrumb"></nav>
|
||||
</div>
|
||||
|
||||
<article data-uid="Hi.MillingForces.Training.SetupAngleEstimate">
|
||||
|
||||
|
||||
|
||||
<h1 id="Hi_MillingForces_Training_SetupAngleEstimate" data-uid="Hi.MillingForces.Training.SetupAngleEstimate" class="text-break">
|
||||
Class SetupAngleEstimate
|
||||
</h1>
|
||||
|
||||
<div class="facts text-secondary">
|
||||
<dl><dt>Namespace</dt><dd><a class="xref" href="Hi.html">Hi</a>.<a class="xref" href="Hi.MillingForces.html">MillingForces</a>.<a class="xref" href="Hi.MillingForces.Training.html">Training</a></dd></dl>
|
||||
<dl><dt>Assembly</dt><dd>HiNc.dll</dd></dl>
|
||||
</div>
|
||||
|
||||
<div class="markdown summary"><p>Result of <a class="xref" href="Hi.MillingForces.Training.SetupAngleEstimation.html#Hi_MillingForces_Training_SetupAngleEstimation_Estimate_System_Collections_Generic_IEnumerable_System_Collections_Generic_KeyValuePair_System_Int32_System_Collections_Generic_List_System_Collections_Generic_List_Hi_MillingForces_Fittings_TrainingSample_____System_Double___Hi_MillingForces_Fittings_SampleFlag_System_Int32_System_Double_System_Double_System_IProgress_Hi_Common_Messages_IMessage__System_Threading_CancellationToken_">Estimate(IEnumerable<KeyValuePair<int, List<List<TrainingSample>>>>, double[], SampleFlag, int, double, double, IProgress<IMessage>, CancellationToken)</a>: the rotation of the
|
||||
measured spindle-rotation-frame transverse moment (Mx, My) relative to the
|
||||
model built from a known cutting parameter, i.e. the cutter setup angle
|
||||
the model is missing, plus the diagnostics that say how much to trust it.</p>
|
||||
</div>
|
||||
<div class="markdown conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public sealed class SetupAngleEstimate</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<dl class="typelist inheritance">
|
||||
<dt>Inheritance</dt>
|
||||
<dd>
|
||||
<div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a></div>
|
||||
<div><span class="xref">SetupAngleEstimate</span></div>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
<dl class="typelist inheritedMembers">
|
||||
<dt>Inherited Members</dt>
|
||||
<dd>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object)">object.Equals(object)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object)">object.Equals(object, object)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gethashcode">object.GetHashCode()</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gettype">object.GetType()</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.referenceequals">object.ReferenceEquals(object, object)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.tostring">object.ToString()</a>
|
||||
</div>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="typelist extensionMethods">
|
||||
<dt>Extension Methods</dt>
|
||||
<dd>
|
||||
<div>
|
||||
<a class="xref" href="Hi.Common.DuplicateUtil.html#Hi_Common_DuplicateUtil_TryDuplicate__1___0_System_Object___">DuplicateUtil.TryDuplicate<TSelf>(TSelf, params object[])</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="Hi.Common.InvokeUtil.html#Hi_Common_InvokeUtil_SelfInvoke__1___0_System_Action___0__">InvokeUtil.SelfInvoke<TSrc>(TSrc, Action<TSrc>)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="Hi.Common.InvokeUtil.html#Hi_Common_InvokeUtil_SelfInvoke__2___0_System_Func___0___1__">InvokeUtil.SelfInvoke<TSrc, TDst>(TSrc, Func<TSrc, TDst>)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="Hi.Coloring.ColorUtil.html#Hi_Coloring_ColorUtil_GetGloomyColor_System_Object_System_Double_System_Double_">ColorUtil.GetGloomyColor(object, double, double)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="Hi.Common.NameUtil.html#Hi_Common_NameUtil_GetSelectionName_System_Object_">NameUtil.GetSelectionName(object)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="Hi.Common.StringUtil.html#Hi_Common_StringUtil_GetPropertyStringIfToStringNotOverloaded_System_Object_System_Boolean_System_Boolean_">StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="Hi.Parallels.LockUtil.html#Hi_Parallels_LockUtil_Lock_System_Object_">LockUtil.Lock(object)</a>
|
||||
</div>
|
||||
</dd></dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h2 class="section" id="properties">Properties
|
||||
</h2>
|
||||
|
||||
|
||||
<a id="Hi_MillingForces_Training_SetupAngleEstimate_Angle_deg_" data-uid="Hi.MillingForces.Training.SetupAngleEstimate.Angle_deg*"></a>
|
||||
|
||||
<h3 id="Hi_MillingForces_Training_SetupAngleEstimate_Angle_deg" data-uid="Hi.MillingForces.Training.SetupAngleEstimate.Angle_deg">
|
||||
Angle_deg
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>Estimated rotation (deg) that carries the model's (Mx, My) onto the
|
||||
measured (Mx, My), folded into <code>[0, <a class="xref" href="Hi.MillingForces.Training.SetupAngleEstimate.html#Hi_MillingForces_Training_SetupAngleEstimate_Period_deg">Period_deg</a>)</code>.
|
||||
Positive = the Mx→My sense of the spindle-rotation frame.</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public double Angle_deg { get; set; }</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h4 class="section">Property Value</h4>
|
||||
<dl class="parameters">
|
||||
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
|
||||
<dd></dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a id="Hi_MillingForces_Training_SetupAngleEstimate_Contrast_" data-uid="Hi.MillingForces.Training.SetupAngleEstimate.Contrast*"></a>
|
||||
|
||||
<h3 id="Hi_MillingForces_Training_SetupAngleEstimate_Contrast" data-uid="Hi.MillingForces.Training.SetupAngleEstimate.Contrast">
|
||||
Contrast
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>Contrast of the objective over the angle grid, <code>(Jmax − Jmin)</code>
|
||||
divided by the measured energy of the used steps: how much the fit
|
||||
worsens at the worst angle of the period. A property of the cut
|
||||
geometry rather than of the noise; near 0 means the data does not
|
||||
constrain the angle (a cut whose running-frame moment is constant over
|
||||
the turn, e.g. a full slot with all flutes engaged).</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public double Contrast { get; set; }</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h4 class="section">Property Value</h4>
|
||||
<dl class="parameters">
|
||||
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
|
||||
<dd></dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a id="Hi_MillingForces_Training_SetupAngleEstimate_CorrelationR_" data-uid="Hi.MillingForces.Training.SetupAngleEstimate.CorrelationR*"></a>
|
||||
|
||||
<h3 id="Hi_MillingForces_Training_SetupAngleEstimate_CorrelationR" data-uid="Hi.MillingForces.Training.SetupAngleEstimate.CorrelationR">
|
||||
CorrelationR
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>Pearson correlation R between the measured Mx/My samples and the rotated, scaled model.</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public double CorrelationR { get; set; }</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h4 class="section">Property Value</h4>
|
||||
<dl class="parameters">
|
||||
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
|
||||
<dd></dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a id="Hi_MillingForces_Training_SetupAngleEstimate_Curve_" data-uid="Hi.MillingForces.Training.SetupAngleEstimate.Curve*"></a>
|
||||
|
||||
<h3 id="Hi_MillingForces_Training_SetupAngleEstimate_Curve" data-uid="Hi.MillingForces.Training.SetupAngleEstimate.Curve">
|
||||
Curve
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>Grid samples of the objective: angle (deg) and objective value.</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public List<(double Angle_deg, double Objective)> Curve { 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><(<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.valuetuple-system.double,system.double-.angle_deg">Angle_deg</a>, <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.valuetuple-system.double,system.double-.objective">Objective</a>)></dt>
|
||||
<dd></dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a id="Hi_MillingForces_Training_SetupAngleEstimate_FixedScaleAngle_deg_" data-uid="Hi.MillingForces.Training.SetupAngleEstimate.FixedScaleAngle_deg*"></a>
|
||||
|
||||
<h3 id="Hi_MillingForces_Training_SetupAngleEstimate_FixedScaleAngle_deg" data-uid="Hi.MillingForces.Training.SetupAngleEstimate.FixedScaleAngle_deg">
|
||||
FixedScaleAngle_deg
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>The angle (deg) re-estimated with the scale pinned to 1 — agrees with
|
||||
<a class="xref" href="Hi.MillingForces.Training.SetupAngleEstimate.html#Hi_MillingForces_Training_SetupAngleEstimate_Angle_deg">Angle_deg</a> when the parameter magnitude is right.</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public double FixedScaleAngle_deg { get; set; }</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h4 class="section">Property Value</h4>
|
||||
<dl class="parameters">
|
||||
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
|
||||
<dd></dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a id="Hi_MillingForces_Training_SetupAngleEstimate_FluteNum_" data-uid="Hi.MillingForces.Training.SetupAngleEstimate.FluteNum*"></a>
|
||||
|
||||
<h3 id="Hi_MillingForces_Training_SetupAngleEstimate_FluteNum" data-uid="Hi.MillingForces.Training.SetupAngleEstimate.FluteNum">
|
||||
FluteNum
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>Flute count of the cutter the samples came from.</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public int FluteNum { get; set; }</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h4 class="section">Property Value</h4>
|
||||
<dl class="parameters">
|
||||
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int32">int</a></dt>
|
||||
<dd></dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a id="Hi_MillingForces_Training_SetupAngleEstimate_MeanModelRipple_" data-uid="Hi.MillingForces.Training.SetupAngleEstimate.MeanModelRipple*"></a>
|
||||
|
||||
<h3 id="Hi_MillingForces_Training_SetupAngleEstimate_MeanModelRipple" data-uid="Hi.MillingForces.Training.SetupAngleEstimate.MeanModelRipple">
|
||||
MeanModelRipple
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>Energy-weighted mean of the used steps' <a class="xref" href="Hi.MillingForces.Training.SetupAngleStepEstimate.html#Hi_MillingForces_Training_SetupAngleStepEstimate_ModelRipple">ModelRipple</a>:
|
||||
how strongly the cut modulates the transverse moment within a turn, the
|
||||
model-side identifiability measure.</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public double MeanModelRipple { get; set; }</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h4 class="section">Property Value</h4>
|
||||
<dl class="parameters">
|
||||
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
|
||||
<dd></dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a id="Hi_MillingForces_Training_SetupAngleEstimate_MirrorAngle_deg_" data-uid="Hi.MillingForces.Training.SetupAngleEstimate.MirrorAngle_deg*"></a>
|
||||
|
||||
<h3 id="Hi_MillingForces_Training_SetupAngleEstimate_MirrorAngle_deg" data-uid="Hi.MillingForces.Training.SetupAngleEstimate.MirrorAngle_deg">
|
||||
MirrorAngle_deg
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>Best angle (deg) under the mirrored-frame hypothesis.</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public double MirrorAngle_deg { get; set; }</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h4 class="section">Property Value</h4>
|
||||
<dl class="parameters">
|
||||
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
|
||||
<dd></dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a id="Hi_MillingForces_Training_SetupAngleEstimate_MirrorObjectiveRatio_" data-uid="Hi.MillingForces.Training.SetupAngleEstimate.MirrorObjectiveRatio*"></a>
|
||||
|
||||
<h3 id="Hi_MillingForces_Training_SetupAngleEstimate_MirrorObjectiveRatio" data-uid="Hi.MillingForces.Training.SetupAngleEstimate.MirrorObjectiveRatio">
|
||||
MirrorObjectiveRatio
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>Objective of the mirrored hypothesis over the plain one (< 1 favours the mirror).</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public double MirrorObjectiveRatio { get; set; }</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h4 class="section">Property Value</h4>
|
||||
<dl class="parameters">
|
||||
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
|
||||
<dd></dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a id="Hi_MillingForces_Training_SetupAngleEstimate_MirrorPreferred_" data-uid="Hi.MillingForces.Training.SetupAngleEstimate.MirrorPreferred*"></a>
|
||||
|
||||
<h3 id="Hi_MillingForces_Training_SetupAngleEstimate_MirrorPreferred" data-uid="Hi.MillingForces.Training.SetupAngleEstimate.MirrorPreferred">
|
||||
MirrorPreferred
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>True when a mirrored measurement frame (My negated) fits markedly better
|
||||
than the plain rotation — the sensor axes are likely swapped/negated
|
||||
rather than rotated; <a class="xref" href="Hi.MillingForces.Training.SetupAngleEstimate.html#Hi_MillingForces_Training_SetupAngleEstimate_MirrorAngle_deg">MirrorAngle_deg</a> is the angle under
|
||||
that hypothesis.</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public bool MirrorPreferred { get; set; }</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h4 class="section">Property Value</h4>
|
||||
<dl class="parameters">
|
||||
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.boolean">bool</a></dt>
|
||||
<dd></dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a id="Hi_MillingForces_Training_SetupAngleEstimate_Note_" data-uid="Hi.MillingForces.Training.SetupAngleEstimate.Note*"></a>
|
||||
|
||||
<h3 id="Hi_MillingForces_Training_SetupAngleEstimate_Note" data-uid="Hi.MillingForces.Training.SetupAngleEstimate.Note">
|
||||
Note
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>Human-readable summary.</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public string Note { get; set; }</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h4 class="section">Property Value</h4>
|
||||
<dl class="parameters">
|
||||
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
|
||||
<dd></dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a id="Hi_MillingForces_Training_SetupAngleEstimate_Objective_" data-uid="Hi.MillingForces.Training.SetupAngleEstimate.Objective*"></a>
|
||||
|
||||
<h3 id="Hi_MillingForces_Training_SetupAngleEstimate_Objective" data-uid="Hi.MillingForces.Training.SetupAngleEstimate.Objective">
|
||||
Objective
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>Objective value at the estimate (residual energy of the used steps).</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public double Objective { get; set; }</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h4 class="section">Property Value</h4>
|
||||
<dl class="parameters">
|
||||
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
|
||||
<dd></dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a id="Hi_MillingForces_Training_SetupAngleEstimate_Period_deg_" data-uid="Hi.MillingForces.Training.SetupAngleEstimate.Period_deg*"></a>
|
||||
|
||||
<h3 id="Hi_MillingForces_Training_SetupAngleEstimate_Period_deg" data-uid="Hi.MillingForces.Training.SetupAngleEstimate.Period_deg">
|
||||
Period_deg
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>Ambiguity period of the estimate (deg): 360/N for an N-flute uniform
|
||||
fluting (the flute pitch), 360 otherwise.</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public double Period_deg { get; set; }</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h4 class="section">Property Value</h4>
|
||||
<dl class="parameters">
|
||||
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
|
||||
<dd></dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a id="Hi_MillingForces_Training_SetupAngleEstimate_ScaleRatio_" data-uid="Hi.MillingForces.Training.SetupAngleEstimate.ScaleRatio*"></a>
|
||||
|
||||
<h3 id="Hi_MillingForces_Training_SetupAngleEstimate_ScaleRatio" data-uid="Hi.MillingForces.Training.SetupAngleEstimate.ScaleRatio">
|
||||
ScaleRatio
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>Measured-over-model magnitude ratio of the fit (a free scale absorbs
|
||||
coefficient magnitude and moment-arm errors so they cannot bias the angle).</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public double ScaleRatio { get; set; }</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h4 class="section">Property Value</h4>
|
||||
<dl class="parameters">
|
||||
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
|
||||
<dd></dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a id="Hi_MillingForces_Training_SetupAngleEstimate_Scatter_deg_" data-uid="Hi.MillingForces.Training.SetupAngleEstimate.Scatter_deg*"></a>
|
||||
|
||||
<h3 id="Hi_MillingForces_Training_SetupAngleEstimate_Scatter_deg" data-uid="Hi.MillingForces.Training.SetupAngleEstimate.Scatter_deg">
|
||||
Scatter_deg
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>Energy-weighted circular standard deviation (deg) of the per-step angles around the estimate.</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public double Scatter_deg { get; set; }</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h4 class="section">Property Value</h4>
|
||||
<dl class="parameters">
|
||||
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
|
||||
<dd></dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a id="Hi_MillingForces_Training_SetupAngleEstimate_StepNum_" data-uid="Hi.MillingForces.Training.SetupAngleEstimate.StepNum*"></a>
|
||||
|
||||
<h3 id="Hi_MillingForces_Training_SetupAngleEstimate_StepNum" data-uid="Hi.MillingForces.Training.SetupAngleEstimate.StepNum">
|
||||
StepNum
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>Steps that carried Mx/My samples.</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public int StepNum { get; set; }</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h4 class="section">Property Value</h4>
|
||||
<dl class="parameters">
|
||||
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int32">int</a></dt>
|
||||
<dd></dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a id="Hi_MillingForces_Training_SetupAngleEstimate_Steps_" data-uid="Hi.MillingForces.Training.SetupAngleEstimate.Steps*"></a>
|
||||
|
||||
<h3 id="Hi_MillingForces_Training_SetupAngleEstimate_Steps" data-uid="Hi.MillingForces.Training.SetupAngleEstimate.Steps">
|
||||
Steps
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>Per-step diagnostics.</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public List<SetupAngleStepEstimate> Steps { 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><<a class="xref" href="Hi.MillingForces.Training.SetupAngleStepEstimate.html">SetupAngleStepEstimate</a>></dt>
|
||||
<dd></dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a id="Hi_MillingForces_Training_SetupAngleEstimate_Succeeded_" data-uid="Hi.MillingForces.Training.SetupAngleEstimate.Succeeded*"></a>
|
||||
|
||||
<h3 id="Hi_MillingForces_Training_SetupAngleEstimate_Succeeded" data-uid="Hi.MillingForces.Training.SetupAngleEstimate.Succeeded">
|
||||
Succeeded
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>False when no estimate could be formed; <a class="xref" href="Hi.MillingForces.Training.SetupAngleEstimate.html#Hi_MillingForces_Training_SetupAngleEstimate_Note">Note</a> says why.</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public bool Succeeded { get; set; }</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h4 class="section">Property Value</h4>
|
||||
<dl class="parameters">
|
||||
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.boolean">bool</a></dt>
|
||||
<dd></dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a id="Hi_MillingForces_Training_SetupAngleEstimate_ToolId_" data-uid="Hi.MillingForces.Training.SetupAngleEstimate.ToolId*"></a>
|
||||
|
||||
<h3 id="Hi_MillingForces_Training_SetupAngleEstimate_ToolId" data-uid="Hi.MillingForces.Training.SetupAngleEstimate.ToolId">
|
||||
ToolId
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>Tool id of the cutter the samples came from; -1 when unknown.</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public int ToolId { get; set; }</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h4 class="section">Property Value</h4>
|
||||
<dl class="parameters">
|
||||
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int32">int</a></dt>
|
||||
<dd></dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a id="Hi_MillingForces_Training_SetupAngleEstimate_UsedStepNum_" data-uid="Hi.MillingForces.Training.SetupAngleEstimate.UsedStepNum*"></a>
|
||||
|
||||
<h3 id="Hi_MillingForces_Training_SetupAngleEstimate_UsedStepNum" data-uid="Hi.MillingForces.Training.SetupAngleEstimate.UsedStepNum">
|
||||
UsedStepNum
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>Steps that survived the signal and outlier gates.</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public int UsedStepNum { get; set; }</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h4 class="section">Property Value</h4>
|
||||
<dl class="parameters">
|
||||
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int32">int</a></dt>
|
||||
<dd></dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</article>
|
||||
|
||||
<div class="contribution d-print-none">
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="affix">
|
||||
<nav id="affix"></nav>
|
||||
</div>
|
||||
</main>
|
||||
|
||||
<div class="container-xxl search-results" id="search-results"></div>
|
||||
|
||||
<footer class="border-top text-secondary">
|
||||
<div class="container-xxl">
|
||||
<div class="flex-fill">
|
||||
<span> Copyright © 2025 <a href='https://superhightech.com.tw'>Tech Coordinate</a>. All rights reserved. <a href='https://superhightech.com.tw'>超級高科技股份有限公司</a> © 2025 版權所有 </span>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,496 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Class SetupAngleEstimation | HiAPI-C# 2025 </title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="title" content="Class SetupAngleEstimation | HiAPI-C# 2025 ">
|
||||
|
||||
<meta name="description" content="Estimates the cutter setup angle from smart-holder moment samples and a known cutting parameter. Physics: for a cutter whose flutes are all alike, mounting it turned by φ inside the holder changes the spindle-rotation-frame transverse moment series in two ways only — every (Mx, My) vector rotates by φ and the series shifts by φ along the rotation angle. The per-step begin-angle alignment the training pipeline already performs absorbs the shift, so φ survives solely as a constant planar rotation of the model's (Mx, My) against the measured (Mx, My); Mz, Fz and the workpiece-frame forces carry no information about it. The estimate is therefore a rotation-plus-scale (complex gain) Procrustes fit shared by all steps, with the begin-angle hypothesis chosen per step by brute force. Identifiability: the angle is determined only modulo the flute pitch (360/N for N uniform flutes) and only when the transverse envelope is modulated within a revolution — light side cuts or intermittent contact; a full slot with several flutes engaged at once leaves the objective flat, which exposes.">
|
||||
<link rel="icon" href="../img/HiAPI.favicon.ico">
|
||||
<link rel="stylesheet" href="../public/docfx.min.css">
|
||||
<link rel="stylesheet" href="../public/main.css">
|
||||
<meta name="docfx:navrel" content="../toc.html">
|
||||
<meta name="docfx:tocrel" content="toc.html">
|
||||
|
||||
<meta name="docfx:rel" content="../">
|
||||
|
||||
|
||||
|
||||
<meta name="loc:inThisArticle" content="In this article">
|
||||
<meta name="loc:searchResultsCount" content="{count} results for "{query}"">
|
||||
<meta name="loc:searchNoResults" content="No results for "{query}"">
|
||||
<meta name="loc:tocFilter" content="Filter by title">
|
||||
<meta name="loc:nextArticle" content="Next">
|
||||
<meta name="loc:prevArticle" content="Previous">
|
||||
<meta name="loc:themeLight" content="Light">
|
||||
<meta name="loc:themeDark" content="Dark">
|
||||
<meta name="loc:themeAuto" content="Auto">
|
||||
<meta name="loc:changeTheme" content="Change theme">
|
||||
<meta name="loc:copy" content="Copy">
|
||||
<meta name="loc:downloadPdf" content="Download PDF">
|
||||
|
||||
<script type="module" src="./../public/docfx.min.js"></script>
|
||||
|
||||
<script>
|
||||
const theme = localStorage.getItem('theme') || 'auto'
|
||||
document.documentElement.setAttribute('data-bs-theme', theme === 'auto' ? (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light') : theme)
|
||||
</script>
|
||||
|
||||
</head>
|
||||
|
||||
<body class="tex2jax_ignore" data-layout="" data-yaml-mime="ManagedReference">
|
||||
<header class="bg-body border-bottom">
|
||||
<nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
|
||||
<div class="container-xxl flex-nowrap">
|
||||
<a class="navbar-brand" href="../index.html">
|
||||
<img id="logo" class="svg" src="../img/HiAPI.logo.png" alt="">
|
||||
|
||||
</a>
|
||||
<button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">
|
||||
<i class="bi bi-three-dots"></i>
|
||||
</button>
|
||||
<div class="collapse navbar-collapse" id="navpanel">
|
||||
<div id="navbar">
|
||||
<form class="search" role="search" id="search">
|
||||
<i class="bi bi-search"></i>
|
||||
<input class="form-control" id="search-query" type="search" disabled placeholder="Search" autocomplete="off" aria-label="Search">
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
</header>
|
||||
|
||||
<main class="container-xxl">
|
||||
<div class="toc-offcanvas">
|
||||
<div class="offcanvas-md offcanvas-start" tabindex="-1" id="tocOffcanvas" aria-labelledby="tocOffcanvasLabel">
|
||||
<div class="offcanvas-header">
|
||||
<h5 class="offcanvas-title" id="tocOffcanvasLabel">Table of Contents</h5>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" data-bs-target="#tocOffcanvas" aria-label="Close"></button>
|
||||
</div>
|
||||
<div class="offcanvas-body">
|
||||
<nav class="toc" id="toc"></nav>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="content">
|
||||
<div class="actionbar">
|
||||
<button class="btn btn-lg border-0 d-md-none" type="button" data-bs-toggle="offcanvas" data-bs-target="#tocOffcanvas" aria-controls="tocOffcanvas" aria-expanded="false" aria-label="Show table of contents">
|
||||
<i class="bi bi-list"></i>
|
||||
</button>
|
||||
|
||||
<nav id="breadcrumb"></nav>
|
||||
</div>
|
||||
|
||||
<article data-uid="Hi.MillingForces.Training.SetupAngleEstimation">
|
||||
|
||||
|
||||
|
||||
<h1 id="Hi_MillingForces_Training_SetupAngleEstimation" data-uid="Hi.MillingForces.Training.SetupAngleEstimation" class="text-break">
|
||||
Class SetupAngleEstimation
|
||||
</h1>
|
||||
|
||||
<div class="facts text-secondary">
|
||||
<dl><dt>Namespace</dt><dd><a class="xref" href="Hi.html">Hi</a>.<a class="xref" href="Hi.MillingForces.html">MillingForces</a>.<a class="xref" href="Hi.MillingForces.Training.html">Training</a></dd></dl>
|
||||
<dl><dt>Assembly</dt><dd>HiNc.dll</dd></dl>
|
||||
</div>
|
||||
|
||||
<div class="markdown summary"><p>Estimates the cutter setup angle from smart-holder moment samples and a
|
||||
known cutting parameter.</p>
|
||||
<p>
|
||||
Physics: for a cutter whose flutes are all alike, mounting it turned by
|
||||
φ inside the holder changes the spindle-rotation-frame transverse moment
|
||||
series in two ways only — every (Mx, My) vector rotates by φ and the
|
||||
series shifts by φ along the rotation angle. The per-step begin-angle
|
||||
alignment the training pipeline already performs absorbs the shift, so
|
||||
φ survives solely as a constant planar rotation of the model's (Mx, My)
|
||||
against the measured (Mx, My); Mz, Fz and the workpiece-frame forces
|
||||
carry no information about it. The estimate is therefore a
|
||||
rotation-plus-scale (complex gain) Procrustes fit shared by all steps,
|
||||
with the begin-angle hypothesis chosen per step by brute force.
|
||||
</p>
|
||||
<p>
|
||||
Identifiability: the angle is determined only modulo the flute pitch
|
||||
(360/N for N uniform flutes) and only when the transverse envelope is
|
||||
modulated within a revolution — light side cuts or intermittent contact;
|
||||
a full slot with several flutes engaged at once leaves the objective
|
||||
flat, which <a class="xref" href="Hi.MillingForces.Training.SetupAngleEstimate.html#Hi_MillingForces_Training_SetupAngleEstimate_Contrast">Contrast</a> exposes.
|
||||
</p>
|
||||
</div>
|
||||
<div class="markdown conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public static class SetupAngleEstimation</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<dl class="typelist inheritance">
|
||||
<dt>Inheritance</dt>
|
||||
<dd>
|
||||
<div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a></div>
|
||||
<div><span class="xref">SetupAngleEstimation</span></div>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
<dl class="typelist inheritedMembers">
|
||||
<dt>Inherited Members</dt>
|
||||
<dd>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object)">object.Equals(object)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object)">object.Equals(object, object)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gethashcode">object.GetHashCode()</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gettype">object.GetType()</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.memberwiseclone">object.MemberwiseClone()</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.referenceequals">object.ReferenceEquals(object, object)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.tostring">object.ToString()</a>
|
||||
</div>
|
||||
</dd></dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h2 class="section" id="fields">Fields
|
||||
</h2>
|
||||
|
||||
|
||||
|
||||
<h3 id="Hi_MillingForces_Training_SetupAngleEstimation_MaxAlternations" data-uid="Hi.MillingForces.Training.SetupAngleEstimation.MaxAlternations">
|
||||
MaxAlternations
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>Upper bound on begin-angle / gain alternations per pass.</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public const int MaxAlternations = 30</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<h4 class="section">Field Value</h4>
|
||||
<dl class="parameters">
|
||||
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int32">int</a></dt>
|
||||
<dd></dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h3 id="Hi_MillingForces_Training_SetupAngleEstimation_MaxTrimRounds" data-uid="Hi.MillingForces.Training.SetupAngleEstimation.MaxTrimRounds">
|
||||
MaxTrimRounds
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>Upper bound on outlier-trim rounds (trim, re-solve, re-score).</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public const int MaxTrimRounds = 4</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<h4 class="section">Field Value</h4>
|
||||
<dl class="parameters">
|
||||
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int32">int</a></dt>
|
||||
<dd></dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h2 class="section" id="properties">Properties
|
||||
</h2>
|
||||
|
||||
|
||||
<a id="Hi_MillingForces_Training_SetupAngleEstimation_EnergyCapOverMedian_" data-uid="Hi.MillingForces.Training.SetupAngleEstimation.EnergyCapOverMedian*"></a>
|
||||
|
||||
<h3 id="Hi_MillingForces_Training_SetupAngleEstimation_EnergyCapOverMedian" data-uid="Hi.MillingForces.Training.SetupAngleEstimation.EnergyCapOverMedian">
|
||||
EnergyCapOverMedian
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>A step whose measured energy exceeds this multiple of the median is weighted down to it.</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public static double EnergyCapOverMedian { get; set; }</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h4 class="section">Property Value</h4>
|
||||
<dl class="parameters">
|
||||
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
|
||||
<dd></dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a id="Hi_MillingForces_Training_SetupAngleEstimation_GridStep_deg_" data-uid="Hi.MillingForces.Training.SetupAngleEstimation.GridStep_deg*"></a>
|
||||
|
||||
<h3 id="Hi_MillingForces_Training_SetupAngleEstimation_GridStep_deg" data-uid="Hi.MillingForces.Training.SetupAngleEstimation.GridStep_deg">
|
||||
GridStep_deg
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>Angle grid step (deg) of the global search; the closed-form refinement makes the estimate sub-grid.</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public static double GridStep_deg { get; set; }</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h4 class="section">Property Value</h4>
|
||||
<dl class="parameters">
|
||||
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
|
||||
<dd></dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a id="Hi_MillingForces_Training_SetupAngleEstimation_LowContrastThreshold_" data-uid="Hi.MillingForces.Training.SetupAngleEstimation.LowContrastThreshold*"></a>
|
||||
|
||||
<h3 id="Hi_MillingForces_Training_SetupAngleEstimation_LowContrastThreshold" data-uid="Hi.MillingForces.Training.SetupAngleEstimation.LowContrastThreshold">
|
||||
LowContrastThreshold
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>Objective contrast (see <a class="xref" href="Hi.MillingForces.Training.SetupAngleEstimate.html#Hi_MillingForces_Training_SetupAngleEstimate_Contrast">Contrast</a>) below which the estimate is reported as unconstrained.</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public static double LowContrastThreshold { get; set; }</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h4 class="section">Property Value</h4>
|
||||
<dl class="parameters">
|
||||
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
|
||||
<dd></dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a id="Hi_MillingForces_Training_SetupAngleEstimation_MirrorPreferenceRatio_" data-uid="Hi.MillingForces.Training.SetupAngleEstimation.MirrorPreferenceRatio*"></a>
|
||||
|
||||
<h3 id="Hi_MillingForces_Training_SetupAngleEstimation_MirrorPreferenceRatio" data-uid="Hi.MillingForces.Training.SetupAngleEstimation.MirrorPreferenceRatio">
|
||||
MirrorPreferenceRatio
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>The mirrored-frame hypothesis is reported as preferred when its objective
|
||||
falls below this fraction of the plain hypothesis' objective.</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public static double MirrorPreferenceRatio { get; set; }</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h4 class="section">Property Value</h4>
|
||||
<dl class="parameters">
|
||||
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
|
||||
<dd></dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a id="Hi_MillingForces_Training_SetupAngleEstimation_RotationSignConvention_" data-uid="Hi.MillingForces.Training.SetupAngleEstimation.RotationSignConvention*"></a>
|
||||
|
||||
<h3 id="Hi_MillingForces_Training_SetupAngleEstimation_RotationSignConvention" data-uid="Hi.MillingForces.Training.SetupAngleEstimation.RotationSignConvention">
|
||||
RotationSignConvention
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>Sign relating the estimate to the cutter's <code>SetupAngle_deg</code>:
|
||||
the setup angle to enter is <code>current + RotationSignConvention · Angle_deg</code>.
|
||||
Pinned by the sim replay test (a cutter exported at a known setup angle
|
||||
must be recovered with this sign).</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public static int RotationSignConvention { get; set; }</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h4 class="section">Property Value</h4>
|
||||
<dl class="parameters">
|
||||
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int32">int</a></dt>
|
||||
<dd></dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h2 class="section" id="methods">Methods
|
||||
</h2>
|
||||
|
||||
|
||||
<a id="Hi_MillingForces_Training_SetupAngleEstimation_Estimate_" data-uid="Hi.MillingForces.Training.SetupAngleEstimation.Estimate*"></a>
|
||||
|
||||
<h3 id="Hi_MillingForces_Training_SetupAngleEstimation_Estimate_System_Collections_Generic_IEnumerable_System_Collections_Generic_KeyValuePair_System_Int32_System_Collections_Generic_List_System_Collections_Generic_List_Hi_MillingForces_Fittings_TrainingSample_____System_Double___Hi_MillingForces_Fittings_SampleFlag_System_Int32_System_Double_System_Double_System_IProgress_Hi_Common_Messages_IMessage__System_Threading_CancellationToken_" data-uid="Hi.MillingForces.Training.SetupAngleEstimation.Estimate(System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.Int32,System.Collections.Generic.List{System.Collections.Generic.List{Hi.MillingForces.Fittings.TrainingSample}}}},System.Double[],Hi.MillingForces.Fittings.SampleFlag,System.Int32,System.Double,System.Double,System.IProgress{Hi.Common.Messages.IMessage},System.Threading.CancellationToken)">
|
||||
Estimate(IEnumerable<KeyValuePair<int, List<List<TrainingSample>>>>, double[], SampleFlag, int, double, double, IProgress<IMessage>, CancellationToken)
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>Estimates the setup angle from gathered angle-hypothesis samples
|
||||
(the <code>GatherSampleByAngle</code> structure: hypothesis list b at instance
|
||||
i pairs the model row of angle (b+i) mod N with the measured value at
|
||||
instance i).</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public static SetupAngleEstimate Estimate(IEnumerable<KeyValuePair<int, List<List<TrainingSample>>>> stepIndexToAngleSamples, double[] paraVector, SampleFlag sampleFlags, int fluteNum, double period_deg, double outlierRatio, IProgress<IMessage> messageProgress, CancellationToken cancellationToken)</code></pre>
|
||||
</div>
|
||||
|
||||
<h4 class="section">Parameters</h4>
|
||||
<dl class="parameters">
|
||||
<dt><code>stepIndexToAngleSamples</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.generic.ienumerable-1">IEnumerable</a><<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.generic.keyvaluepair-2">KeyValuePair</a><<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int32">int</a>, <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.generic.list-1">List</a><<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.generic.list-1">List</a><<a class="xref" href="Hi.MillingForces.Fittings.TrainingSample.html">TrainingSample</a>>>>></dt>
|
||||
<dd><p>Gathered samples per step.</p>
|
||||
</dd>
|
||||
<dt><code>paraVector</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a>[]</dt>
|
||||
<dd><p>The known cutting parameter as an element vector (the gather's template order).</p>
|
||||
</dd>
|
||||
<dt><code>sampleFlags</code> <a class="xref" href="Hi.MillingForces.Fittings.SampleFlag.html">SampleFlag</a></dt>
|
||||
<dd><p>Channels gathered; must include Mx and My. Mz, when present, only helps the begin-angle choice.</p>
|
||||
</dd>
|
||||
<dt><code>fluteNum</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int32">int</a></dt>
|
||||
<dd><p>Flute count of the cutter.</p>
|
||||
</dd>
|
||||
<dt><code>period_deg</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
|
||||
<dd><p>Ambiguity period of the angle (360/N for uniform fluting).</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>messageProgress</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.iprogress-1">IProgress</a><<a class="xref" href="Hi.Common.Messages.IMessage.html">IMessage</a>></dt>
|
||||
<dd><p>Message sink.</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>
|
||||
</dl>
|
||||
|
||||
<h4 class="section">Returns</h4>
|
||||
<dl class="parameters">
|
||||
<dt><a class="xref" href="Hi.MillingForces.Training.SetupAngleEstimate.html">SetupAngleEstimate</a></dt>
|
||||
<dd></dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</article>
|
||||
|
||||
<div class="contribution d-print-none">
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="affix">
|
||||
<nav id="affix"></nav>
|
||||
</div>
|
||||
</main>
|
||||
|
||||
<div class="container-xxl search-results" id="search-results"></div>
|
||||
|
||||
<footer class="border-top text-secondary">
|
||||
<div class="container-xxl">
|
||||
<div class="flex-fill">
|
||||
<span> Copyright © 2025 <a href='https://superhightech.com.tw'>Tech Coordinate</a>. All rights reserved. <a href='https://superhightech.com.tw'>超級高科技股份有限公司</a> © 2025 版權所有 </span>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,463 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Class SetupAngleStepEstimate | HiAPI-C# 2025 </title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="title" content="Class SetupAngleStepEstimate | HiAPI-C# 2025 ">
|
||||
|
||||
<meta name="description" content="Per-step diagnostics of a .">
|
||||
<link rel="icon" href="../img/HiAPI.favicon.ico">
|
||||
<link rel="stylesheet" href="../public/docfx.min.css">
|
||||
<link rel="stylesheet" href="../public/main.css">
|
||||
<meta name="docfx:navrel" content="../toc.html">
|
||||
<meta name="docfx:tocrel" content="toc.html">
|
||||
|
||||
<meta name="docfx:rel" content="../">
|
||||
|
||||
|
||||
|
||||
<meta name="loc:inThisArticle" content="In this article">
|
||||
<meta name="loc:searchResultsCount" content="{count} results for "{query}"">
|
||||
<meta name="loc:searchNoResults" content="No results for "{query}"">
|
||||
<meta name="loc:tocFilter" content="Filter by title">
|
||||
<meta name="loc:nextArticle" content="Next">
|
||||
<meta name="loc:prevArticle" content="Previous">
|
||||
<meta name="loc:themeLight" content="Light">
|
||||
<meta name="loc:themeDark" content="Dark">
|
||||
<meta name="loc:themeAuto" content="Auto">
|
||||
<meta name="loc:changeTheme" content="Change theme">
|
||||
<meta name="loc:copy" content="Copy">
|
||||
<meta name="loc:downloadPdf" content="Download PDF">
|
||||
|
||||
<script type="module" src="./../public/docfx.min.js"></script>
|
||||
|
||||
<script>
|
||||
const theme = localStorage.getItem('theme') || 'auto'
|
||||
document.documentElement.setAttribute('data-bs-theme', theme === 'auto' ? (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light') : theme)
|
||||
</script>
|
||||
|
||||
</head>
|
||||
|
||||
<body class="tex2jax_ignore" data-layout="" data-yaml-mime="ManagedReference">
|
||||
<header class="bg-body border-bottom">
|
||||
<nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
|
||||
<div class="container-xxl flex-nowrap">
|
||||
<a class="navbar-brand" href="../index.html">
|
||||
<img id="logo" class="svg" src="../img/HiAPI.logo.png" alt="">
|
||||
|
||||
</a>
|
||||
<button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">
|
||||
<i class="bi bi-three-dots"></i>
|
||||
</button>
|
||||
<div class="collapse navbar-collapse" id="navpanel">
|
||||
<div id="navbar">
|
||||
<form class="search" role="search" id="search">
|
||||
<i class="bi bi-search"></i>
|
||||
<input class="form-control" id="search-query" type="search" disabled placeholder="Search" autocomplete="off" aria-label="Search">
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
</header>
|
||||
|
||||
<main class="container-xxl">
|
||||
<div class="toc-offcanvas">
|
||||
<div class="offcanvas-md offcanvas-start" tabindex="-1" id="tocOffcanvas" aria-labelledby="tocOffcanvasLabel">
|
||||
<div class="offcanvas-header">
|
||||
<h5 class="offcanvas-title" id="tocOffcanvasLabel">Table of Contents</h5>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" data-bs-target="#tocOffcanvas" aria-label="Close"></button>
|
||||
</div>
|
||||
<div class="offcanvas-body">
|
||||
<nav class="toc" id="toc"></nav>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="content">
|
||||
<div class="actionbar">
|
||||
<button class="btn btn-lg border-0 d-md-none" type="button" data-bs-toggle="offcanvas" data-bs-target="#tocOffcanvas" aria-controls="tocOffcanvas" aria-expanded="false" aria-label="Show table of contents">
|
||||
<i class="bi bi-list"></i>
|
||||
</button>
|
||||
|
||||
<nav id="breadcrumb"></nav>
|
||||
</div>
|
||||
|
||||
<article data-uid="Hi.MillingForces.Training.SetupAngleStepEstimate">
|
||||
|
||||
|
||||
|
||||
<h1 id="Hi_MillingForces_Training_SetupAngleStepEstimate" data-uid="Hi.MillingForces.Training.SetupAngleStepEstimate" class="text-break">
|
||||
Class SetupAngleStepEstimate
|
||||
</h1>
|
||||
|
||||
<div class="facts text-secondary">
|
||||
<dl><dt>Namespace</dt><dd><a class="xref" href="Hi.html">Hi</a>.<a class="xref" href="Hi.MillingForces.html">MillingForces</a>.<a class="xref" href="Hi.MillingForces.Training.html">Training</a></dd></dl>
|
||||
<dl><dt>Assembly</dt><dd>HiNc.dll</dd></dl>
|
||||
</div>
|
||||
|
||||
<div class="markdown summary"><p>Per-step diagnostics of a <a class="xref" href="Hi.MillingForces.Training.SetupAngleEstimate.html">SetupAngleEstimate</a>.</p>
|
||||
</div>
|
||||
<div class="markdown conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public sealed class SetupAngleStepEstimate</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<dl class="typelist inheritance">
|
||||
<dt>Inheritance</dt>
|
||||
<dd>
|
||||
<div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a></div>
|
||||
<div><span class="xref">SetupAngleStepEstimate</span></div>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
<dl class="typelist inheritedMembers">
|
||||
<dt>Inherited Members</dt>
|
||||
<dd>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object)">object.Equals(object)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object)">object.Equals(object, object)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gethashcode">object.GetHashCode()</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gettype">object.GetType()</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.referenceequals">object.ReferenceEquals(object, object)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.tostring">object.ToString()</a>
|
||||
</div>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="typelist extensionMethods">
|
||||
<dt>Extension Methods</dt>
|
||||
<dd>
|
||||
<div>
|
||||
<a class="xref" href="Hi.Common.DuplicateUtil.html#Hi_Common_DuplicateUtil_TryDuplicate__1___0_System_Object___">DuplicateUtil.TryDuplicate<TSelf>(TSelf, params object[])</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="Hi.Common.InvokeUtil.html#Hi_Common_InvokeUtil_SelfInvoke__1___0_System_Action___0__">InvokeUtil.SelfInvoke<TSrc>(TSrc, Action<TSrc>)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="Hi.Common.InvokeUtil.html#Hi_Common_InvokeUtil_SelfInvoke__2___0_System_Func___0___1__">InvokeUtil.SelfInvoke<TSrc, TDst>(TSrc, Func<TSrc, TDst>)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="Hi.Coloring.ColorUtil.html#Hi_Coloring_ColorUtil_GetGloomyColor_System_Object_System_Double_System_Double_">ColorUtil.GetGloomyColor(object, double, double)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="Hi.Common.NameUtil.html#Hi_Common_NameUtil_GetSelectionName_System_Object_">NameUtil.GetSelectionName(object)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="Hi.Common.StringUtil.html#Hi_Common_StringUtil_GetPropertyStringIfToStringNotOverloaded_System_Object_System_Boolean_System_Boolean_">StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool)</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="xref" href="Hi.Parallels.LockUtil.html#Hi_Parallels_LockUtil_Lock_System_Object_">LockUtil.Lock(object)</a>
|
||||
</div>
|
||||
</dd></dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h2 class="section" id="properties">Properties
|
||||
</h2>
|
||||
|
||||
|
||||
<a id="Hi_MillingForces_Training_SetupAngleStepEstimate_AlignedBin_" data-uid="Hi.MillingForces.Training.SetupAngleStepEstimate.AlignedBin*"></a>
|
||||
|
||||
<h3 id="Hi_MillingForces_Training_SetupAngleStepEstimate_AlignedBin" data-uid="Hi.MillingForces.Training.SetupAngleStepEstimate.AlignedBin">
|
||||
AlignedBin
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>Begin-angle hypothesis (bin) the step aligned to under the final estimate.</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public int AlignedBin { get; set; }</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h4 class="section">Property Value</h4>
|
||||
<dl class="parameters">
|
||||
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int32">int</a></dt>
|
||||
<dd></dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a id="Hi_MillingForces_Training_SetupAngleStepEstimate_Angle_deg_" data-uid="Hi.MillingForces.Training.SetupAngleStepEstimate.Angle_deg*"></a>
|
||||
|
||||
<h3 id="Hi_MillingForces_Training_SetupAngleStepEstimate_Angle_deg" data-uid="Hi.MillingForces.Training.SetupAngleStepEstimate.Angle_deg">
|
||||
Angle_deg
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>The step's own rotation estimate (deg, folded into the flute period):
|
||||
the argument of its complex correlation at <a class="xref" href="Hi.MillingForces.Training.SetupAngleStepEstimate.html#Hi_MillingForces_Training_SetupAngleStepEstimate_AlignedBin">AlignedBin</a>.</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public double Angle_deg { get; set; }</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h4 class="section">Property Value</h4>
|
||||
<dl class="parameters">
|
||||
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
|
||||
<dd></dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a id="Hi_MillingForces_Training_SetupAngleStepEstimate_InstanceNum_" data-uid="Hi.MillingForces.Training.SetupAngleStepEstimate.InstanceNum*"></a>
|
||||
|
||||
<h3 id="Hi_MillingForces_Training_SetupAngleStepEstimate_InstanceNum" data-uid="Hi.MillingForces.Training.SetupAngleStepEstimate.InstanceNum">
|
||||
InstanceNum
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>Number of sampling instances the step contributed.</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public int InstanceNum { get; set; }</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h4 class="section">Property Value</h4>
|
||||
<dl class="parameters">
|
||||
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int32">int</a></dt>
|
||||
<dd></dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a id="Hi_MillingForces_Training_SetupAngleStepEstimate_ModelRipple_" data-uid="Hi.MillingForces.Training.SetupAngleStepEstimate.ModelRipple*"></a>
|
||||
|
||||
<h3 id="Hi_MillingForces_Training_SetupAngleStepEstimate_ModelRipple" data-uid="Hi.MillingForces.Training.SetupAngleStepEstimate.ModelRipple">
|
||||
ModelRipple
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>Model-side identifiability of the step, 0..1: the share of the
|
||||
running-frame transverse moment's energy that varies within a turn
|
||||
(√(Σ|H − H̄|² / Σ|H|²)). 0 is a constant running-frame moment, whose
|
||||
rotation-frame series is a pure rotating vector carrying no
|
||||
setup-angle information; an intermittent side cut is close to 1.</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public double ModelRipple { get; set; }</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h4 class="section">Property Value</h4>
|
||||
<dl class="parameters">
|
||||
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
|
||||
<dd></dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a id="Hi_MillingForces_Training_SetupAngleStepEstimate_ResidualRatio_" data-uid="Hi.MillingForces.Training.SetupAngleStepEstimate.ResidualRatio*"></a>
|
||||
|
||||
<h3 id="Hi_MillingForces_Training_SetupAngleStepEstimate_ResidualRatio" data-uid="Hi.MillingForces.Training.SetupAngleStepEstimate.ResidualRatio">
|
||||
ResidualRatio
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>Residual energy over measured energy at the final estimate (0 = perfect fit).</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public double ResidualRatio { get; set; }</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h4 class="section">Property Value</h4>
|
||||
<dl class="parameters">
|
||||
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
|
||||
<dd></dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a id="Hi_MillingForces_Training_SetupAngleStepEstimate_StepIndex_" data-uid="Hi.MillingForces.Training.SetupAngleStepEstimate.StepIndex*"></a>
|
||||
|
||||
<h3 id="Hi_MillingForces_Training_SetupAngleStepEstimate_StepIndex" data-uid="Hi.MillingForces.Training.SetupAngleStepEstimate.StepIndex">
|
||||
StepIndex
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>Step index (key of the gathered sample dictionary).</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public int StepIndex { get; set; }</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h4 class="section">Property Value</h4>
|
||||
<dl class="parameters">
|
||||
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int32">int</a></dt>
|
||||
<dd></dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a id="Hi_MillingForces_Training_SetupAngleStepEstimate_Used_" data-uid="Hi.MillingForces.Training.SetupAngleStepEstimate.Used*"></a>
|
||||
|
||||
<h3 id="Hi_MillingForces_Training_SetupAngleStepEstimate_Used" data-uid="Hi.MillingForces.Training.SetupAngleStepEstimate.Used">
|
||||
Used
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>False when the step was trimmed as an outlier or carried no usable signal.</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public bool Used { get; set; }</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h4 class="section">Property Value</h4>
|
||||
<dl class="parameters">
|
||||
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.boolean">bool</a></dt>
|
||||
<dd></dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a id="Hi_MillingForces_Training_SetupAngleStepEstimate_Weight_" data-uid="Hi.MillingForces.Training.SetupAngleStepEstimate.Weight*"></a>
|
||||
|
||||
<h3 id="Hi_MillingForces_Training_SetupAngleStepEstimate_Weight" data-uid="Hi.MillingForces.Training.SetupAngleStepEstimate.Weight">
|
||||
Weight
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>Weight of the step in the pooled estimate (|Z| at the aligned bin).</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public double Weight { get; set; }</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h4 class="section">Property Value</h4>
|
||||
<dl class="parameters">
|
||||
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
|
||||
<dd></dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</article>
|
||||
|
||||
<div class="contribution d-print-none">
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="affix">
|
||||
<nav id="affix"></nav>
|
||||
</div>
|
||||
</main>
|
||||
|
||||
<div class="container-xxl search-results" id="search-results"></div>
|
||||
|
||||
<footer class="border-top text-secondary">
|
||||
<div class="container-xxl">
|
||||
<div class="flex-fill">
|
||||
<span> Copyright © 2025 <a href='https://superhightech.com.tw'>Tech Coordinate</a>. All rights reserved. <a href='https://superhightech.com.tw'>超級高科技股份有限公司</a> © 2025 版權所有 </span>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
</body>
|
||||
</html>
|
||||
@@ -110,6 +110,44 @@ without touching the file system.</p>
|
||||
<dd><p>Provides utilities for milling force training and parameter identification.</p>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="jumplist">
|
||||
<dt><a class="xref" href="Hi.MillingForces.Training.SetupAngleEstimate.html">SetupAngleEstimate</a></dt>
|
||||
<dd><p>Result of <a class="xref" href="Hi.MillingForces.Training.SetupAngleEstimation.html#Hi_MillingForces_Training_SetupAngleEstimation_Estimate_System_Collections_Generic_IEnumerable_System_Collections_Generic_KeyValuePair_System_Int32_System_Collections_Generic_List_System_Collections_Generic_List_Hi_MillingForces_Fittings_TrainingSample_____System_Double___Hi_MillingForces_Fittings_SampleFlag_System_Int32_System_Double_System_Double_System_IProgress_Hi_Common_Messages_IMessage__System_Threading_CancellationToken_">Estimate(IEnumerable<KeyValuePair<int, List<List<TrainingSample>>>>, double[], SampleFlag, int, double, double, IProgress<IMessage>, CancellationToken)</a>: the rotation of the
|
||||
measured spindle-rotation-frame transverse moment (Mx, My) relative to the
|
||||
model built from a known cutting parameter, i.e. the cutter setup angle
|
||||
the model is missing, plus the diagnostics that say how much to trust it.</p>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="jumplist">
|
||||
<dt><a class="xref" href="Hi.MillingForces.Training.SetupAngleEstimation.html">SetupAngleEstimation</a></dt>
|
||||
<dd><p>Estimates the cutter setup angle from smart-holder moment samples and a
|
||||
known cutting parameter.</p>
|
||||
<p>
|
||||
Physics: for a cutter whose flutes are all alike, mounting it turned by
|
||||
φ inside the holder changes the spindle-rotation-frame transverse moment
|
||||
series in two ways only — every (Mx, My) vector rotates by φ and the
|
||||
series shifts by φ along the rotation angle. The per-step begin-angle
|
||||
alignment the training pipeline already performs absorbs the shift, so
|
||||
φ survives solely as a constant planar rotation of the model's (Mx, My)
|
||||
against the measured (Mx, My); Mz, Fz and the workpiece-frame forces
|
||||
carry no information about it. The estimate is therefore a
|
||||
rotation-plus-scale (complex gain) Procrustes fit shared by all steps,
|
||||
with the begin-angle hypothesis chosen per step by brute force.
|
||||
</p>
|
||||
<p>
|
||||
Identifiability: the angle is determined only modulo the flute pitch
|
||||
(360/N for N uniform flutes) and only when the transverse envelope is
|
||||
modulated within a revolution — light side cuts or intermittent contact;
|
||||
a full slot with several flutes engaged at once leaves the objective
|
||||
flat, which <a class="xref" href="Hi.MillingForces.Training.SetupAngleEstimate.html#Hi_MillingForces_Training_SetupAngleEstimate_Contrast">Contrast</a> exposes.
|
||||
</p>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="jumplist">
|
||||
<dt><a class="xref" href="Hi.MillingForces.Training.SetupAngleStepEstimate.html">SetupAngleStepEstimate</a></dt>
|
||||
<dd><p>Per-step diagnostics of a <a class="xref" href="Hi.MillingForces.Training.SetupAngleEstimate.html">SetupAngleEstimate</a>.</p>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
|
||||
</article>
|
||||
|
||||
@@ -155,8 +155,8 @@ Class XyzabcUtil
|
||||
|
||||
<a id="Hi_Numerical_Xyzabc_XyzabcUtil_BuildAnchorToSolid_" data-uid="Hi.Numerical.Xyzabc.XyzabcUtil.BuildAnchorToSolid*"></a>
|
||||
|
||||
<h3 id="Hi_Numerical_Xyzabc_XyzabcUtil_BuildAnchorToSolid_System_Collections_Generic_Dictionary_Hi_Mech_Topo_Anchor_Hi_NcMech_Solids_Solid__System_Collections_Generic_List_Hi_Mech_Topo_Anchor__System_Collections_Generic_Dictionary_System_String_Hi_NcMech_Solids_Solid__" data-uid="Hi.Numerical.Xyzabc.XyzabcUtil.BuildAnchorToSolid(System.Collections.Generic.Dictionary{Hi.Mech.Topo.Anchor,Hi.NcMech.Solids.Solid},System.Collections.Generic.List{Hi.Mech.Topo.Anchor},System.Collections.Generic.Dictionary{System.String,Hi.NcMech.Solids.Solid})">
|
||||
BuildAnchorToSolid(Dictionary<Anchor, Solid>, List<Anchor>, Dictionary<string, Solid>)
|
||||
<h3 id="Hi_Numerical_Xyzabc_XyzabcUtil_BuildAnchorToSolid_System_Collections_Generic_Dictionary_Hi_Mech_Topo_Anchor_Hi_NcMech_Solids_Solid__System_Collections_Generic_IEnumerable_Hi_Mech_Topo_Anchor__System_Collections_Generic_Dictionary_System_String_Hi_NcMech_Solids_Solid__" data-uid="Hi.Numerical.Xyzabc.XyzabcUtil.BuildAnchorToSolid(System.Collections.Generic.Dictionary{Hi.Mech.Topo.Anchor,Hi.NcMech.Solids.Solid},System.Collections.Generic.IEnumerable{Hi.Mech.Topo.Anchor},System.Collections.Generic.Dictionary{System.String,Hi.NcMech.Solids.Solid})">
|
||||
BuildAnchorToSolid(Dictionary<Anchor, Solid>, IEnumerable<Anchor>, Dictionary<string, Solid>)
|
||||
|
||||
</h3>
|
||||
|
||||
@@ -165,7 +165,7 @@ Class XyzabcUtil
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public static void BuildAnchorToSolid(this Dictionary<Anchor, Solid> dstAnchorToSolidDictionary, List<Anchor> anchors, Dictionary<string, Solid> keyToSolid)</code></pre>
|
||||
<pre><code class="lang-csharp hljs">public static void BuildAnchorToSolid(this Dictionary<Anchor, Solid> dstAnchorToSolidDictionary, IEnumerable<Anchor> anchors, Dictionary<string, Solid> keyToSolid)</code></pre>
|
||||
</div>
|
||||
|
||||
<h4 class="section">Parameters</h4>
|
||||
@@ -173,7 +173,7 @@ Class XyzabcUtil
|
||||
<dt><code>dstAnchorToSolidDictionary</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.generic.dictionary-2">Dictionary</a><<a class="xref" href="Hi.Mech.Topo.Anchor.html">Anchor</a>, <a class="xref" href="Hi.NcMech.Solids.Solid.html">Solid</a>></dt>
|
||||
<dd><p>The destination dictionary to populate</p>
|
||||
</dd>
|
||||
<dt><code>anchors</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.generic.list-1">List</a><<a class="xref" href="Hi.Mech.Topo.Anchor.html">Anchor</a>></dt>
|
||||
<dt><code>anchors</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.generic.ienumerable-1">IEnumerable</a><<a class="xref" href="Hi.Mech.Topo.Anchor.html">Anchor</a>></dt>
|
||||
<dd><p>List of anchors</p>
|
||||
</dd>
|
||||
<dt><code>keyToSolid</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.generic.dictionary-2">Dictionary</a><<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a>, <a class="xref" href="Hi.NcMech.Solids.Solid.html">Solid</a>></dt>
|
||||
|
||||
@@ -2098,6 +2098,15 @@
|
||||
<li>
|
||||
<a href="Hi.MillingForces.Training.MillingTraining.html" name="" title="MillingTraining">MillingTraining</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="Hi.MillingForces.Training.SetupAngleEstimate.html" name="" title="SetupAngleEstimate">SetupAngleEstimate</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="Hi.MillingForces.Training.SetupAngleEstimation.html" name="" title="SetupAngleEstimation">SetupAngleEstimation</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="Hi.MillingForces.Training.SetupAngleStepEstimate.html" name="" title="SetupAngleStepEstimate">SetupAngleStepEstimate</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
|
||||
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user