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.MillingTraining.html
T
2026-09-09 17:35:23 +08:00

774 lines
28 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 MillingTraining | HiAPI-C# 2025 </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Class MillingTraining | HiAPI-C# 2025 ">
<meta name="description" content="Provides utilities for milling force training and parameter identification.">
<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.MillingTraining">
<h1 id="Hi_MillingForces_Training_MillingTraining" data-uid="Hi.MillingForces.Training.MillingTraining" class="text-break">
Class MillingTraining
</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>Provides utilities for milling force training and parameter identification.</p>
</div>
<div class="markdown conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static class MillingTraining</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">MillingTraining</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_MillingTraining_DesignMatrixSvdRelativeTol" data-uid="Hi.MillingForces.Training.MillingTraining.DesignMatrixSvdRelativeTol">
DesignMatrixSvdRelativeTol
</h3>
<div class="markdown level1 summary"><p>Relative singular-value cutoff (σ_i/σ_max on σ(M)) for the truncated
pseudo-inverse of the lead-para fit when
<a class="xref" href="Hi.MillingForces.Training.MillingTraining.html#Hi_MillingForces_Training_MillingTraining_EnableDesignMatrixSolver">EnableDesignMatrixSolver</a> is on. Replaces the legacy
absolute gap (1e-7) applied to σ(MᵀM) = σ(M)², whose effective cut
depends on the data scale.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static double DesignMatrixSvdRelativeTol</code></pre>
</div>
<h4 class="section">Field Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
<dd></dd>
</dl>
<h3 id="Hi_MillingForces_Training_MillingTraining_EnableCwePhasePairing" data-uid="Hi.MillingForces.Training.MillingTraining.EnableCwePhasePairing">
EnableCwePhasePairing
</h3>
<div class="markdown level1 summary"><p>When enabled, <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.concurrent.concurrentdictionary-2">GatherAndBuild(ICuttingPara, ConcurrentDictionary&lt;int, List&lt;ITimeShot&gt;&gt;, ClStrip, SampleFlag, bool, double, IProgress&lt;IMessage&gt;, CancellationToken, out double, out int)</a> determines each step's
rotation phase by the CWE block-pairing detector
(<span class="xref">Hi.MillingForces.Training.MillingPhasePairing</span>) instead of the self-bootstrapped
averaged-basis lead parameter, and replaces the averaged-basis outlier
pre-filter by a residual-based pass. Applies to one-flute and
symmetric two-flute cutters in light radial side cuts (contact arc
smaller than the flute pitch); when its preconditions do not hold the
training falls back to the legacy lead path with a warning.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static bool EnableCwePhasePairing</code></pre>
</div>
<h4 class="section">Field Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.boolean">bool</a></dt>
<dd></dd>
</dl>
<h3 id="Hi_MillingForces_Training_MillingTraining_EnableDesignMatrixSolver" data-uid="Hi.MillingForces.Training.MillingTraining.EnableDesignMatrixSolver">
EnableDesignMatrixSolver
</h3>
<div class="markdown level1 summary"><p>When enabled, the least-squares fits are solved directly on the N-by-p
design matrix M (thin QR, plus SVD of its R factor for the lead-para
truncated pseudo-inverse) instead of forming the normal-equation matrix
MᵀM first. Forming MᵀM squares the condition number
(κ(MᵀM) = κ(M)²), which halves the usable precision and blurs the rank
structure; the direct path keeps σ(M) intact at the same p-by-p solve
size. Experimental flag for the QR-vs-MᵀM solver comparison.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static bool EnableDesignMatrixSolver</code></pre>
</div>
<h4 class="section">Field Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.boolean">bool</a></dt>
<dd></dd>
</dl>
<h3 id="Hi_MillingForces_Training_MillingTraining_EnableMzLeverWeighting" data-uid="Hi.MillingForces.Training.MillingTraining.EnableMzLeverWeighting">
EnableMzLeverWeighting
</h3>
<div class="markdown level1 summary"><p>Gets or sets whether Mz lever weighting is enabled during training sample gathering.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static bool EnableMzLeverWeighting</code></pre>
</div>
<h4 class="section">Field Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.boolean">bool</a></dt>
<dd></dd>
</dl>
<h3 id="Hi_MillingForces_Training_MillingTraining_EnableSampleNormalization" data-uid="Hi.MillingForces.Training.MillingTraining.EnableSampleNormalization">
EnableSampleNormalization
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[Obsolete]
public static bool EnableSampleNormalization</code></pre>
</div>
<h4 class="section">Field Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.boolean">bool</a></dt>
<dd></dd>
</dl>
<h4 class="section" id="Hi_MillingForces_Training_MillingTraining_EnableSampleNormalization_remarks">Remarks</h4>
<div class="markdown level1 remarks"><p>The input normalization deminish the quantity effect.
The R-value decreases from 99% to 70% in an observed moment-training case.
Don't apply this option.</p>
</div>
<h3 id="Hi_MillingForces_Training_MillingTraining_MissingEngagementAbortRatio" data-uid="Hi.MillingForces.Training.MillingTraining.MissingEngagementAbortRatio">
MissingEngagementAbortRatio
</h3>
<div class="markdown level1 summary"><p>Abort threshold on the fraction of touched, force-bearing steps whose
milling-step engagement could not be used during sample gathering —
either the luggage row was unreadable, or the row was present but the
engagement was never built (physics inactive at simulation time). At
or below the threshold the misses are reported as a summary warning
and training continues on the remaining steps; above it the training
aborts with a <code>ConfigurationError</code> instead of silently building a
model from a fraction of the play (one such degraded sweep cell once
produced outlier coefficients that were nearly read as a resolution
effect). Set to <code>1</code> to never abort.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static double MissingEngagementAbortRatio</code></pre>
</div>
<h4 class="section">Field Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
<dd></dd>
</dl>
<h3 id="Hi_MillingForces_Training_MillingTraining_ReTrainAnchorOutputScale" data-uid="Hi.MillingForces.Training.MillingTraining.ReTrainAnchorOutputScale">
ReTrainAnchorOutputScale
</h3>
<div class="markdown level1 summary"><p>Weight scale of the virtual anchor samples that pull a
<a class="xref" href="Hi.MillingForces.Training.MillingTraining.html#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_">GatherAndGetUpdate(ConcurrentDictionary&lt;int, List&lt;ITimeShot&gt;&gt;, ClStrip, ICuttingPara, SampleFlag, double, IProgress&lt;IMessage&gt;, CancellationToken)</a> (ReTrain) result back toward its seed
parameter. The anchors are generated at
<code>scale * Σoutput / ElementNum</code> per coefficient, so their curvature
grows as N² against the data's N — at large sample counts they dominate
and the result reproduces the seed.</p>
<p>
Set to <code>0</code> to make ReTrain purely data-driven: the seed then only
supplies the phase alignment and the outlier scoring, which turns
ReTrain into an <b>external-lead identifiability instrument</b> ("with a
known-good lead but no prior, what do the data actually say?"). The
default 0.1 keeps the historical seed-anchored ridge behaviour.
</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static double ReTrainAnchorOutputScale</code></pre>
</div>
<h4 class="section">Field Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
<dd></dd>
</dl>
<h2 class="section" id="properties">Properties
</h2>
<a id="Hi_MillingForces_Training_MillingTraining_CycleDivisionNum_" data-uid="Hi.MillingForces.Training.MillingTraining.CycleDivisionNum*"></a>
<h3 id="Hi_MillingForces_Training_MillingTraining_CycleDivisionNum" data-uid="Hi.MillingForces.Training.MillingTraining.CycleDivisionNum">
CycleDivisionNum
</h3>
<div class="markdown level1 summary"><p>Division number of a spindle cycle.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static int CycleDivisionNum { 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.int32">int</a></dt>
<dd></dd>
</dl>
<a id="Hi_MillingForces_Training_MillingTraining_DefaultParaTemplate_" data-uid="Hi.MillingForces.Training.MillingTraining.DefaultParaTemplate*"></a>
<h3 id="Hi_MillingForces_Training_MillingTraining_DefaultParaTemplate" data-uid="Hi.MillingForces.Training.MillingTraining.DefaultParaTemplate">
DefaultParaTemplate
</h3>
<div class="markdown level1 summary"><p>Gets or sets the parameter template for cutting operations.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static ICuttingPara DefaultParaTemplate { get; set; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="Hi.MillingForces.Fittings.ICuttingPara.html">ICuttingPara</a></dt>
<dd></dd>
</dl>
<a id="Hi_MillingForces_Training_MillingTraining_StepQuantityNames_" data-uid="Hi.MillingForces.Training.MillingTraining.StepQuantityNames*"></a>
<h3 id="Hi_MillingForces_Training_MillingTraining_StepQuantityNames" data-uid="Hi.MillingForces.Training.MillingTraining.StepQuantityNames">
StepQuantityNames
</h3>
<div class="markdown level1 summary"><p>Gets the names of step quantities used in training.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static string[] StepQuantityNames { 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.string">string</a>[]</dt>
<dd></dd>
</dl>
<a id="Hi_MillingForces_Training_MillingTraining_TextAngleOffset_deg_" data-uid="Hi.MillingForces.Training.MillingTraining.TextAngleOffset_deg*"></a>
<h3 id="Hi_MillingForces_Training_MillingTraining_TextAngleOffset_deg" data-uid="Hi.MillingForces.Training.MillingTraining.TextAngleOffset_deg">
TextAngleOffset_deg
</h3>
<div class="markdown level1 summary"><p>Gets the text key for angle offset in degrees.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static string TextAngleOffset_deg { 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.string">string</a></dt>
<dd></dd>
</dl>
<a id="Hi_MillingForces_Training_MillingTraining_TextTrainingErrRatio_" data-uid="Hi.MillingForces.Training.MillingTraining.TextTrainingErrRatio*"></a>
<h3 id="Hi_MillingForces_Training_MillingTraining_TextTrainingErrRatio" data-uid="Hi.MillingForces.Training.MillingTraining.TextTrainingErrRatio">
TextTrainingErrRatio
</h3>
<div class="markdown level1 summary"><p>Gets the text key for training error ratio.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static string TextTrainingErrRatio { 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.string">string</a></dt>
<dd></dd>
</dl>
<h2 class="section" id="methods">Methods
</h2>
<a id="Hi_MillingForces_Training_MillingTraining_Convert_" data-uid="Hi.MillingForces.Training.MillingTraining.Convert*"></a>
<h3 id="Hi_MillingForces_Training_MillingTraining_Convert_Hi_MillingForces_Fittings_ICuttingPara_Hi_MillingForces_Fittings_ICuttingPara_Hi_Milling_Apts_GeneralApt_System_Double_System_Double_System_IProgress_Hi_Common_Messages_IMessage__System_Threading_CancellationToken_" data-uid="Hi.MillingForces.Training.MillingTraining.Convert(Hi.MillingForces.Fittings.ICuttingPara,Hi.MillingForces.Fittings.ICuttingPara,Hi.Milling.Apts.GeneralApt,System.Double,System.Double,System.IProgress{Hi.Common.Messages.IMessage},System.Threading.CancellationToken)">
Convert(ICuttingPara, ICuttingPara, GeneralApt, double, double, IProgress&lt;IMessage&gt;, CancellationToken)
</h3>
<div class="markdown level1 summary"><p>Converts one cutting parameter model to another based on the provided parameters.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static ICuttingPara Convert(ICuttingPara src, ICuttingPara resultParaTemplate, GeneralApt apt, double helixAngle_rad, double radialRakeAngle_rad, IProgress&lt;IMessage&gt; messageProgress, CancellationToken cancellationToken)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>src</code> <a class="xref" href="Hi.MillingForces.Fittings.ICuttingPara.html">ICuttingPara</a></dt>
<dd><p>Source cutting parameter model</p>
</dd>
<dt><code>resultParaTemplate</code> <a class="xref" href="Hi.MillingForces.Fittings.ICuttingPara.html">ICuttingPara</a></dt>
<dd><p>Destination template for the converted model</p>
</dd>
<dt><code>apt</code> <a class="xref" href="Hi.Milling.Apts.GeneralApt.html">GeneralApt</a></dt>
<dd><p>General apt parameters</p>
</dd>
<dt><code>helixAngle_rad</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
<dd><p>Helix angle in radians</p>
</dd>
<dt><code>radialRakeAngle_rad</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
<dd><p>Radial rake angle in radians</p>
</dd>
<dt><code>messageProgress</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.iprogress-1">IProgress</a>&lt;<a class="xref" href="Hi.Common.Messages.IMessage.html">IMessage</a>&gt;</dt>
<dd><p>Message host for logging</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.Fittings.ICuttingPara.html">ICuttingPara</a></dt>
<dd><p>The converted cutting parameter model</p>
</dd>
</dl>
<a id="Hi_MillingForces_Training_MillingTraining_Convert_" data-uid="Hi.MillingForces.Training.MillingTraining.Convert*"></a>
<h3 id="Hi_MillingForces_Training_MillingTraining_Convert_Hi_MillingForces_ProfileMillingParas_LocalProfileMillingPara_System_Double_System_Double_System_IProgress_Hi_Common_Messages_IMessage__System_Threading_CancellationToken_" data-uid="Hi.MillingForces.Training.MillingTraining.Convert(Hi.MillingForces.ProfileMillingParas.LocalProfileMillingPara,System.Double,System.Double,System.IProgress{Hi.Common.Messages.IMessage},System.Threading.CancellationToken)">
Convert(LocalProfileMillingPara, double, double, IProgress&lt;IMessage&gt;, CancellationToken)
</h3>
<div class="markdown level1 summary"><p>Converts a LocalProfileMillingPara to a RakeFaceCuttingPara.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static RakeFaceCuttingPara2d Convert(LocalProfileMillingPara src, double helixAngle_rad, double radialRakeAngle_rad, IProgress&lt;IMessage&gt; messageProgress, CancellationToken cancellationToken)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>src</code> <a class="xref" href="Hi.MillingForces.ProfileMillingParas.LocalProfileMillingPara.html">LocalProfileMillingPara</a></dt>
<dd><p>Source LocalProfileMillingPara</p>
</dd>
<dt><code>helixAngle_rad</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
<dd><p>Helix angle in radians</p>
</dd>
<dt><code>radialRakeAngle_rad</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
<dd><p>Radial rake angle in radians</p>
</dd>
<dt><code>messageProgress</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.iprogress-1">IProgress</a>&lt;<a class="xref" href="Hi.Common.Messages.IMessage.html">IMessage</a>&gt;</dt>
<dd><p>Message host for logging</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.RakeFaceCuttingParas.RakeFaceCuttingPara2d.html">RakeFaceCuttingPara2d</a></dt>
<dd><p>The converted RakeFaceCuttingPara</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)">
GatherAndGetUpdate(ConcurrentDictionary&lt;int, List&lt;ITimeShot&gt;&gt;, ClStrip, ICuttingPara, SampleFlag, double, IProgress&lt;IMessage&gt;, CancellationToken)
</h3>
<div class="markdown level1 summary"><p>Gathers training samples and updates an existing cutting parameter model.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static ICuttingPara GatherAndGetUpdate(ConcurrentDictionary&lt;int, List&lt;ITimeShot&gt;&gt; stepToTimeShotListDictionary, ClStrip clStrip, ICuttingPara anchorPara, SampleFlag sampleFlags, double outlierRatio, IProgress&lt;IMessage&gt; 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>&lt;<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>&lt;<a class="xref" href="Hi.Mapping.ITimeShot.html">ITimeShot</a>&gt;&gt;</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>anchorPara</code> <a class="xref" href="Hi.MillingForces.Fittings.ICuttingPara.html">ICuttingPara</a></dt>
<dd><p>The anchor cutting parameter model to update</p>
</dd>
<dt><code>sampleFlags</code> <a class="xref" href="Hi.MillingForces.Fittings.SampleFlag.html">SampleFlag</a></dt>
<dd><p>Sample flags indicating which forces to use</p>
</dd>
<dt><code>outlierRatio</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
<dd><p>Ratio of outliers to exclude</p>
</dd>
<dt><code>messageProgress</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.iprogress-1">IProgress</a>&lt;<a class="xref" href="Hi.Common.Messages.IMessage.html">IMessage</a>&gt;</dt>
<dd><p>Message host for logging</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.Fittings.ICuttingPara.html">ICuttingPara</a></dt>
<dd><p>The updated cutting parameter model</p>
</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>