This repository has been archived on 2026-10-11. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
HiNC-2025-win-desktop-Deploy/App/wwwroot/HiAPI-docsite/api/Hi.MillingForces.Training.SetupAngleEstimate.html
T
2026-09-17 10:22:49 +08:00

861 lines
27 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!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 &quot;{query}&quot;">
<meta name="loc:searchNoResults" content="No results for &quot;{query}&quot;">
<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&lt;KeyValuePair&lt;int, List&lt;List&lt;TrainingSample&gt;&gt;&gt;&gt;, double[], SampleFlag, int, double, double, IProgress&lt;IMessage&gt;, 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&lt;TSelf&gt;(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&lt;TSrc&gt;(TSrc, Action&lt;TSrc&gt;)</a>
</div>
<div>
<a class="xref" href="Hi.Common.InvokeUtil.html#Hi_Common_InvokeUtil_SelfInvoke__2___0_System_Func___0___1__">InvokeUtil.SelfInvoke&lt;TSrc, TDst&gt;(TSrc, Func&lt;TSrc, TDst&gt;)</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&lt;(double Angle_deg, double Objective)&gt; 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>&lt;(<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>)&gt;</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 (&lt; 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&lt;SetupAngleStepEstimate&gt; 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>&lt;<a class="xref" href="Hi.MillingForces.Training.SetupAngleStepEstimate.html">SetupAngleStepEstimate</a>&gt;</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>