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.MachiningProcs.SessionShell.html
T

5449 lines
170 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 SessionShell | HiAPI-C# 2025 </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Class SessionShell | HiAPI-C# 2025 ">
<meta name="description" content="End-user-facing facade for a machining session: aggregates session lifecycle, NC playback, optimization, geometry I/O, and scripting infrastructure into a single delegation surface. Used as the C# script globals object and as the concrete target of implementations.">
<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.MachiningProcs.SessionShell">
<h1 id="Hi_MachiningProcs_SessionShell" data-uid="Hi.MachiningProcs.SessionShell" class="text-break">
Class SessionShell
</h1>
<div class="facts text-secondary">
<dl><dt>Namespace</dt><dd><a class="xref" href="Hi.html">Hi</a>.<a class="xref" href="Hi.MachiningProcs.html">MachiningProcs</a></dd></dl>
<dl><dt>Assembly</dt><dd>HiNc.dll</dd></dl>
</div>
<div class="markdown summary"><p>End-user-facing facade for a machining session: aggregates session lifecycle,
NC playback, optimization, geometry I/O, and scripting infrastructure into a
single delegation surface. Used as the C# script globals object and as the
concrete target of <a class="xref" href="Hi.SessionCommands.ISessionCommand.html">ISessionCommand</a> implementations.</p>
</div>
<div class="markdown conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public class SessionShell : ISessionShell</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">SessionShell</span></div>
</dd>
</dl>
<dl class="typelist implements">
<dt>Implements</dt>
<dd>
<div><a class="xref" href="Hi.SessionShellUtils.ISessionShell.html">ISessionShell</a></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>
<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="fields">Fields
</h2>
<h3 id="Hi_MachiningProcs_SessionShell_DefaultScriptOptions" data-uid="Hi.MachiningProcs.SessionShell.DefaultScriptOptions">
DefaultScriptOptions
</h3>
<div class="markdown level1 summary"><p>The default Roslyn <a class="xref" href="Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_ScriptOptions">ScriptOptions</a> for session scripts —
references the SessionShell-domain assemblies and imports. Used as the
initial value of the project-level <a class="xref" href="Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_ScriptOptions">ScriptOptions</a>.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static readonly ScriptOptions DefaultScriptOptions</code></pre>
</div>
<h4 class="section">Field Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://github.com/dotnet/roslyn/blob/35d9211b841e7613c1d2f8f5af6d628ace696c4c/src/Scripting/Core/ScriptOptions.cs">ScriptOptions</a></dt>
<dd></dd>
</dl>
<h2 class="section" id="properties">Properties
</h2>
<a id="Hi_MachiningProcs_SessionShell_DefaultParaTemplateDimension_" data-uid="Hi.MachiningProcs.SessionShell.DefaultParaTemplateDimension*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_DefaultParaTemplateDimension" data-uid="Hi.MachiningProcs.SessionShell.DefaultParaTemplateDimension">
DefaultParaTemplateDimension
</h3>
<div class="markdown level1 summary"><p>Gets or sets the parameter template dimension (2D or 3D).</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce]
public int DefaultParaTemplateDimension { 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_MachiningProcs_SessionShell_DiffVisualRadius_mm_" data-uid="Hi.MachiningProcs.SessionShell.DiffVisualRadius_mm*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_DiffVisualRadius_mm" data-uid="Hi.MachiningProcs.SessionShell.DiffVisualRadius_mm">
DiffVisualRadius_mm
</h3>
<div class="markdown level1 summary"><p>Gets or sets the visual radius in millimeters for difference visualization.
Controls the radius used for highlighting differences between workpiece states.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce]
public double DiffVisualRadius_mm { 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_MachiningProcs_SessionShell_DispCacheMb_" data-uid="Hi.MachiningProcs.SessionShell.DispCacheMb*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_DispCacheMb" data-uid="Hi.MachiningProcs.SessionShell.DispCacheMb">
DispCacheMb
</h3>
<div class="markdown level1 summary"><p>Gets or sets the display cache size in megabytes.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[Obsolete]
public long DispCacheMb { 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.int64">long</a></dt>
<dd></dd>
</dl>
<a id="Hi_MachiningProcs_SessionShell_DispCache_Mb_" data-uid="Hi.MachiningProcs.SessionShell.DispCache_Mb*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_DispCache_Mb" data-uid="Hi.MachiningProcs.SessionShell.DispCache_Mb">
DispCache_Mb
</h3>
<div class="markdown level1 summary"><p>Gets or sets the display cache size in megabytes.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce]
public long DispCache_Mb { 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.int64">long</a></dt>
<dd></dd>
</dl>
<a id="Hi_MachiningProcs_SessionShell_EmbeddedLogMode_" data-uid="Hi.MachiningProcs.SessionShell.EmbeddedLogMode*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_EmbeddedLogMode" data-uid="Hi.MachiningProcs.SessionShell.EmbeddedLogMode">
EmbeddedLogMode
</h3>
<div class="markdown level1 summary"><p>Gets or sets the embedded log mode for NC optimization.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce]
public static NcOptimizationEmbeddedLogMode EmbeddedLogMode { get; set; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="Hi.NcOpt.NcOptimizationEmbeddedLogMode.html">NcOptimizationEmbeddedLogMode</a></dt>
<dd></dd>
</dl>
<a id="Hi_MachiningProcs_SessionShell_EnableCollisionDetection_" data-uid="Hi.MachiningProcs.SessionShell.EnableCollisionDetection*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_EnableCollisionDetection" data-uid="Hi.MachiningProcs.SessionShell.EnableCollisionDetection">
EnableCollisionDetection
</h3>
<div class="markdown level1 summary"><p>Gets or sets whether collision detection is enabled.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce(DocContentHtml = &quot;Enable Collision Detection.&quot;)]
public bool EnableCollisionDetection { 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_MachiningProcs_SessionShell_EnableIndividualStepAdjustmentLog_" data-uid="Hi.MachiningProcs.SessionShell.EnableIndividualStepAdjustmentLog*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_EnableIndividualStepAdjustmentLog" data-uid="Hi.MachiningProcs.SessionShell.EnableIndividualStepAdjustmentLog">
EnableIndividualStepAdjustmentLog
</h3>
<div class="markdown level1 summary"><p>Gets or sets whether to enable individual step adjustment logging.
The setter drives both optimization pipelines: the legacy HardNc
<span class="xref">Hi.NcOpt.NcOptProc.EnableIndividualStepAdjustmentLog</span> and the
SoftNc <span class="xref">Hi.NcOpt.StepFeedSolver.EnableStepAdjustmentLog</span> statics are
assigned together; the getter reads the legacy static (the pair only
diverges when a static is assigned directly, bypassing this proxy).</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce]
public static bool EnableIndividualStepAdjustmentLog { 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_MachiningProcs_SessionShell_EnableMapOnSelectionEnd_" data-uid="Hi.MachiningProcs.SessionShell.EnableMapOnSelectionEnd*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_EnableMapOnSelectionEnd" data-uid="Hi.MachiningProcs.SessionShell.EnableMapOnSelectionEnd">
EnableMapOnSelectionEnd
</h3>
<div class="markdown level1 summary"><p>Gets or sets whether to automatically map selections when they end.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce]
public bool EnableMapOnSelectionEnd { 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_MachiningProcs_SessionShell_EnableMotionDependentMachiningResolution_" data-uid="Hi.MachiningProcs.SessionShell.EnableMotionDependentMachiningResolution*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_EnableMotionDependentMachiningResolution" data-uid="Hi.MachiningProcs.SessionShell.EnableMotionDependentMachiningResolution">
EnableMotionDependentMachiningResolution
</h3>
<div class="markdown level1 summary"><p>Gets or sets whether motion-dependent machining resolution is enabled.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce]
public bool EnableMotionDependentMachiningResolution { 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_MachiningProcs_SessionShell_EnableMzLeverWeightingOnTraining_" data-uid="Hi.MachiningProcs.SessionShell.EnableMzLeverWeightingOnTraining*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_EnableMzLeverWeightingOnTraining" data-uid="Hi.MachiningProcs.SessionShell.EnableMzLeverWeightingOnTraining">
EnableMzLeverWeightingOnTraining
</h3>
<div class="markdown level1 summary"><p>Gets or sets whether Mz lever weighting is enabled on training.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[Obsolete]
public bool EnableMzLeverWeightingOnTraining { 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_MachiningProcs_SessionShell_EnableNativeMillingPhysics_" data-uid="Hi.MachiningProcs.SessionShell.EnableNativeMillingPhysics*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_EnableNativeMillingPhysics" data-uid="Hi.MachiningProcs.SessionShell.EnableNativeMillingPhysics">
EnableNativeMillingPhysics
</h3>
<div class="markdown level1 summary"><p>Gets or sets whether the physics runs on the native (core.dll) kernels.
Default is true, and in shipping builds the native kernel is the only
physics implementation — setting this to false throws unless the
non-shipping managed reference assembly is registered (dev/test hosts
only).</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce(DocContentHtml = &quot;Run the physics on the native kernels (the only implementation in shipping builds).&quot;)]
public bool EnableNativeMillingPhysics { 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_MachiningProcs_SessionShell_EnablePauseOnCollision_" data-uid="Hi.MachiningProcs.SessionShell.EnablePauseOnCollision*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_EnablePauseOnCollision" data-uid="Hi.MachiningProcs.SessionShell.EnablePauseOnCollision">
EnablePauseOnCollision
</h3>
<div class="markdown level1 summary"><p>Gets or sets whether to pause execution when a collision is detected.
This property only has an effect if collision detection is enabled.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[Obsolete]
public bool EnablePauseOnCollision { 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_MachiningProcs_SessionShell_EnablePauseOnFailure_" data-uid="Hi.MachiningProcs.SessionShell.EnablePauseOnFailure*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_EnablePauseOnFailure" data-uid="Hi.MachiningProcs.SessionShell.EnablePauseOnFailure">
EnablePauseOnFailure
</h3>
<div class="markdown level1 summary"><p>Gets or sets whether to pause on failure during execution.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce(DocContentHtml = &quot;Enable Pause On Failure.&quot;)]
public bool EnablePauseOnFailure { 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_MachiningProcs_SessionShell_EnablePhysics_" data-uid="Hi.MachiningProcs.SessionShell.EnablePhysics*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_EnablePhysics" data-uid="Hi.MachiningProcs.SessionShell.EnablePhysics">
EnablePhysics
</h3>
<div class="markdown level1 summary"><p>Gets or sets whether milling force evaluation is enabled.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce(DocContentHtml = &quot;Enable milling force evaluation.&quot;)]
public bool EnablePhysics { 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_MachiningProcs_SessionShell_EnableSampleNormalization_" data-uid="Hi.MachiningProcs.SessionShell.EnableSampleNormalization*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_EnableSampleNormalization" data-uid="Hi.MachiningProcs.SessionShell.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 bool EnableSampleNormalization { 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>
<h4 class="section" id="Hi_MachiningProcs_SessionShell_EnableSampleNormalization_remarks">Remarks</h4>
<div class="markdown level1 remarks"><p>The input normalization deminish the quantity effect.
The R-value decrease from 99% to 70% in moment training case from NKUST\nkust2024-milling-para-training-plan\workingx.hincproj
Don't apply this option.</p>
</div>
<a id="Hi_MachiningProcs_SessionShell_EnableSoftNcRunner_" data-uid="Hi.MachiningProcs.SessionShell.EnableSoftNcRunner*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_EnableSoftNcRunner" data-uid="Hi.MachiningProcs.SessionShell.EnableSoftNcRunner">
EnableSoftNcRunner
</h3>
<div class="markdown level1 summary"><p>Switches between <a class="xref" href="Hi.NcParsers.SoftNcRunner.html">SoftNcRunner</a> and the legacy
<a class="xref" href="Hi.Numerical.FilePlayers.HardNcRunner.html">HardNcRunner</a>. Default <code>true</code>; set <code>false</code> to
fall back to the legacy runner (e.g. for NC optimization, which still
reads <a class="xref" href="Hi.Numerical.FilePlayers.HardNcRunner.html#Hi_Numerical_FilePlayers_HardNcRunner_NcLines">NcLines</a>).
Will be removed when <a class="xref" href="Hi.Numerical.FilePlayers.HardNcRunner.html">HardNcRunner</a> is fully replaced.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce(DocContentHtml = &quot;Enable SoftNcRunner (default) instead of legacy HardNcRunner.&quot;)]
public bool EnableSoftNcRunner { 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_MachiningProcs_SessionShell_EnableWearEffect_" data-uid="Hi.MachiningProcs.SessionShell.EnableWearEffect*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_EnableWearEffect" data-uid="Hi.MachiningProcs.SessionShell.EnableWearEffect">
EnableWearEffect
</h3>
<div class="markdown level1 summary"><p>Gets or sets whether tool wear effects are enabled in simulation.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce]
public bool EnableWearEffect { 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_MachiningProcs_SessionShell_FeedPerCycle_" data-uid="Hi.MachiningProcs.SessionShell.FeedPerCycle*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_FeedPerCycle" data-uid="Hi.MachiningProcs.SessionShell.FeedPerCycle">
FeedPerCycle
</h3>
<div class="markdown level1 summary"><p>Gets a new feed per cycle machining motion resolution instance.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce]
public FeedPerCycleMachiningMotionResolution FeedPerCycle { get; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="Hi.Numerical.MachiningMotionResolutionUtils.FeedPerCycleMachiningMotionResolution.html">FeedPerCycleMachiningMotionResolution</a></dt>
<dd></dd>
</dl>
<a id="Hi_MachiningProcs_SessionShell_FeedPerTooth_" data-uid="Hi.MachiningProcs.SessionShell.FeedPerTooth*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_FeedPerTooth" data-uid="Hi.MachiningProcs.SessionShell.FeedPerTooth">
FeedPerTooth
</h3>
<div class="markdown level1 summary"><p>Gets a new feed per tooth machining motion resolution instance.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce]
public FeedPerToothMachiningMotionResolution FeedPerTooth { get; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="Hi.Numerical.MachiningMotionResolutionUtils.FeedPerToothMachiningMotionResolution.html">FeedPerToothMachiningMotionResolution</a></dt>
<dd></dd>
</dl>
<a id="Hi_MachiningProcs_SessionShell_Fixture_" data-uid="Hi.MachiningProcs.SessionShell.Fixture*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_Fixture" data-uid="Hi.MachiningProcs.SessionShell.Fixture">
Fixture
</h3>
<div class="markdown level1 summary"><p>Gets or sets the fixture.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce]
public Fixture Fixture { get; set; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="Hi.NcMech.Fixtures.Fixture.html">Fixture</a></dt>
<dd></dd>
</dl>
<a id="Hi_MachiningProcs_SessionShell_Global_" data-uid="Hi.MachiningProcs.SessionShell.Global*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_Global" data-uid="Hi.MachiningProcs.SessionShell.Global">
Global
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce(&quot;Global[$1key]&quot;)]
public Dictionary&lt;object, object&gt; Global { 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.dictionary-2">Dictionary</a>&lt;<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a>, <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a>&gt;</dt>
<dd></dd>
</dl>
<a id="Hi_MachiningProcs_SessionShell_InitSpindleTemperature_C_" data-uid="Hi.MachiningProcs.SessionShell.InitSpindleTemperature_C*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_InitSpindleTemperature_C" data-uid="Hi.MachiningProcs.SessionShell.InitSpindleTemperature_C">
InitSpindleTemperature_C
</h3>
<div class="markdown level1 summary"><p>Gets or sets the initial spindle temperature in degrees Celsius.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce(DocContentHtml = &quot;Spindle Temperature on initialization.&quot;)]
public double InitSpindleTemperature_C { 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_MachiningProcs_SessionShell_JsAceCompletionProfileJsonArray_" data-uid="Hi.MachiningProcs.SessionShell.JsAceCompletionProfileJsonArray*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_JsAceCompletionProfileJsonArray" data-uid="Hi.MachiningProcs.SessionShell.JsAceCompletionProfileJsonArray">
JsAceCompletionProfileJsonArray
</h3>
<div class="markdown level1 summary"><p>Internal used.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static JsonArray JsAceCompletionProfileJsonArray { 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.text.json.nodes.jsonarray">JsonArray</a></dt>
<dd></dd>
</dl>
<a id="Hi_MachiningProcs_SessionShell_MachiningMotionResolution_" data-uid="Hi.MachiningProcs.SessionShell.MachiningMotionResolution*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_MachiningMotionResolution" data-uid="Hi.MachiningProcs.SessionShell.MachiningMotionResolution">
MachiningMotionResolution
</h3>
<div class="markdown level1 summary"><p>Gets or sets the machining motion resolution.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce]
public IMachiningMotionResolution MachiningMotionResolution { get; set; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="Hi.Numerical.MachiningMotionResolutionUtils.IMachiningMotionResolution.html">IMachiningMotionResolution</a></dt>
<dd></dd>
</dl>
<a id="Hi_MachiningProcs_SessionShell_MachiningResolution_" data-uid="Hi.MachiningProcs.SessionShell.MachiningResolution*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_MachiningResolution" data-uid="Hi.MachiningProcs.SessionShell.MachiningResolution">
MachiningResolution
</h3>
<div class="markdown level1 summary"><p>Gets or sets the machining resolution in millimeters.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce]
[Obsolete(&quot;Use MachiningResolution_mm instead.&quot;)]
public double MachiningResolution { 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_MachiningProcs_SessionShell_MachiningResolution_mm_" data-uid="Hi.MachiningProcs.SessionShell.MachiningResolution_mm*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_MachiningResolution_mm" data-uid="Hi.MachiningProcs.SessionShell.MachiningResolution_mm">
MachiningResolution_mm
</h3>
<div class="markdown level1 summary"><p>Gets or sets the machining resolution in millimeters.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce]
public double MachiningResolution_mm { 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_MachiningProcs_SessionShell_MachiningSession_" data-uid="Hi.MachiningProcs.SessionShell.MachiningSession*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_MachiningSession" data-uid="Hi.MachiningProcs.SessionShell.MachiningSession">
MachiningSession
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public MachiningSession MachiningSession { get; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="Hi.MachiningProcs.MachiningSession.html">MachiningSession</a></dt>
<dd></dd>
</dl>
<a id="Hi_MachiningProcs_SessionShell_MapTask_" data-uid="Hi.MachiningProcs.SessionShell.MapTask*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_MapTask" data-uid="Hi.MachiningProcs.SessionShell.MapTask">
MapTask
</h3>
<div class="markdown level1 summary"><p>Task tracking the status of mapping operations.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public Task MapTask { 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.threading.tasks.task">Task</a></dt>
<dd></dd>
</dl>
<a id="Hi_MachiningProcs_SessionShell_MappingAnchorDateTime_" data-uid="Hi.MachiningProcs.SessionShell.MappingAnchorDateTime*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_MappingAnchorDateTime" data-uid="Hi.MachiningProcs.SessionShell.MappingAnchorDateTime">
MappingAnchorDateTime
</h3>
<div class="markdown level1 summary"><p>Project-scoped anchor that converts an absolute-time mapping window /
sensor stream into a relative timecode. Delegates to
<a class="xref" href="Hi.Mapping.TimeMapping.html#Hi_Mapping_TimeMapping_MappingAnchorDateTime">MappingAnchorDateTime</a>; auto-set from
the first controller instant on <a class="xref" href="Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_PlayCsvFile_System_String_">PlayCsvFile(string)</a>, or set here.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce]
public DateTime? MappingAnchorDateTime { 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.datetime">DateTime</a>?</dt>
<dd></dd>
</dl>
<a id="Hi_MachiningProcs_SessionShell_MillingCycleDivisionNum_" data-uid="Hi.MachiningProcs.SessionShell.MillingCycleDivisionNum*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_MillingCycleDivisionNum" data-uid="Hi.MachiningProcs.SessionShell.MillingCycleDivisionNum">
MillingCycleDivisionNum
</h3>
<div class="markdown level1 summary"><p>Gets or sets the number of angular divisions per spindle revolution for
milling force calculation. The default (36) is intended for normal
simulation — a finer division does not improve force playback and only
slows it down. Only <a class="xref" href="Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_TrainMillingPara_Hi_MillingForces_Fittings_SampleFlag_System_String_System_Double_Hi_MillingForces_Fittings_ICuttingPara_">TrainMillingPara(SampleFlag, string, double, ICuttingPara)</a> benefits from a finer
division (e.g. 180): set it in the training script before the simulation
run the training consumes. The value is process-wide (backed by
<a class="xref" href="Hi.MillingForces.MillingForceUtil.html#Hi_MillingForces_MillingForceUtil_RotationDivisionNum">RotationDivisionNum</a>):
it is not saved into the project and survives <a class="xref" href="Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_ResetRuntime">ResetRuntime()</a>
and project switches, so set it back (or restart the instance) after
training to keep normal simulation fast.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce]
public static int MillingCycleDivisionNum { 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_MachiningProcs_SessionShell_MillingForceCycleDivisionNum_" data-uid="Hi.MachiningProcs.SessionShell.MillingForceCycleDivisionNum*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_MillingForceCycleDivisionNum" data-uid="Hi.MachiningProcs.SessionShell.MillingForceCycleDivisionNum">
MillingForceCycleDivisionNum
</h3>
<div class="markdown level1 summary"><p>Gets or sets the number of divisions per cycle for milling force calculation.
This property should be set before milling force evaluation if <a class="xref" href="Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_TrainMillingPara_Hi_MillingForces_Fittings_SampleFlag_System_String_System_Double_Hi_MillingForces_Fittings_ICuttingPara_">TrainMillingPara(SampleFlag, string, double, ICuttingPara)</a> is intended to be used.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce(DocContentHtml = &quot;Obsoleted. Use MillingCycleDivisionNum instead.&quot;)]
[Obsolete(&quot;Use MillingCycleDivisionNum instead.&quot;)]
public static int MillingForceCycleDivisionNum { 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_MachiningProcs_SessionShell_NcOptOption_" data-uid="Hi.MachiningProcs.SessionShell.NcOptOption*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_NcOptOption" data-uid="Hi.MachiningProcs.SessionShell.NcOptOption">
NcOptOption
</h3>
<div class="markdown level1 summary"><p>Gets or sets the NC optimization options.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce]
public NcOptOption NcOptOption { get; set; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="Hi.NcOpt.NcOptOption.html">NcOptOption</a></dt>
<dd></dd>
</dl>
<a id="Hi_MachiningProcs_SessionShell_OptEnableDepthCompensation_" data-uid="Hi.MachiningProcs.SessionShell.OptEnableDepthCompensation*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_OptEnableDepthCompensation" data-uid="Hi.MachiningProcs.SessionShell.OptEnableDepthCompensation">
OptEnableDepthCompensation
</h3>
<div class="markdown level1 summary"><p>Enables or disables depth compensation during optimization.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce]
public bool OptEnableDepthCompensation { 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_MachiningProcs_SessionShell_OptEnableFeedrate_" data-uid="Hi.MachiningProcs.SessionShell.OptEnableFeedrate*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_OptEnableFeedrate" data-uid="Hi.MachiningProcs.SessionShell.OptEnableFeedrate">
OptEnableFeedrate
</h3>
<div class="markdown level1 summary"><p>Gets or sets whether to enable feed rate optimization in NC optimization.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce]
public bool OptEnableFeedrate { 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_MachiningProcs_SessionShell_OptEnableForwardCompensation_" data-uid="Hi.MachiningProcs.SessionShell.OptEnableForwardCompensation*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_OptEnableForwardCompensation" data-uid="Hi.MachiningProcs.SessionShell.OptEnableForwardCompensation">
OptEnableForwardCompensation
</h3>
<div class="markdown level1 summary"><p>Enables or disables forward compensation during optimization.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce]
public bool OptEnableForwardCompensation { 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_MachiningProcs_SessionShell_OptEnableInterpolation_" data-uid="Hi.MachiningProcs.SessionShell.OptEnableInterpolation*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_OptEnableInterpolation" data-uid="Hi.MachiningProcs.SessionShell.OptEnableInterpolation">
OptEnableInterpolation
</h3>
<div class="markdown level1 summary"><p>Enables or disables reinterpolation for optimization.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce]
public bool OptEnableInterpolation { 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_MachiningProcs_SessionShell_OptEnableSideCompensation_" data-uid="Hi.MachiningProcs.SessionShell.OptEnableSideCompensation*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_OptEnableSideCompensation" data-uid="Hi.MachiningProcs.SessionShell.OptEnableSideCompensation">
OptEnableSideCompensation
</h3>
<div class="markdown level1 summary"><p>Enables or disables side compensation during optimization.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce]
public bool OptEnableSideCompensation { 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_MachiningProcs_SessionShell_OptExtendedPostDistance_mm_" data-uid="Hi.MachiningProcs.SessionShell.OptExtendedPostDistance_mm*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_OptExtendedPostDistance_mm" data-uid="Hi.MachiningProcs.SessionShell.OptExtendedPostDistance_mm">
OptExtendedPostDistance_mm
</h3>
<div class="markdown level1 summary"><p>Gets or sets the extended post-distance in millimeters for NC optimization.
This is the distance after the current segment that will be considered for optimization.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce]
public double OptExtendedPostDistance_mm { 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_MachiningProcs_SessionShell_OptExtendedPreDistance_mm_" data-uid="Hi.MachiningProcs.SessionShell.OptExtendedPreDistance_mm*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_OptExtendedPreDistance_mm" data-uid="Hi.MachiningProcs.SessionShell.OptExtendedPreDistance_mm">
OptExtendedPreDistance_mm
</h3>
<div class="markdown level1 summary"><p>Gets or sets the extended pre-distance in millimeters for NC optimization.
This is the distance before the current segment that will be considered for optimization.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce]
public double OptExtendedPreDistance_mm { 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_MachiningProcs_SessionShell_OptFeedrateAssignmentRatio_" data-uid="Hi.MachiningProcs.SessionShell.OptFeedrateAssignmentRatio*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_OptFeedrateAssignmentRatio" data-uid="Hi.MachiningProcs.SessionShell.OptFeedrateAssignmentRatio">
OptFeedrateAssignmentRatio
</h3>
<div class="markdown level1 summary"><p>Gets or sets the feedrate assignment ratio for optimization.
If the feedrate change exceeds this ratio, the feedrate in the NC line will be updated.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce]
public double OptFeedrateAssignmentRatio { 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_MachiningProcs_SessionShell_OptMaxAcceleration_mmds2_" data-uid="Hi.MachiningProcs.SessionShell.OptMaxAcceleration_mmds2*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_OptMaxAcceleration_mmds2" data-uid="Hi.MachiningProcs.SessionShell.OptMaxAcceleration_mmds2">
OptMaxAcceleration_mmds2
</h3>
<div class="markdown level1 summary"><p>Maximum acceleration in mm/s² during optimization. Only takes effect on reinterpolated section.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce(DocContentHtml = &quot;Only take effect on reinterpolated section.&quot;)]
public double OptMaxAcceleration_mmds2 { 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_MachiningProcs_SessionShell_OptMaxFeedPerTooth_mm_" data-uid="Hi.MachiningProcs.SessionShell.OptMaxFeedPerTooth_mm*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_OptMaxFeedPerTooth_mm" data-uid="Hi.MachiningProcs.SessionShell.OptMaxFeedPerTooth_mm">
OptMaxFeedPerTooth_mm
</h3>
<div class="markdown level1 summary"><p>Gets or sets the maximum feed per tooth in millimeters for optimization.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce]
public double OptMaxFeedPerTooth_mm { 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_MachiningProcs_SessionShell_OptMaxFeedrate_mmdmin_" data-uid="Hi.MachiningProcs.SessionShell.OptMaxFeedrate_mmdmin*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_OptMaxFeedrate_mmdmin" data-uid="Hi.MachiningProcs.SessionShell.OptMaxFeedrate_mmdmin">
OptMaxFeedrate_mmdmin
</h3>
<div class="markdown level1 summary"><p>Maximum feed rate in mm/min for cutting movements during optimization.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce]
public double OptMaxFeedrate_mmdmin { 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_MachiningProcs_SessionShell_OptMaxJerk_mmds3_" data-uid="Hi.MachiningProcs.SessionShell.OptMaxJerk_mmds3*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_OptMaxJerk_mmds3" data-uid="Hi.MachiningProcs.SessionShell.OptMaxJerk_mmds3">
OptMaxJerk_mmds3
</h3>
<div class="markdown level1 summary"><p>Maximum jerk in mm/s³ during optimization. Only takes effect on reinterpolated section.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce(DocContentHtml = &quot;Only take effect on reinterpolated section.&quot;)]
public double OptMaxJerk_mmds3 { 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_MachiningProcs_SessionShell_OptMinFeedPerTooth_mm_" data-uid="Hi.MachiningProcs.SessionShell.OptMinFeedPerTooth_mm*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_OptMinFeedPerTooth_mm" data-uid="Hi.MachiningProcs.SessionShell.OptMinFeedPerTooth_mm">
OptMinFeedPerTooth_mm
</h3>
<div class="markdown level1 summary"><p>Gets or sets the minimum feed per tooth in millimeters for optimization.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce]
public double OptMinFeedPerTooth_mm { 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_MachiningProcs_SessionShell_OptMinFeedrate_mmdmin_" data-uid="Hi.MachiningProcs.SessionShell.OptMinFeedrate_mmdmin*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_OptMinFeedrate_mmdmin" data-uid="Hi.MachiningProcs.SessionShell.OptMinFeedrate_mmdmin">
OptMinFeedrate_mmdmin
</h3>
<div class="markdown level1 summary"><p>Minimum feed rate in mm/min for cutting movements during optimization.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce]
public double OptMinFeedrate_mmdmin { 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_MachiningProcs_SessionShell_OptPreferedForce_N_" data-uid="Hi.MachiningProcs.SessionShell.OptPreferedForce_N*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_OptPreferedForce_N" data-uid="Hi.MachiningProcs.SessionShell.OptPreferedForce_N">
OptPreferedForce_N
</h3>
<div class="markdown level1 summary"><p>Preferred force in N for optimization.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce]
public double OptPreferedForce_N { 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_MachiningProcs_SessionShell_OptRapidFeed_mmdmin_" data-uid="Hi.MachiningProcs.SessionShell.OptRapidFeed_mmdmin*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_OptRapidFeed_mmdmin" data-uid="Hi.MachiningProcs.SessionShell.OptRapidFeed_mmdmin">
OptRapidFeed_mmdmin
</h3>
<div class="markdown level1 summary"><p>Rapid feed rate in mm/min for non-cutting movements during optimization.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce]
public double OptRapidFeed_mmdmin { 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_MachiningProcs_SessionShell_OptSpindlePowerSafetyFactor_" data-uid="Hi.MachiningProcs.SessionShell.OptSpindlePowerSafetyFactor*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_OptSpindlePowerSafetyFactor" data-uid="Hi.MachiningProcs.SessionShell.OptSpindlePowerSafetyFactor">
OptSpindlePowerSafetyFactor
</h3>
<div class="markdown level1 summary"><p>Safety factor for MAX spindle power during optimization.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce]
public double OptSpindlePowerSafetyFactor { 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_MachiningProcs_SessionShell_OptSpindlePowerUtilizationFactor_" data-uid="Hi.MachiningProcs.SessionShell.OptSpindlePowerUtilizationFactor*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_OptSpindlePowerUtilizationFactor" data-uid="Hi.MachiningProcs.SessionShell.OptSpindlePowerUtilizationFactor">
OptSpindlePowerUtilizationFactor
</h3>
<div class="markdown level1 summary"><p>Utilization factor for MAX spindle power during optimization.
It is the reciprocal of the spindle power safety factor.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce]
public double OptSpindlePowerUtilizationFactor { 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_MachiningProcs_SessionShell_OptSpindleTorqueSafetyFactor_" data-uid="Hi.MachiningProcs.SessionShell.OptSpindleTorqueSafetyFactor*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_OptSpindleTorqueSafetyFactor" data-uid="Hi.MachiningProcs.SessionShell.OptSpindleTorqueSafetyFactor">
OptSpindleTorqueSafetyFactor
</h3>
<div class="markdown level1 summary"><p>Gets or sets the MAX spindle torque safety factor for NC optimization.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce]
public double OptSpindleTorqueSafetyFactor { 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_MachiningProcs_SessionShell_OptSpindleTorqueUtilizationFactor_" data-uid="Hi.MachiningProcs.SessionShell.OptSpindleTorqueUtilizationFactor*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_OptSpindleTorqueUtilizationFactor" data-uid="Hi.MachiningProcs.SessionShell.OptSpindleTorqueUtilizationFactor">
OptSpindleTorqueUtilizationFactor
</h3>
<div class="markdown level1 summary"><p>Utilization factor for MAX spindle torque during optimization.
It is the reciprocal of the spindle torque safety factor.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce]
public double OptSpindleTorqueUtilizationFactor { 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_MachiningProcs_SessionShell_OptThermalYieldSafetyFactor_" data-uid="Hi.MachiningProcs.SessionShell.OptThermalYieldSafetyFactor*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_OptThermalYieldSafetyFactor" data-uid="Hi.MachiningProcs.SessionShell.OptThermalYieldSafetyFactor">
OptThermalYieldSafetyFactor
</h3>
<div class="markdown level1 summary"><p>Safety factor for spindle torque during optimization.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce]
public double OptThermalYieldSafetyFactor { 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_MachiningProcs_SessionShell_OptThermalYieldUtilizationFactor_" data-uid="Hi.MachiningProcs.SessionShell.OptThermalYieldUtilizationFactor*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_OptThermalYieldUtilizationFactor" data-uid="Hi.MachiningProcs.SessionShell.OptThermalYieldUtilizationFactor">
OptThermalYieldUtilizationFactor
</h3>
<div class="markdown level1 summary"><p>Utilization factor for thermal yield during optimization.
It is the reciprocal of the thermal yield safety factor.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce]
public double OptThermalYieldUtilizationFactor { 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_MachiningProcs_SessionShell_OptYieldingSafetyFactor_" data-uid="Hi.MachiningProcs.SessionShell.OptYieldingSafetyFactor*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_OptYieldingSafetyFactor" data-uid="Hi.MachiningProcs.SessionShell.OptYieldingSafetyFactor">
OptYieldingSafetyFactor
</h3>
<div class="markdown level1 summary"><p>Safety factor for yielding during optimization.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce]
public double OptYieldingSafetyFactor { 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_MachiningProcs_SessionShell_OptYieldingUtilizationFactor_" data-uid="Hi.MachiningProcs.SessionShell.OptYieldingUtilizationFactor*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_OptYieldingUtilizationFactor" data-uid="Hi.MachiningProcs.SessionShell.OptYieldingUtilizationFactor">
OptYieldingUtilizationFactor
</h3>
<div class="markdown level1 summary"><p>Utilization factor for yielding during optimization.
It is the reciprocal of the yielding safety factor.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce]
public double OptYieldingUtilizationFactor { 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_MachiningProcs_SessionShell_ScriptOptions_" data-uid="Hi.MachiningProcs.SessionShell.ScriptOptions*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_ScriptOptions" data-uid="Hi.MachiningProcs.SessionShell.ScriptOptions">
ScriptOptions
</h3>
<div class="markdown level1 summary"><p>ScriptOptions.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public ScriptOptions ScriptOptions { get; set; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://github.com/dotnet/roslyn/blob/35d9211b841e7613c1d2f8f5af6d628ace696c4c/src/Scripting/Core/ScriptOptions.cs">ScriptOptions</a></dt>
<dd></dd>
</dl>
<a id="Hi_MachiningProcs_SessionShell_ShellProgress_" data-uid="Hi.MachiningProcs.SessionShell.ShellProgress*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_ShellProgress" data-uid="Hi.MachiningProcs.SessionShell.ShellProgress">
ShellProgress
</h3>
<div class="markdown level1 summary"><p>Session-level routine / lifecycle message sink on the <a class="xref" href="Hi.Common.Messages.IMessage.html">IMessage</a> channel
(cache reset, file progress, session start/done). Owned by <a class="xref" href="Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_MachiningSession">MachiningSession</a>
(truly session-scoped); exposed here for scripts and the session facade.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce]
public ShellProgress ShellProgress { get; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="Hi.MachiningProcs.ShellProgress.html">ShellProgress</a></dt>
<dd></dd>
</dl>
<a id="Hi_MachiningProcs_SessionShell_StepCount_" data-uid="Hi.MachiningProcs.SessionShell.StepCount*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_StepCount" data-uid="Hi.MachiningProcs.SessionShell.StepCount">
StepCount
</h3>
<div class="markdown level1 summary"><p>Gets the total number of milling steps.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce]
public int StepCount { 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_MachiningProcs_SessionShell_StepDiagnosticProgress_" data-uid="Hi.MachiningProcs.SessionShell.StepDiagnosticProgress*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_StepDiagnosticProgress" data-uid="Hi.MachiningProcs.SessionShell.StepDiagnosticProgress">
StepDiagnosticProgress
</h3>
<div class="markdown level1 summary"><p>Step-anchored message sink on the <a class="xref" href="Hi.Common.Messages.IMessage.html">IMessage</a> channel
(see <a class="xref" href="Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_StepDiagnosticProgress">StepDiagnosticProgress</a>).</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce]
public StepDiagnosticProgress StepDiagnosticProgress { get; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="Hi.MachiningProcs.StepDiagnosticProgress.html">StepDiagnosticProgress</a></dt>
<dd></dd>
</dl>
<a id="Hi_MachiningProcs_SessionShell_Workpiece_" data-uid="Hi.MachiningProcs.SessionShell.Workpiece*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_Workpiece" data-uid="Hi.MachiningProcs.SessionShell.Workpiece">
Workpiece
</h3>
<div class="markdown level1 summary"><p>Gets or sets the workpiece.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce]
public Workpiece Workpiece { get; set; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="Hi.NcMech.Workpieces.Workpiece.html">Workpiece</a></dt>
<dd></dd>
</dl>
<h2 class="section" id="methods">Methods
</h2>
<a id="Hi_MachiningProcs_SessionShell_AddTimeDataByFile_" data-uid="Hi.MachiningProcs.SessionShell.AddTimeDataByFile*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_AddTimeDataByFile_System_String_System_String_System_Double_System_Double_" data-uid="Hi.MachiningProcs.SessionShell.AddTimeDataByFile(System.String,System.String,System.Double,System.Double)">
AddTimeDataByFile(string, string, double, double)
</h3>
<div class="markdown level1 summary"><p>Adds time-based data from a file to the time mapping dictionary with specified time bounds in seconds.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce(&quot;AddTimeDataByFile($1key, $2relFile, $3beginTime, $4endTime)&quot;)]
public bool AddTimeDataByFile(string key, string relFile, double beginTime, double endTime)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>key</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>Key to identify the data</p>
</dd>
<dt><code>relFile</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>Relative path to the data file</p>
</dd>
<dt><code>beginTime</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
<dd><p>Beginning time in seconds</p>
</dd>
<dt><code>endTime</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
<dd><p>Ending time in seconds</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.boolean">bool</a></dt>
<dd><p>True if the data was successfully added, false otherwise</p>
</dd>
</dl>
<a id="Hi_MachiningProcs_SessionShell_AddTimeDataByFile_" data-uid="Hi.MachiningProcs.SessionShell.AddTimeDataByFile*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_AddTimeDataByFile_System_String_System_String_System_String_System_String_" data-uid="Hi.MachiningProcs.SessionShell.AddTimeDataByFile(System.String,System.String,System.String,System.String)">
AddTimeDataByFile(string, string, string, string)
</h3>
<div class="markdown level1 summary"><p>Adds time-based data from a file to the time mapping dictionary with specified time bounds.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce(&quot;AddTimeDataByFile($1key, $2relFile, $3beginTime, $4endTime)&quot;)]
public bool AddTimeDataByFile(string key, string relFile, string beginTimeText, string endTimeText)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>key</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>Key to identify the data</p>
</dd>
<dt><code>relFile</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>Relative path to the data file</p>
</dd>
<dt><code>beginTimeText</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>Beginning time as text (seconds or TimeSpan format)</p>
</dd>
<dt><code>endTimeText</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>Ending time as text (seconds or TimeSpan format)</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.boolean">bool</a></dt>
<dd><p>True if the data was successfully added, false otherwise</p>
</dd>
</dl>
<a id="Hi_MachiningProcs_SessionShell_AdjustedFeedPerCycle_" data-uid="Hi.MachiningProcs.SessionShell.AdjustedFeedPerCycle*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_AdjustedFeedPerCycle_System_Double_System_Double_" data-uid="Hi.MachiningProcs.SessionShell.AdjustedFeedPerCycle(System.Double,System.Double)">
AdjustedFeedPerCycle(double, double)
</h3>
<div class="markdown level1 summary"><p>Gets a new feed per cycle machining motion resolution instance with adjusted scale and minimum linear resolution.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce(&quot;AdjustedFeedPerCycle($1scale,$2minLinearResolution_mm)&quot;)]
public FeedPerCycleMachiningMotionResolution AdjustedFeedPerCycle(double scale, double minLinearResolution_mm = 0)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>scale</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
<dd><p>The scale factor for the resolution.</p>
</dd>
<dt><code>minLinearResolution_mm</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
<dd><p>The minimum linear resolution in millimeters. Default is 0.</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="Hi.Numerical.MachiningMotionResolutionUtils.FeedPerCycleMachiningMotionResolution.html">FeedPerCycleMachiningMotionResolution</a></dt>
<dd><p>A new <a class="xref" href="Hi.Numerical.MachiningMotionResolutionUtils.FeedPerCycleMachiningMotionResolution.html">FeedPerCycleMachiningMotionResolution</a> instance with the specified parameters.</p>
</dd>
</dl>
<a id="Hi_MachiningProcs_SessionShell_AlignWorkpieceProgramZeroToIso_" data-uid="Hi.MachiningProcs.SessionShell.AlignWorkpieceProgramZeroToIso*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_AlignWorkpieceProgramZeroToIso_System_String_" data-uid="Hi.MachiningProcs.SessionShell.AlignWorkpieceProgramZeroToIso(System.String)">
AlignWorkpieceProgramZeroToIso(string)
</h3>
<div class="markdown level1 summary"><p>Places workpiece + fixture so that <a class="xref" href="Hi.NcMech.Workpieces.Workpiece.html#Hi_NcMech_Workpieces_Workpiece_ProgramZeroAnchor">ProgramZeroAnchor</a>
coincides with the world position the spindle reaches when the machine
coordinate equals <code class="paramref">isoCoordId</code>'s entry (G54/G55/...).
The buckle anchors must already be set per the general rule (typically by
the project XML): <a class="xref" href="Hi.NcMech.Workpieces.Workpiece.html#Hi_NcMech_Workpieces_Workpiece_FixtureBuckle">FixtureBuckle</a> at the bottom
center of the workpiece geom, <a class="xref" href="Hi.NcMech.Fixtures.Fixture.html#Hi_NcMech_Fixtures_Fixture_WorkpieceBuckle">WorkpieceBuckle</a> at the
top center of the fixture geom, <a class="xref" href="Hi.NcMech.Workpieces.Workpiece.html#Hi_NcMech_Workpieces_Workpiece_ProgramZeroAnchor">ProgramZeroAnchor</a>
at the workpiece-geom top center (or any chosen tip). Only
<a class="xref" href="Hi.NcMech.Fixtures.Fixture.html#Hi_NcMech_Fixtures_Fixture_GeomToTableTransformer">GeomToTableTransformer</a> is mutated. Delegates topology
math to <a class="xref" href="Hi.Machining.MachiningEquipmentUtils.MachiningEquipmentUtil.html#Hi_Machining_MachiningEquipmentUtils_MachiningEquipmentUtil_AlignWorkpieceProgramZeroToIso_Hi_Machining_MachiningEquipmentUtils_IMachiningEquipment_Hi_Geom_Vec3d_">AlignWorkpieceProgramZeroToIso(IMachiningEquipment, Vec3d)</a>.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce]
public void AlignWorkpieceProgramZeroToIso(string isoCoordId)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>isoCoordId</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>ID into the IsoCoordinateTable, e.g. <code>&ldquo;G54&rdquo;</code>.</p>
</dd>
</dl>
<a id="Hi_MachiningProcs_SessionShell_AppendMessagesToFile_" data-uid="Hi.MachiningProcs.SessionShell.AppendMessagesToFile*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_AppendMessagesToFile_System_String_System_String___" data-uid="Hi.MachiningProcs.SessionShell.AppendMessagesToFile(System.String,System.String[])">
AppendMessagesToFile(string, params string[])
</h3>
<div class="markdown level1 summary"><p>Appends messages to a file, optionally filtered by tags.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce(&quot;AppendMessagesToFile(\&quot;dstRelFile\&quot;,flags)&quot;)]
public void AppendMessagesToFile(string dstRelFile, params string[] flags)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>dstRelFile</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>Destination relative file path</p>
</dd>
<dt><code>flags</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a>[]</dt>
<dd><p>Optional flags to filter messages by tags</p>
</dd>
</dl>
<a id="Hi_MachiningProcs_SessionShell_BeginPreserve_" data-uid="Hi.MachiningProcs.SessionShell.BeginPreserve*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_BeginPreserve" data-uid="Hi.MachiningProcs.SessionShell.BeginPreserve">
BeginPreserve()
</h3>
<div class="markdown level1 summary"><p>Begin Preserve section in optimzation process.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce(&quot;BeginPreserve()&quot;)]
public void BeginPreserve()</code></pre>
</div>
<a id="Hi_MachiningProcs_SessionShell_BeginSelection_" data-uid="Hi.MachiningProcs.SessionShell.BeginSelection*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_BeginSelection_System_String_Hi_Numerical_StepSelectionUtils_AnchorMode_Hi_Numerical_StepSelectionUtils_IStepShift_" data-uid="Hi.MachiningProcs.SessionShell.BeginSelection(System.String,Hi.Numerical.StepSelectionUtils.AnchorMode,Hi.Numerical.StepSelectionUtils.IStepShift)">
BeginSelection(string, AnchorMode, IStepShift)
</h3>
<div class="markdown level1 summary"><p>Begin mark on current line.
milling step() has not triggered yet.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public void BeginSelection(string key, AnchorMode anchorMode = AnchorMode.LineBegin, IStepShift shift = null)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>key</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>Identifier key for the selection</p>
</dd>
<dt><code>anchorMode</code> <a class="xref" href="Hi.Numerical.StepSelectionUtils.AnchorMode.html">AnchorMode</a></dt>
<dd><p>Mode for anchoring the beginning of selection</p>
</dd>
<dt><code>shift</code> <a class="xref" href="Hi.Numerical.StepSelectionUtils.IStepShift.html">IStepShift</a></dt>
<dd><p>Step shift to apply</p>
</dd>
</dl>
<a id="Hi_MachiningProcs_SessionShell_BeginSession_" data-uid="Hi.MachiningProcs.SessionShell.BeginSession*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_BeginSession" data-uid="Hi.MachiningProcs.SessionShell.BeginSession">
BeginSession()
</h3>
<div class="markdown level1 summary"><p>Begins a new machining session.
Not for end user.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public void BeginSession()</code></pre>
</div>
<a id="Hi_MachiningProcs_SessionShell_ClearDefectDisplayee_" data-uid="Hi.MachiningProcs.SessionShell.ClearDefectDisplayee*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_ClearDefectDisplayee" data-uid="Hi.MachiningProcs.SessionShell.ClearDefectDisplayee">
ClearDefectDisplayee()
</h3>
<div class="markdown level1 summary"><p>Clears the defect displayee from the workpiece.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce]
public void ClearDefectDisplayee()</code></pre>
</div>
<a id="Hi_MachiningProcs_SessionShell_ClearTimeMappingData_" data-uid="Hi.MachiningProcs.SessionShell.ClearTimeMappingData*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_ClearTimeMappingData" data-uid="Hi.MachiningProcs.SessionShell.ClearTimeMappingData">
ClearTimeMappingData()
</h3>
<div class="markdown level1 summary"><p>Clears all time mapping data.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce]
public void ClearTimeMappingData()</code></pre>
</div>
<a id="Hi_MachiningProcs_SessionShell_ConvertClToNcFiles_" data-uid="Hi.MachiningProcs.SessionShell.ConvertClToNcFiles*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_ConvertClToNcFiles_System_String_" data-uid="Hi.MachiningProcs.SessionShell.ConvertClToNcFiles(System.String)">
ConvertClToNcFiles(string)
</h3>
<div class="markdown level1 summary"><p>Converts the CLSF play of the current session into Fanuc NC files
(writeback synthesis): the MSYS frame becomes a <code>G68.2</code> tilted
working plane, tool posture becomes <code>G43.4</code> RTCP with rotary
words, motions become <code>G00/G01/G02/G03</code>. Play the CL file on an
XYZABC machine chain first, then convert.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce(Snippet = &quot;ConvertClToNcFiles(\&quot;Output/[NcName].nc\&quot;)&quot;, DocContentHtml = &quot;Convert the played CLSF into Fanuc NC files by substitute template keyword \&quot;[NcName]\&quot;&quot;)]
public void ConvertClToNcFiles(string relNcFileTemplate = &quot;Output/[NcName].nc&quot;)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>relNcFileTemplate</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>Output path template; <code>[NcName]</code>
is replaced by the source file name.</p>
</dd>
</dl>
<a id="Hi_MachiningProcs_SessionShell_Diff_" data-uid="Hi.MachiningProcs.SessionShell.Diff*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_Diff_System_Double_" data-uid="Hi.MachiningProcs.SessionShell.Diff(System.Double)">
Diff(double)
</h3>
<div class="markdown level1 summary"><p>Performs a difference analysis on the workpiece geometry to detect variations.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce(&quot;Diff($1detectionRadius_mm)&quot;)]
public void Diff(double detectionRadius_mm)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>detectionRadius_mm</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
<dd><p>Radius for detecting differences</p>
</dd>
</dl>
<a id="Hi_MachiningProcs_SessionShell_EndPreserve_" data-uid="Hi.MachiningProcs.SessionShell.EndPreserve*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_EndPreserve" data-uid="Hi.MachiningProcs.SessionShell.EndPreserve">
EndPreserve()
</h3>
<div class="markdown level1 summary"><p>End Preserve section in optimzation process.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce(&quot;EndPreserve()&quot;)]
public void EndPreserve()</code></pre>
</div>
<a id="Hi_MachiningProcs_SessionShell_EndSelection_" data-uid="Hi.MachiningProcs.SessionShell.EndSelection*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_EndSelection_System_String_Hi_Numerical_StepSelectionUtils_AnchorMode_Hi_Numerical_StepSelectionUtils_IStepShift_" data-uid="Hi.MachiningProcs.SessionShell.EndSelection(System.String,Hi.Numerical.StepSelectionUtils.AnchorMode,Hi.Numerical.StepSelectionUtils.IStepShift)">
EndSelection(string, AnchorMode, IStepShift)
</h3>
<div class="markdown level1 summary"><p>End mark on current line for selection.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public void EndSelection(string key, AnchorMode anchorMode = AnchorMode.LineEnd, IStepShift shift = null)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>key</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>Identifier key for the selection</p>
</dd>
<dt><code>anchorMode</code> <a class="xref" href="Hi.Numerical.StepSelectionUtils.AnchorMode.html">AnchorMode</a></dt>
<dd><p>Mode for anchoring the end of selection</p>
</dd>
<dt><code>shift</code> <a class="xref" href="Hi.Numerical.StepSelectionUtils.IStepShift.html">IStepShift</a></dt>
<dd><p>Step shift to apply</p>
</dd>
</dl>
<a id="Hi_MachiningProcs_SessionShell_EndSession_" data-uid="Hi.MachiningProcs.SessionShell.EndSession*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_EndSession" data-uid="Hi.MachiningProcs.SessionShell.EndSession">
EndSession()
</h3>
<div class="markdown level1 summary"><p>Ends the current machining session.
Not for end user.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public void EndSession()</code></pre>
</div>
<a id="Hi_MachiningProcs_SessionShell_ErrorMessage_" data-uid="Hi.MachiningProcs.SessionShell.ErrorMessage*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_ErrorMessage_System_String_" data-uid="Hi.MachiningProcs.SessionShell.ErrorMessage(System.String)">
ErrorMessage(string)
</h3>
<div class="markdown level1 summary"><p>Displays an error message in the message host.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce(&quot;ErrorMessage($1message)&quot;)]
public void ErrorMessage(string message)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>message</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>The error message to display</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)">
ExportMeshedGeomToObj(string, double)
</h3>
<div class="markdown level1 summary"><p>Exports the current meshed geometry to a Wavefront OBJ file with per-vertex RGB.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce(&quot;ExportMeshedGeomToObj($1\&quot;dstFile\&quot;,$2resolution_mm)&quot;)]
public void ExportMeshedGeomToObj(string relFile, double resolution_mm = 0)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>relFile</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>Relative path to the output OBJ file</p>
</dd>
<dt><code>resolution_mm</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
<dd><p>Resolution in millimeters (0 for default)</p>
</dd>
</dl>
<a id="Hi_MachiningProcs_SessionShell_ExportMeshedGeomToPly_" data-uid="Hi.MachiningProcs.SessionShell.ExportMeshedGeomToPly*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_ExportMeshedGeomToPly_System_String_System_Double_" data-uid="Hi.MachiningProcs.SessionShell.ExportMeshedGeomToPly(System.String,System.Double)">
ExportMeshedGeomToPly(string, double)
</h3>
<div class="markdown level1 summary"><p>Exports the current meshed geometry to a binary PLY file with per-vertex RGB.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce(&quot;ExportMeshedGeomToPly($1\&quot;dstFile\&quot;,$2resolution_mm)&quot;)]
public void ExportMeshedGeomToPly(string relFile, double resolution_mm = 0)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>relFile</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>Relative path to the output PLY file</p>
</dd>
<dt><code>resolution_mm</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
<dd><p>Resolution in millimeters (0 for default)</p>
</dd>
</dl>
<a id="Hi_MachiningProcs_SessionShell_ExportMeshedGeomToStl_" data-uid="Hi.MachiningProcs.SessionShell.ExportMeshedGeomToStl*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_ExportMeshedGeomToStl_System_String_System_Double_" data-uid="Hi.MachiningProcs.SessionShell.ExportMeshedGeomToStl(System.String,System.Double)">
ExportMeshedGeomToStl(string, double)
</h3>
<div class="markdown level1 summary"><p>Exports the current meshed geometry to an STL file.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce(&quot;ExportMeshedGeomToStl($1\&quot;dstFile\&quot;,$2resolution_mm)&quot;)]
public void ExportMeshedGeomToStl(string relFile, double resolution_mm = 0)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>relFile</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>Relative path to the output STL file</p>
</dd>
<dt><code>resolution_mm</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
<dd><p>Resolution in millimeters (0 for default)</p>
</dd>
</dl>
<a id="Hi_MachiningProcs_SessionShell_ExportRuntimeGeomToObj_" data-uid="Hi.MachiningProcs.SessionShell.ExportRuntimeGeomToObj*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_ExportRuntimeGeomToObj_System_String_System_Double_" data-uid="Hi.MachiningProcs.SessionShell.ExportRuntimeGeomToObj(System.String,System.Double)">
ExportRuntimeGeomToObj(string, double)
</h3>
<div class="markdown level1 summary"><p>Legacy script alias of <a class="xref" href="Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_ExportMeshedGeomToObj_System_String_System_Double_">ExportMeshedGeomToObj(string, double)</a>; kept so old player scripts keep working.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[Obsolete(&quot;Legacy alias; use ExportMeshedGeomToObj instead.&quot;)]
public void ExportRuntimeGeomToObj(string relFile, double resolution_mm = 0)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>relFile</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd></dd>
<dt><code>resolution_mm</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
<dd></dd>
</dl>
<a id="Hi_MachiningProcs_SessionShell_ExportRuntimeGeomToPly_" data-uid="Hi.MachiningProcs.SessionShell.ExportRuntimeGeomToPly*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_ExportRuntimeGeomToPly_System_String_System_Double_" data-uid="Hi.MachiningProcs.SessionShell.ExportRuntimeGeomToPly(System.String,System.Double)">
ExportRuntimeGeomToPly(string, double)
</h3>
<div class="markdown level1 summary"><p>Legacy script alias of <a class="xref" href="Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_ExportMeshedGeomToPly_System_String_System_Double_">ExportMeshedGeomToPly(string, double)</a>; kept so old player scripts keep working.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[Obsolete(&quot;Legacy alias; use ExportMeshedGeomToPly instead.&quot;)]
public void ExportRuntimeGeomToPly(string relFile, double resolution_mm = 0)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>relFile</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd></dd>
<dt><code>resolution_mm</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
<dd></dd>
</dl>
<a id="Hi_MachiningProcs_SessionShell_ExportRuntimeGeomToStl_" data-uid="Hi.MachiningProcs.SessionShell.ExportRuntimeGeomToStl*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_ExportRuntimeGeomToStl_System_String_System_Double_" data-uid="Hi.MachiningProcs.SessionShell.ExportRuntimeGeomToStl(System.String,System.Double)">
ExportRuntimeGeomToStl(string, double)
</h3>
<div class="markdown level1 summary"><p>Legacy script alias of <a class="xref" href="Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_ExportMeshedGeomToStl_System_String_System_Double_">ExportMeshedGeomToStl(string, double)</a>; kept so old player scripts keep working.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[Obsolete(&quot;Legacy alias; use ExportMeshedGeomToStl instead.&quot;)]
public void ExportRuntimeGeomToStl(string relFile, double resolution_mm = 0)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>relFile</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd></dd>
<dt><code>resolution_mm</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
<dd></dd>
</dl>
<a id="Hi_MachiningProcs_SessionShell_FixedPace_" data-uid="Hi.MachiningProcs.SessionShell.FixedPace*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_FixedPace_System_Double_System_Double_" data-uid="Hi.MachiningProcs.SessionShell.FixedPace(System.Double,System.Double)">
FixedPace(double, double)
</h3>
<div class="markdown level1 summary"><p>Creates a fixed machining motion resolution with specified parameters.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce(&quot;FixedPace($1linearResolution_mm, $2rotaryResolution_deg)&quot;)]
public FixedMachiningMotionResolution FixedPace(double linearResolution_mm, double rotaryResolution_deg)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>linearResolution_mm</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
<dd><p>Linear resolution in millimeters</p>
</dd>
<dt><code>rotaryResolution_deg</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
<dd><p>Rotary resolution in degrees</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="Hi.Numerical.MachiningMotionResolutionUtils.FixedMachiningMotionResolution.html">FixedMachiningMotionResolution</a></dt>
<dd><p>A new fixed machining motion resolution instance</p>
</dd>
</dl>
<a id="Hi_MachiningProcs_SessionShell_GetMillingStep_" data-uid="Hi.MachiningProcs.SessionShell.GetMillingStep*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_GetMillingStep_System_Int32_" data-uid="Hi.MachiningProcs.SessionShell.GetMillingStep(System.Int32)">
GetMillingStep(int)
</h3>
<div class="markdown level1 summary"><p>Retrieves a milling step at the specified index.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce(Snippet = &quot;GetMillingStep($1\&quot;stepIndex\&quot;)&quot;)]
public MachiningStep GetMillingStep(int stepIndex)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>stepIndex</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int32">int</a></dt>
<dd><p>Index of the milling step to retrieve</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="Hi.MachiningSteps.MachiningStep.html">MachiningStep</a></dt>
<dd><p>The milling step at the specified index</p>
</dd>
</dl>
<a id="Hi_MachiningProcs_SessionShell_GetStickMachiningToolObservationHeight_mm_" data-uid="Hi.MachiningProcs.SessionShell.GetStickMachiningToolObservationHeight_mm*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_GetStickMachiningToolObservationHeight_mm_System_Int32_" data-uid="Hi.MachiningProcs.SessionShell.GetStickMachiningToolObservationHeight_mm(System.Int32)">
GetStickMachiningToolObservationHeight_mm(int)
</h3>
<div class="markdown level1 summary"><p>Gets the observation height in millimeters for the specified stick machining tool.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce(&quot;GetStickMachiningToolObservationHeight_mm($1toolId)&quot;)]
public double GetStickMachiningToolObservationHeight_mm(int toolId)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>toolId</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int32">int</a></dt>
<dd><p>The ID of the tool</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
<dd><p>The observation height in millimeters</p>
</dd>
</dl>
<a id="Hi_MachiningProcs_SessionShell_GetUniformFlutingShiftAngle_deg_" data-uid="Hi.MachiningProcs.SessionShell.GetUniformFlutingShiftAngle_deg*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_GetUniformFlutingShiftAngle_deg_System_Int32_" data-uid="Hi.MachiningProcs.SessionShell.GetUniformFlutingShiftAngle_deg(System.Int32)">
GetUniformFlutingShiftAngle_deg(int)
</h3>
<div class="markdown level1 summary"><p>Gets the shift angle in degrees for the uniform fluting of the specified tool,
that is, for a cutter whose flutes all share one baseline flute contour.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce(&quot;GetUniformFlutingShiftAngle_deg($1toolId)&quot;)]
public double GetUniformFlutingShiftAngle_deg(int toolId)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>toolId</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int32">int</a></dt>
<dd><p>The ID of the tool</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
<dd><p>The shift angle in degrees</p>
</dd>
</dl>
<a id="Hi_MachiningProcs_SessionShell_LineSelection_" data-uid="Hi.MachiningProcs.SessionShell.LineSelection*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_LineSelection_System_String_Hi_Numerical_StepSelectionUtils_AnchorMode_Hi_Numerical_StepSelectionUtils_IStepShift_Hi_Numerical_StepSelectionUtils_AnchorMode_Hi_Numerical_StepSelectionUtils_IStepShift_" data-uid="Hi.MachiningProcs.SessionShell.LineSelection(System.String,Hi.Numerical.StepSelectionUtils.AnchorMode,Hi.Numerical.StepSelectionUtils.IStepShift,Hi.Numerical.StepSelectionUtils.AnchorMode,Hi.Numerical.StepSelectionUtils.IStepShift)">
LineSelection(string, AnchorMode, IStepShift, AnchorMode, IStepShift)
</h3>
<div class="markdown level1 summary"><p>Create a line selection from begin to end mark.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public void LineSelection(string key, AnchorMode beginAnchorMode = AnchorMode.LineBegin, IStepShift beginShift = null, AnchorMode endAnchorMode = AnchorMode.LineEnd, IStepShift endShift = null)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>key</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>Identifier key for the selection</p>
</dd>
<dt><code>beginAnchorMode</code> <a class="xref" href="Hi.Numerical.StepSelectionUtils.AnchorMode.html">AnchorMode</a></dt>
<dd><p>Mode for anchoring the beginning of selection</p>
</dd>
<dt><code>beginShift</code> <a class="xref" href="Hi.Numerical.StepSelectionUtils.IStepShift.html">IStepShift</a></dt>
<dd><p>Step shift to apply at beginning</p>
</dd>
<dt><code>endAnchorMode</code> <a class="xref" href="Hi.Numerical.StepSelectionUtils.AnchorMode.html">AnchorMode</a></dt>
<dd><p>Mode for anchoring the end of selection</p>
</dd>
<dt><code>endShift</code> <a class="xref" href="Hi.Numerical.StepSelectionUtils.IStepShift.html">IStepShift</a></dt>
<dd><p>Step shift to apply at end</p>
</dd>
</dl>
<a id="Hi_MachiningProcs_SessionShell_LoadCuttingParaByFile_" data-uid="Hi.MachiningProcs.SessionShell.LoadCuttingParaByFile*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_LoadCuttingParaByFile_System_String_" data-uid="Hi.MachiningProcs.SessionShell.LoadCuttingParaByFile(System.String)">
LoadCuttingParaByFile(string)
</h3>
<div class="markdown level1 summary"><p>Loads cutting parameters from a file.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce(&quot;LoadCuttingParaByFile($1\&quot;relFile\&quot;)&quot;)]
public void LoadCuttingParaByFile(string relFile)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>relFile</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>File path relative to <a class="xref" href="Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_BaseDirectory">BaseDirectory</a>.</p>
</dd>
</dl>
<a id="Hi_MachiningProcs_SessionShell_Map_" data-uid="Hi.MachiningProcs.SessionShell.Map*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_Map_System_String_Hi_Mappings_IFileTimeSection_System_Nullable_Hi_Mapping_StepTimeShotUtil_CycleSamplingMode__" data-uid="Hi.MachiningProcs.SessionShell.Map(System.String,Hi.Mappings.IFileTimeSection,System.Nullable{Hi.Mapping.StepTimeShotUtil.CycleSamplingMode})">
Map(string, IFileTimeSection, CycleSamplingMode?)
</h3>
<div class="markdown level1 summary"><p>Maps selection data to time section.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public Task Map(string key, IFileTimeSection fileTimeSection = null, StepTimeShotUtil.CycleSamplingMode? cycleSamplingMode = CycleSamplingMode.SpindleCycle)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>key</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>Identifier key for the selection</p>
</dd>
<dt><code>fileTimeSection</code> <a class="xref" href="Hi.Mappings.IFileTimeSection.html">IFileTimeSection</a></dt>
<dd><p>File time section, or null to use the one associated with the key</p>
</dd>
<dt><code>cycleSamplingMode</code> <a class="xref" href="Hi.Mapping.StepTimeShotUtil.html">StepTimeShotUtil</a>.<a class="xref" href="Hi.Mapping.StepTimeShotUtil.CycleSamplingMode.html">CycleSamplingMode</a>?</dt>
<dd><p>Cycle sampling mode</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.threading.tasks.task">Task</a></dt>
<dd><p>Task representing the asynchronous mapping operation</p>
</dd>
</dl>
<a id="Hi_MachiningProcs_SessionShell_MapByActualTime_" data-uid="Hi.MachiningProcs.SessionShell.MapByActualTime*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_MapByActualTime_System_String_Hi_Mapping_StepTimeShotUtil_CycleSamplingMode_" data-uid="Hi.MachiningProcs.SessionShell.MapByActualTime(System.String,Hi.Mapping.StepTimeShotUtil.CycleSamplingMode)">
MapByActualTime(string, CycleSamplingMode)
</h3>
<div class="markdown level1 summary"><p>Maps machining steps by actual time from a time shot file.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[Obsolete]
public void MapByActualTime(string timeShotRelFile, StepTimeShotUtil.CycleSamplingMode cycleSamplingMode = CycleSamplingMode.SpindleCycle)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>timeShotRelFile</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>Relative path to the time shot file.</p>
</dd>
<dt><code>cycleSamplingMode</code> <a class="xref" href="Hi.Mapping.StepTimeShotUtil.html">StepTimeShotUtil</a>.<a class="xref" href="Hi.Mapping.StepTimeShotUtil.CycleSamplingMode.html">CycleSamplingMode</a></dt>
<dd><p>The cycle sampling mode.</p>
</dd>
</dl>
<a id="Hi_MachiningProcs_SessionShell_MapSeriesByCsvFile_" data-uid="Hi.MachiningProcs.SessionShell.MapSeriesByCsvFile*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_MapSeriesByCsvFile_System_String_Hi_Mapping_StepTimeShotUtil_CycleSamplingMode_" data-uid="Hi.MachiningProcs.SessionShell.MapSeriesByCsvFile(System.String,Hi.Mapping.StepTimeShotUtil.CycleSamplingMode)">
MapSeriesByCsvFile(string, CycleSamplingMode)
</h3>
<div class="markdown level1 summary"><p>Maps machining steps by actual time from a time shot csv file.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce(&quot;MapSeriesByCsvFile($1timeShotRelFile)&quot;)]
public void MapSeriesByCsvFile(string timeShotRelFile, StepTimeShotUtil.CycleSamplingMode cycleSamplingMode = CycleSamplingMode.SpindleCycle)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>timeShotRelFile</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>Relative path to the time shot file.</p>
</dd>
<dt><code>cycleSamplingMode</code> <a class="xref" href="Hi.Mapping.StepTimeShotUtil.html">StepTimeShotUtil</a>.<a class="xref" href="Hi.Mapping.StepTimeShotUtil.CycleSamplingMode.html">CycleSamplingMode</a></dt>
<dd><p>The cycle sampling mode.</p>
</dd>
</dl>
<h4 class="section" id="Hi_MachiningProcs_SessionShell_MapSeriesByCsvFile_System_String_Hi_Mapping_StepTimeShotUtil_CycleSamplingMode__remarks">Remarks</h4>
<div class="markdown level1 remarks"><p><code class="paramref">cycleSamplingMode</code> sets how much sensor data each step is paired
with. The window is anchored at the step's end time and runs forward for one cycle
period, so a step is always regressed against samples its <em>neighbours</em>
produced. While the cut is steady that costs nothing: a neighbour cutting the same
arc at the same chip load produces, at a given rotation angle, the force this step
would have produced, so the borrowed rows are extra samples rather than extra
error. The pairing turns into a systematic bias only where the cutter-workpiece
engagement changes across the window — cutter entry, pass exit, corners, depth
changes. <strong>Restricting training to the steady part of the cut is therefore the
largest single accuracy lever</strong>, and once the transient is out the window choice
stops mattering: on the D8 2-flute Al6061-T6 case the two modes differ by 2.2
percentage points over the whole path (Fc error at feed-per-tooth 0.2:
−9.3 % for <a class="xref" href="Hi.Mapping.StepTimeShotUtil.CycleSamplingMode.html#Hi_Mapping_StepTimeShotUtil_CycleSamplingMode_SpindleCycle">SpindleCycle</a> versus −7.1 % for
<a class="xref" href="Hi.Mapping.StepTimeShotUtil.CycleSamplingMode.html#Hi_Mapping_StepTimeShotUtil_CycleSamplingMode_FluteCycle">FluteCycle</a>) but by 0.06 over the steady part alone,
where both reach −3.3 % / −3.2 % at R 98.5 %. Keep the default and its larger
sample count; on a single-flute cutter the two modes coincide anyway.</p>
<p>
Gaps in the data (an acquisition dropout, or rows carved out to keep the
steady section only) are handled: a step whose window contains no measured
row is excluded from the mapping, and one <code>Map-ShotGap--StepsSkipped</code>
warning carries the count. A window-edge row is only interpolated when its
bracketing rows span at most two spindle revolutions — farther rows sit
across a gap and no edge row is fabricated from them.
</p>
</div>
<a id="Hi_MachiningProcs_SessionShell_MapSingleByCsvFile_" data-uid="Hi.MachiningProcs.SessionShell.MapSingleByCsvFile*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_MapSingleByCsvFile_System_String_" data-uid="Hi.MachiningProcs.SessionShell.MapSingleByCsvFile(System.String)">
MapSingleByCsvFile(string)
</h3>
<div class="markdown level1 summary"><p>Reads a CSV file and performs time-based interpolation to map data to milling steps.
It is one (step) - one (embedded-data) mapping.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce(Snippet = &quot;MapSingleByCsvFile($1\&quot;csvFile\&quot;)&quot;)]
public void MapSingleByCsvFile(string csvFile)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>csvFile</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>Path to the CSV file relative to the base directory</p>
</dd>
</dl>
<a id="Hi_MachiningProcs_SessionShell_Message_" data-uid="Hi.MachiningProcs.SessionShell.Message*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_Message_System_String_" data-uid="Hi.MachiningProcs.SessionShell.Message(System.String)">
Message(string)
</h3>
<div class="markdown level1 summary"><p>Displays a message in the message host.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce(&quot;Message($1message)&quot;)]
public void Message(string message)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>message</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>The message to display</p>
</dd>
</dl>
<a id="Hi_MachiningProcs_SessionShell_OptCallPreferFuncIndexDictionary_" data-uid="Hi.MachiningProcs.SessionShell.OptCallPreferFuncIndexDictionary*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_OptCallPreferFuncIndexDictionary" data-uid="Hi.MachiningProcs.SessionShell.OptCallPreferFuncIndexDictionary">
OptCallPreferFuncIndexDictionary()
</h3>
<div class="markdown level1 summary"><p>Gets the dictionary of preferred function index for NC optimization.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce(&quot;OptCallPreferFuncIndexDictionary()&quot;)]
public Dictionary&lt;Func&lt;MillingPhysicsBrief, double&gt;, double&gt; OptCallPreferFuncIndexDictionary()</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.dictionary-2">Dictionary</a>&lt;<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.func-2">Func</a>&lt;<a class="xref" href="Hi.MillingForces.MillingPhysicsBrief.html">MillingPhysicsBrief</a>, <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a>&gt;, <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a>&gt;</dt>
<dd><p>Dictionary mapping functions to their preference indexes.</p>
</dd>
</dl>
<a id="Hi_MachiningProcs_SessionShell_OptimizeToFiles_" data-uid="Hi.MachiningProcs.SessionShell.OptimizeToFiles*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_OptimizeToFiles_System_String_" data-uid="Hi.MachiningProcs.SessionShell.OptimizeToFiles(System.String)">
OptimizeToFiles(string)
</h3>
<div class="markdown level1 summary"><p>Optimizes NC files and saves results using the specified file template.
Routing rule: when <a class="xref" href="Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_EnableSoftNcRunner">EnableSoftNcRunner</a>
is on and the session holds played SoftNc
<a class="xref" href="Hi.MachiningProcs.NcRunnerSessionState.html#Hi_MachiningProcs_NcRunnerSessionState_SyntaxPieceLayers">SyntaxPieceLayers</a> (non-empty), the
SoftNc pipeline (<a class="xref" href="Hi.MachiningProcs.MachiningSession.html#Hi_MachiningProcs_MachiningSession_OptimizeNcFiles_System_String_System_String_Hi_MillingForces_Fittings_ICuttingPara_System_IProgress_Hi_Common_Messages_IMessage__System_Threading_CancellationToken_System_Func_System_Int32_Hi_MillingSteps_MillingStepLuggage__System_Action_">OptimizeNcFiles(string, string, ICuttingPara, IProgress&lt;IMessage&gt;, CancellationToken, Func&lt;int, MillingStepLuggage&gt;, Action)</a> /
<code>Hi.NcOpt.SoftNcOptProc</code>) is used; otherwise the legacy HardNc
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.generic.linkedlist-1">OptimizeToFiles(ICuttingPara, MachiningSession, LinkedList&lt;HardNcLine&gt;, HardNcEnv, MachiningToolHouse, ClStrip, string, IProgress&lt;IMessage&gt;, CancellationToken, string)</a> path runs unchanged. Both paths
first clear every cutter's <code>MillingCutterOptLimit</code> cache.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce(Snippet = &quot;OptimizeToFiles(\&quot;Output/Opt-[NcName]\&quot;)&quot;, DocContentHtml = &quot;Optimize To Files by substitude template keywoard \&quot;[NcName]\&quot;&quot;)]
public void OptimizeToFiles(string relFileTemplate = &quot;Output/Opt-[NcName]&quot;)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>relFileTemplate</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>Template for output file path, can include [NcName] placeholder</p>
</dd>
</dl>
<a id="Hi_MachiningProcs_SessionShell_Pace_" data-uid="Hi.MachiningProcs.SessionShell.Pace*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_Pace" data-uid="Hi.MachiningProcs.SessionShell.Pace">
Pace()
</h3>
<div class="markdown level1 summary"><p>A pausable mark for the playing process.
The function enables <a class="xref" href="Hi.Common.PacePlayer.html#Hi_Common_PacePlayer_Pause">Pause()</a> to take effect.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce(&quot;Pace();&quot;)]
public void Pace()</code></pre>
</div>
<h4 class="section" id="Hi_MachiningProcs_SessionShell_Pace_remarks">Remarks</h4>
<div class="markdown level1 remarks"><p>Waits for the player to signal the next pace.</p>
</div>
<a id="Hi_MachiningProcs_SessionShell_Pause_" data-uid="Hi.MachiningProcs.SessionShell.Pause*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_Pause" data-uid="Hi.MachiningProcs.SessionShell.Pause">
Pause()
</h3>
<div class="markdown level1 summary"><p>Pause Player</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce(DocContentHtml = &quot;Pause Player&quot;)]
public void Pause()</code></pre>
</div>
<a id="Hi_MachiningProcs_SessionShell_PlayAct_" data-uid="Hi.MachiningProcs.SessionShell.PlayAct*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_PlayAct_Hi_Numerical_Acts_IAct_Hi_NcParsers_ISentenceCarrier_System_Nullable_System_Threading_CancellationToken__" data-uid="Hi.MachiningProcs.SessionShell.PlayAct(Hi.Numerical.Acts.IAct,Hi.NcParsers.ISentenceCarrier,System.Nullable{System.Threading.CancellationToken})">
PlayAct(IAct, ISentenceCarrier, CancellationToken?)
</h3>
<div class="markdown level1 summary"><p>Plays an act with pacing control.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce]
public void PlayAct(IAct act, ISentenceCarrier sourceCommand = null, CancellationToken? cancellationToken = null)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>act</code> <a class="xref" href="Hi.Numerical.Acts.IAct.html">IAct</a></dt>
<dd><p>The act to play.</p>
</dd>
<dt><code>sourceCommand</code> <a class="xref" href="Hi.NcParsers.ISentenceCarrier.html">ISentenceCarrier</a></dt>
<dd><p>The source command.</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>
<a id="Hi_MachiningProcs_SessionShell_PlayBrandNcFile_" data-uid="Hi.MachiningProcs.SessionShell.PlayBrandNcFile*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_PlayBrandNcFile_System_String_" data-uid="Hi.MachiningProcs.SessionShell.PlayBrandNcFile(System.String)">
PlayBrandNcFile(string)
</h3>
<div class="markdown level1 summary"><p>Plays a famous-brand NC code file with the specified relative path
(no kind dispatch — always the brand runner).</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce(&quot;PlayBrandNcFile($1\&quot;ncFile\&quot;);&quot;)]
public void PlayBrandNcFile(string relNcFilePath)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>relNcFilePath</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>Relative path to the NC file</p>
</dd>
</dl>
<a id="Hi_MachiningProcs_SessionShell_PlayClFile_" data-uid="Hi.MachiningProcs.SessionShell.PlayClFile*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_PlayClFile_System_String_" data-uid="Hi.MachiningProcs.SessionShell.PlayClFile(System.String)">
PlayClFile(string)
</h3>
<div class="markdown level1 summary"><p>Plays an NX-CL (CLSF) file with the specified relative path.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce(&quot;PlayClFile($1\&quot;clFile\&quot;);&quot;)]
public void PlayClFile(string relFilePath)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>relFilePath</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>Relative path to the CLSF file</p>
</dd>
</dl>
<a id="Hi_MachiningProcs_SessionShell_PlayClTeleport_" data-uid="Hi.MachiningProcs.SessionShell.PlayClTeleport*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_PlayClTeleport_System_Double_System_Double_System_Double_System_Double_System_Double_System_Double_" data-uid="Hi.MachiningProcs.SessionShell.PlayClTeleport(System.Double,System.Double,System.Double,System.Double,System.Double,System.Double)">
PlayClTeleport(double, double, double, double, double, double)
</h3>
<div class="markdown level1 summary"><p>Plays a CL (cutter location) teleport operation.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce]
public void PlayClTeleport(double x, double y, double z, double i, double j, double k)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>x</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
<dd><p>X coordinate.</p>
</dd>
<dt><code>y</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
<dd><p>Y coordinate.</p>
</dd>
<dt><code>z</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
<dd><p>Z coordinate.</p>
</dd>
<dt><code>i</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
<dd><p>I vector component.</p>
</dd>
<dt><code>j</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
<dd><p>J vector component.</p>
</dd>
<dt><code>k</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
<dd><p>K vector component.</p>
</dd>
</dl>
<a id="Hi_MachiningProcs_SessionShell_PlayCsvFile_" data-uid="Hi.MachiningProcs.SessionShell.PlayCsvFile*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_PlayCsvFile_System_String_" data-uid="Hi.MachiningProcs.SessionShell.PlayCsvFile(System.String)">
PlayCsvFile(string)
</h3>
<div class="markdown level1 summary"><p>Plays an Csv file with the specified relative path.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce(&quot;PlayCsvFile($1\&quot;csvFile\&quot;);&quot;)]
public void PlayCsvFile(string relFilePath)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>relFilePath</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>Relative path to the CSV file</p>
</dd>
</dl>
<a id="Hi_MachiningProcs_SessionShell_PlayNc_" data-uid="Hi.MachiningProcs.SessionShell.PlayNc*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_PlayNc_System_String_System_String_" data-uid="Hi.MachiningProcs.SessionShell.PlayNc(System.String,System.String)">
PlayNc(string, string)
</h3>
<div class="markdown level1 summary"><p>Plays NC code directly from a string, executing each action and pacing between them.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce(Snippet = &quot;PlayNc($1\&quot;ncCommand\&quot;,$2\&quot;\&quot;(Direct Command)\&quot;\&quot;);&quot;, DocContentHtml = &quot;Play NC. second parameter is the file name alternative shows in the log.&quot;)]
public void PlayNc(string ncText, string fileNameAlternative = &quot;--&quot;)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>ncText</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>NC code as a string</p>
</dd>
<dt><code>fileNameAlternative</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>Alternative name to display in logs</p>
</dd>
</dl>
<a id="Hi_MachiningProcs_SessionShell_PlayNcFile_" data-uid="Hi.MachiningProcs.SessionShell.PlayNcFile*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_PlayNcFile_System_String_Hi_MachiningProcs_NcKind_" data-uid="Hi.MachiningProcs.SessionShell.PlayNcFile(System.String,Hi.MachiningProcs.NcKind)">
PlayNcFile(string, NcKind)
</h3>
<div class="markdown level1 summary"><p>Plays an NC program file with the specified relative path, the runner
picked by <code class="paramref">kind</code> (<code>Auto</code> = by file extension:
<code>.cl</code>/<code>.cls</code>/<code>.clsf</code> play as CL, <code>.csv</code> as CSV,
anything else as brand NC — so existing scripts keep their behavior).</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce(&quot;PlayNcFile($1\&quot;ncFile\&quot;);&quot;)]
public void PlayNcFile(string relNcFilePath, NcKind kind = NcKind.Auto)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>relNcFilePath</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>Relative path to the NC program file</p>
</dd>
<dt><code>kind</code> <a class="xref" href="Hi.MachiningProcs.NcKind.html">NcKind</a></dt>
<dd><p>Which runner plays the file; Auto detects by extension.</p>
</dd>
</dl>
<a id="Hi_MachiningProcs_SessionShell_PlayToolingTeleport_" data-uid="Hi.MachiningProcs.SessionShell.PlayToolingTeleport*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_PlayToolingTeleport_System_Int32_" data-uid="Hi.MachiningProcs.SessionShell.PlayToolingTeleport(System.Int32)">
PlayToolingTeleport(int)
</h3>
<div class="markdown level1 summary"><p>Plays a tooling teleport operation.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce]
public void PlayToolingTeleport(int toolId)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>toolId</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int32">int</a></dt>
<dd><p>The tool ID to teleport.</p>
</dd>
</dl>
<a id="Hi_MachiningProcs_SessionShell_PowerReset_" data-uid="Hi.MachiningProcs.SessionShell.PowerReset*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_PowerReset" data-uid="Hi.MachiningProcs.SessionShell.PowerReset">
PowerReset()
</h3>
<div class="markdown level1 summary"><p>Performs a controller power reset: every <a class="xref" href="Hi.NcParsers.Dependencys.IPowerResettable.html">IPowerResettable</a> dependency
in the active <code>NcDependencyList</code> clears its volatile subset (e.g. Fanuc
common volatile macro variables <code>#100-#499</code>). Persistent state is left intact.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce(&quot;PowerReset();&quot;)]
public void PowerReset()</code></pre>
</div>
<a id="Hi_MachiningProcs_SessionShell_Preserve_" data-uid="Hi.MachiningProcs.SessionShell.Preserve*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_Preserve" data-uid="Hi.MachiningProcs.SessionShell.Preserve">
Preserve()
</h3>
<div class="markdown level1 summary"><p>Preserve one line NC code in optimzation process.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce(&quot;Preserve()&quot;)]
public void Preserve()</code></pre>
</div>
<a id="Hi_MachiningProcs_SessionShell_ProgressMessage_" data-uid="Hi.MachiningProcs.SessionShell.ProgressMessage*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_ProgressMessage_System_String_" data-uid="Hi.MachiningProcs.SessionShell.ProgressMessage(System.String)">
ProgressMessage(string)
</h3>
<div class="markdown level1 summary"><p>Displays a progress message in the message host.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce(&quot;ProgressMessage($1message)&quot;)]
public void ProgressMessage(string message)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>message</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>The progress message to display</p>
</dd>
</dl>
<a id="Hi_MachiningProcs_SessionShell_ReTrainMillingPara_" data-uid="Hi.MachiningProcs.SessionShell.ReTrainMillingPara*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_ReTrainMillingPara_Hi_MillingForces_Fittings_SampleFlag_System_String_System_Double_" data-uid="Hi.MachiningProcs.SessionShell.ReTrainMillingPara(Hi.MillingForces.Fittings.SampleFlag,System.String,System.Double)">
ReTrainMillingPara(SampleFlag, string, double)
</h3>
<div class="markdown level1 summary"><p>Re-trains milling parameters using the specified sample flag.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce(&quot;ReTrainMillingPara(Fx|Fy|Fz, $1dstFile)&quot;)]
public void ReTrainMillingPara(SampleFlag sampleFlag, string dstRelFile, double outlierRatio = 0.1)</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>Sample flag indicating which components to train</p>
</dd>
<dt><code>dstRelFile</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>Destination relative file path</p>
</dd>
<dt><code>outlierRatio</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
<dd><p>Outlier ratio for data filtering</p>
</dd>
</dl>
<a id="Hi_MachiningProcs_SessionShell_ReadCsvByTimeInterpolation_" data-uid="Hi.MachiningProcs.SessionShell.ReadCsvByTimeInterpolation*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_ReadCsvByTimeInterpolation_System_String_" data-uid="Hi.MachiningProcs.SessionShell.ReadCsvByTimeInterpolation(System.String)">
ReadCsvByTimeInterpolation(string)
</h3>
<div class="markdown level1 summary"><p>Reads a CSV file and performs time-based interpolation to map data to milling steps.
It is one (step) - one (embedded-data) mapping.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[Obsolete]
public void ReadCsvByTimeInterpolation(string csvFile)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>csvFile</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>Path to the CSV file relative to the base directory</p>
</dd>
</dl>
<a id="Hi_MachiningProcs_SessionShell_ReadMeshedGeom_" data-uid="Hi.MachiningProcs.SessionShell.ReadMeshedGeom*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_ReadMeshedGeom_System_String_" data-uid="Hi.MachiningProcs.SessionShell.ReadMeshedGeom(System.String)">
ReadMeshedGeom(string)
</h3>
<div class="markdown level1 summary"><p>Reads meshed geometry from a file.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce(&quot;ReadMeshedGeom($1\&quot;srcFile\&quot;)&quot;)]
public void ReadMeshedGeom(string relFile)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>relFile</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>Relative path to the input file</p>
</dd>
</dl>
<a id="Hi_MachiningProcs_SessionShell_ReadRuntimeGeom_" data-uid="Hi.MachiningProcs.SessionShell.ReadRuntimeGeom*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_ReadRuntimeGeom_System_String_" data-uid="Hi.MachiningProcs.SessionShell.ReadRuntimeGeom(System.String)">
ReadRuntimeGeom(string)
</h3>
<div class="markdown level1 summary"><p>Legacy script alias of <a class="xref" href="Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_ReadMeshedGeom_System_String_">ReadMeshedGeom(string)</a>; kept so old player scripts keep working.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[Obsolete(&quot;Legacy alias; use ReadMeshedGeom instead.&quot;)]
public void ReadRuntimeGeom(string relFile)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>relFile</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd></dd>
</dl>
<a id="Hi_MachiningProcs_SessionShell_RegisterStepVariable_" data-uid="Hi.MachiningProcs.SessionShell.RegisterStepVariable*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_RegisterStepVariable_System_String_System_String_System_String_System_String_System_Func_Hi_MachiningSteps_MachiningStep_System_Object__" data-uid="Hi.MachiningProcs.SessionShell.RegisterStepVariable(System.String,System.String,System.String,System.String,System.Func{Hi.MachiningSteps.MachiningStep,System.Object})">
RegisterStepVariable(string, string, string, string, Func&lt;MachiningStep, object&gt;)
</h3>
<div class="markdown level1 summary"><p>Registers a step variable for tracking during execution.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce(Snippet = &quot;RegisterStepVariable(\&quot;$1key\&quot;,\&quot;$2name\&quot;,\&quot;$3unit\&quot;,\&quot;$4formatString\&quot;,\&quot;$5variableFunc\&quot;)&quot;, DocContentHtml = &quot;&lt;p&gt;Register Step Variable.&lt;/p&gt; &lt;p&gt;\&quot;unit\&quot; is nullable&lt;/p&gt; &lt;p&gt;\&quot;formatString\&quot; is nullable&lt;/p&gt;&quot;)]
public void RegisterStepVariable(string key, string name, string unit, string formatString, Func&lt;MachiningStep, object&gt; variableFunc = null)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>key</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>Unique key to identify the variable</p>
</dd>
<dt><code>name</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>Human-readable name of the variable</p>
</dd>
<dt><code>unit</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>Physical unit of the variable (can be null)</p>
</dd>
<dt><code>formatString</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>Format string for displaying the variable (can be null)</p>
</dd>
<dt><code>variableFunc</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.func-2">Func</a>&lt;<a class="xref" href="Hi.MachiningSteps.MachiningStep.html">MachiningStep</a>, <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a>&gt;</dt>
<dd><p>Function to compute the variable value from a milling step (can be null)</p>
</dd>
</dl>
<a id="Hi_MachiningProcs_SessionShell_RegisterWriteSyntaxPieces_" data-uid="Hi.MachiningProcs.SessionShell.RegisterWriteSyntaxPieces*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_RegisterWriteSyntaxPieces_System_String_" data-uid="Hi.MachiningProcs.SessionShell.RegisterWriteSyntaxPieces(System.String)">
RegisterWriteSyntaxPieces(string)
</h3>
<div class="markdown level1 summary"><p>Registers a text writer so each executed <a class="xref" href="Hi.NcParsers.Syntaxs.SyntaxPiece.html">SyntaxPiece</a> is appended to
<code class="paramref">relOutputFile</code> under the machining project base directory for debugging.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce(Snippet = &quot;RegisterWriteSyntaxPieces($1\&quot;Cache/syntax-pieces-output.txt\&quot;)&quot;)]
public void RegisterWriteSyntaxPieces(string relOutputFile)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>relOutputFile</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>Relative path for the output log file.</p>
</dd>
</dl>
<a id="Hi_MachiningProcs_SessionShell_RegisterWriteSyntaxPiecesWithActs_" data-uid="Hi.MachiningProcs.SessionShell.RegisterWriteSyntaxPiecesWithActs*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_RegisterWriteSyntaxPiecesWithActs_System_String_" data-uid="Hi.MachiningProcs.SessionShell.RegisterWriteSyntaxPiecesWithActs(System.String)">
RegisterWriteSyntaxPiecesWithActs(string)
</h3>
<div class="markdown level1 summary"><p>Registers a writer that outputs each <a class="xref" href="Hi.NcParsers.Syntaxs.SyntaxPiece.html">SyntaxPiece</a> once,
followed by its associated <a class="xref" href="Hi.Numerical.Acts.IAct.html">IAct</a> entries (one-to-many).</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce(Snippet = &quot;RegisterWriteSyntaxPiecesWithActs($1\&quot;Cache/syntax-pieces-acts-output.txt\&quot;)&quot;)]
public void RegisterWriteSyntaxPiecesWithActs(string relOutputFile)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>relOutputFile</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>Output file path relative to <a class="xref" href="Hi.MachiningProcs.MachiningProject.html#Hi_MachiningProcs_MachiningProject_BaseDirectory">BaseDirectory</a>.</p>
</dd>
</dl>
<a id="Hi_MachiningProcs_SessionShell_RemoveFlyPiece_" data-uid="Hi.MachiningProcs.SessionShell.RemoveFlyPiece*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_RemoveFlyPiece" data-uid="Hi.MachiningProcs.SessionShell.RemoveFlyPiece">
RemoveFlyPiece()
</h3>
<div class="markdown level1 summary"><p>Removes any disconnected or &ldquo;flying&rdquo; pieces from the workpiece geometry.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce]
public void RemoveFlyPiece()</code></pre>
</div>
<a id="Hi_MachiningProcs_SessionShell_Reset_" data-uid="Hi.MachiningProcs.SessionShell.Reset*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_Reset" data-uid="Hi.MachiningProcs.SessionShell.Reset">
Reset()
</h3>
<div class="markdown level1 summary"><p>Reset Player</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce(DocContentHtml = &quot;Reset Player&quot;)]
public void Reset()</code></pre>
</div>
<a id="Hi_MachiningProcs_SessionShell_ResetRuntime_" data-uid="Hi.MachiningProcs.SessionShell.ResetRuntime*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_ResetRuntime" data-uid="Hi.MachiningProcs.SessionShell.ResetRuntime">
ResetRuntime()
</h3>
<div class="markdown level1 summary"><p>Clears internal buffers.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce]
public void ResetRuntime()</code></pre>
</div>
<a id="Hi_MachiningProcs_SessionShell_RunBrandNcFile_" data-uid="Hi.MachiningProcs.SessionShell.RunBrandNcFile*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_RunBrandNcFile_System_String_" data-uid="Hi.MachiningProcs.SessionShell.RunBrandNcFile(System.String)">
RunBrandNcFile(string)
</h3>
<div class="markdown level1 summary"><p>Runs a famous-brand NC code file with the specified relative path
(no kind dispatch — always the brand runner).
Not for end user with no programing skill.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce(&quot;RunBrandNcFile($1\&quot;ncFile\&quot;);&quot;)]
public IEnumerable&lt;Action&gt; RunBrandNcFile(string relNcFilePath)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>relNcFilePath</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>Relative path to the NC file</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.ienumerable-1">IEnumerable</a>&lt;<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.action">Action</a>&gt;</dt>
<dd><p>Enumerable sequence of actions to be executed</p>
</dd>
</dl>
<a id="Hi_MachiningProcs_SessionShell_RunNc_" data-uid="Hi.MachiningProcs.SessionShell.RunNc*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_RunNc_System_String_System_String_" data-uid="Hi.MachiningProcs.SessionShell.RunNc(System.String,System.String)">
RunNc(string, string)
</h3>
<div class="markdown level1 summary"><p>Runs NC code directly from a string.
Not for end user with no programing skill.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce(Snippet = &quot;RunNc($1\&quot;ncCommand\&quot;,$2\&quot;\&quot;(Direct Command)\&quot;\&quot;);&quot;, DocContentHtml = &quot;Run NC. second parameter is the file name alternative shows in the log.&quot;)]
public IEnumerable&lt;Action&gt; RunNc(string ncText, string fileNameAlternative = &quot;--&quot;)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>ncText</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>NC code as a string</p>
</dd>
<dt><code>fileNameAlternative</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>Alternative name to display in logs</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.ienumerable-1">IEnumerable</a>&lt;<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.action">Action</a>&gt;</dt>
<dd><p>Enumerable sequence of actions to be executed</p>
</dd>
</dl>
<a id="Hi_MachiningProcs_SessionShell_RunNcFile_" data-uid="Hi.MachiningProcs.SessionShell.RunNcFile*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_RunNcFile_System_String_Hi_MachiningProcs_NcKind_" data-uid="Hi.MachiningProcs.SessionShell.RunNcFile(System.String,Hi.MachiningProcs.NcKind)">
RunNcFile(string, NcKind)
</h3>
<div class="markdown level1 summary"><p>Runs an NC program file with the specified relative path, the runner
picked by <code class="paramref">kind</code> (<code>Auto</code> = by file extension:
<code>.cl</code>/<code>.cls</code>/<code>.clsf</code> run as CL, <code>.csv</code> as CSV,
anything else as brand NC — so existing scripts keep their behavior).
Not for end user with no programing skill.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce(&quot;RunNcFile($1\&quot;ncFile\&quot;);&quot;)]
public IEnumerable&lt;Action&gt; RunNcFile(string relNcFilePath, NcKind kind = NcKind.Auto)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>relNcFilePath</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>Relative path to the NC program file</p>
</dd>
<dt><code>kind</code> <a class="xref" href="Hi.MachiningProcs.NcKind.html">NcKind</a></dt>
<dd><p>Which runner runs the file; Auto detects by extension.</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.ienumerable-1">IEnumerable</a>&lt;<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.action">Action</a>&gt;</dt>
<dd><p>Enumerable sequence of actions to be executed</p>
</dd>
</dl>
<a id="Hi_MachiningProcs_SessionShell_ScaledFeedPerCycle_" data-uid="Hi.MachiningProcs.SessionShell.ScaledFeedPerCycle*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_ScaledFeedPerCycle_System_Double_" data-uid="Hi.MachiningProcs.SessionShell.ScaledFeedPerCycle(System.Double)">
ScaledFeedPerCycle(double)
</h3>
<div class="markdown level1 summary"><p>Gets a new feed per cycle machining motion resolution instance with the specified scale.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce(&quot;ScaledFeedPerCycle($1scale)&quot;)]
public FeedPerCycleMachiningMotionResolution ScaledFeedPerCycle(double scale)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>scale</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
<dd><p>The scale factor for the resolution.</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="Hi.Numerical.MachiningMotionResolutionUtils.FeedPerCycleMachiningMotionResolution.html">FeedPerCycleMachiningMotionResolution</a></dt>
<dd><p>A new <a class="xref" href="Hi.Numerical.MachiningMotionResolutionUtils.FeedPerCycleMachiningMotionResolution.html">FeedPerCycleMachiningMotionResolution</a> instance with the specified scale.</p>
</dd>
</dl>
<a id="Hi_MachiningProcs_SessionShell_ScanMeshedGeomInfDefect_" data-uid="Hi.MachiningProcs.SessionShell.ScanMeshedGeomInfDefect*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_ScanMeshedGeomInfDefect" data-uid="Hi.MachiningProcs.SessionShell.ScanMeshedGeomInfDefect">
ScanMeshedGeomInfDefect()
</h3>
<div class="markdown level1 summary"><p>Scans the meshed geometry for defects. After scanning, the scanned defects will render in the workpiece.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce]
public bool? ScanMeshedGeomInfDefect()</code></pre>
</div>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.boolean">bool</a>?</dt>
<dd><p>True if defects are found, false otherwise, or null if the operation cannot be performed.</p>
</dd>
</dl>
<a id="Hi_MachiningProcs_SessionShell_ScanRuntimeGeomInfDefect_" data-uid="Hi.MachiningProcs.SessionShell.ScanRuntimeGeomInfDefect*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_ScanRuntimeGeomInfDefect" data-uid="Hi.MachiningProcs.SessionShell.ScanRuntimeGeomInfDefect">
ScanRuntimeGeomInfDefect()
</h3>
<div class="markdown level1 summary"><p>Legacy script alias of <a class="xref" href="Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_ScanMeshedGeomInfDefect">ScanMeshedGeomInfDefect()</a>; kept so old player scripts keep working.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[Obsolete(&quot;Legacy alias; use ScanMeshedGeomInfDefect instead.&quot;)]
public bool? ScanRuntimeGeomInfDefect()</code></pre>
</div>
<h4 class="section">Returns</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_MachiningProcs_SessionShell_SetAllSnapshotSyntaxEnabled_" data-uid="Hi.MachiningProcs.SessionShell.SetAllSnapshotSyntaxEnabled*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_SetAllSnapshotSyntaxEnabled_System_Boolean_" data-uid="Hi.MachiningProcs.SessionShell.SetAllSnapshotSyntaxEnabled(System.Boolean)">
SetAllSnapshotSyntaxEnabled(bool)
</h3>
<div class="markdown level1 summary"><p>Sets <code>IsEnabled</code> on every <code>SnapshotSyntax</code> reachable from the
active <a class="xref" href="Hi.NcParsers.SoftNcRunner.html">SoftNcRunner</a>'s <code>NcSyntaxList</code> (top-level slots
and inside <code>BundleSyntax</code>). No-op when <a class="xref" href="Hi.NcParsers.SoftNcRunner.html">SoftNcRunner</a>
is not the active runner.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce(DocContentHtml = &quot;Enable or disable every SnapshotSyntax in the active SoftNcRunner pipeline at once.&quot;)]
public void SetAllSnapshotSyntaxEnabled(bool isEnabled)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>isEnabled</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.boolean">bool</a></dt>
<dd></dd>
</dl>
<a id="Hi_MachiningProcs_SessionShell_SetNcResolutionFeedPerCycle_" data-uid="Hi.MachiningProcs.SessionShell.SetNcResolutionFeedPerCycle*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_SetNcResolutionFeedPerCycle" data-uid="Hi.MachiningProcs.SessionShell.SetNcResolutionFeedPerCycle">
SetNcResolutionFeedPerCycle()
</h3>
<div class="markdown level1 summary"><p>Sets NC resolution to feed per cycle mode.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public void SetNcResolutionFeedPerCycle()</code></pre>
</div>
<a id="Hi_MachiningProcs_SessionShell_SetNcResolutionFeedPerTooth_" data-uid="Hi.MachiningProcs.SessionShell.SetNcResolutionFeedPerTooth*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_SetNcResolutionFeedPerTooth" data-uid="Hi.MachiningProcs.SessionShell.SetNcResolutionFeedPerTooth">
SetNcResolutionFeedPerTooth()
</h3>
<div class="markdown level1 summary"><p>Sets NC resolution to feed per tooth mode.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public void SetNcResolutionFeedPerTooth()</code></pre>
</div>
<a id="Hi_MachiningProcs_SessionShell_SetNcResolutionFixed_" data-uid="Hi.MachiningProcs.SessionShell.SetNcResolutionFixed*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_SetNcResolutionFixed_System_Double_System_Double_" data-uid="Hi.MachiningProcs.SessionShell.SetNcResolutionFixed(System.Double,System.Double)">
SetNcResolutionFixed(double, double)
</h3>
<div class="markdown level1 summary"><p>Sets NC resolution to fixed mode with specified resolution values.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public void SetNcResolutionFixed(double linearResolution_mm, double rotaryResolution_deg)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>linearResolution_mm</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
<dd><p>Linear resolution in millimeters.</p>
</dd>
<dt><code>rotaryResolution_deg</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
<dd><p>Rotary resolution in degrees.</p>
</dd>
</dl>
<a id="Hi_MachiningProcs_SessionShell_SetStickMachiningToolObservationHeight_mm_" data-uid="Hi.MachiningProcs.SessionShell.SetStickMachiningToolObservationHeight_mm*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_SetStickMachiningToolObservationHeight_mm_System_Int32_System_Double_" data-uid="Hi.MachiningProcs.SessionShell.SetStickMachiningToolObservationHeight_mm(System.Int32,System.Double)">
SetStickMachiningToolObservationHeight_mm(int, double)
</h3>
<div class="markdown level1 summary"><p>Sets the observation height in millimeters for the specified stick machining tool.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce(&quot;SetStickMachiningToolObservationHeight_mm($1toolId,$2height_mm)&quot;)]
public void SetStickMachiningToolObservationHeight_mm(int toolId, double height)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>toolId</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int32">int</a></dt>
<dd><p>The ID of the tool</p>
</dd>
<dt><code>height</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
<dd><p>The observation height in millimeters to set</p>
</dd>
</dl>
<a id="Hi_MachiningProcs_SessionShell_SetUniformFlutingShiftAngle_deg_" data-uid="Hi.MachiningProcs.SessionShell.SetUniformFlutingShiftAngle_deg*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_SetUniformFlutingShiftAngle_deg_System_Int32_System_Double_" data-uid="Hi.MachiningProcs.SessionShell.SetUniformFlutingShiftAngle_deg(System.Int32,System.Double)">
SetUniformFlutingShiftAngle_deg(int, double)
</h3>
<div class="markdown level1 summary"><p>Sets the shift angle in degrees for the uniform fluting of the specified tool,
that is, for a cutter whose flutes all share one baseline flute contour.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce(&quot;SetUniformFlutingShiftAngle_deg($1toolId,$2angle_deg)&quot;)]
public void SetUniformFlutingShiftAngle_deg(int toolId, double angle_deg)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>toolId</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int32">int</a></dt>
<dd><p>The ID of the tool</p>
</dd>
<dt><code>angle_deg</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
<dd><p>The shift angle in degrees to set</p>
</dd>
</dl>
<a id="Hi_MachiningProcs_SessionShell_ShiftDistance_mm_" data-uid="Hi.MachiningProcs.SessionShell.ShiftDistance_mm*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_ShiftDistance_mm_System_Double_" data-uid="Hi.MachiningProcs.SessionShell.ShiftDistance_mm(System.Double)">
ShiftDistance_mm(double)
</h3>
<div class="markdown level1 summary"><p>Creates a distance shift object representing the specified distance in millimeters.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public DistanceShift ShiftDistance_mm(double distanceShift_mm)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>distanceShift_mm</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
<dd><p>Distance shift in millimeters</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="Hi.Numerical.StepSelectionUtils.DistanceShift.html">DistanceShift</a></dt>
<dd><p>Distance shift object</p>
</dd>
</dl>
<a id="Hi_MachiningProcs_SessionShell_ShiftTime_s_" data-uid="Hi.MachiningProcs.SessionShell.ShiftTime_s*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_ShiftTime_s_System_Double_" data-uid="Hi.MachiningProcs.SessionShell.ShiftTime_s(System.Double)">
ShiftTime_s(double)
</h3>
<div class="markdown level1 summary"><p>Creates a time shift object representing the specified time in seconds.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public TimeShift ShiftTime_s(double seconds)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>seconds</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
<dd><p>Time in seconds</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="Hi.Numerical.StepSelectionUtils.TimeShift.html">TimeShift</a></dt>
<dd><p>Time shift object</p>
</dd>
</dl>
<a id="Hi_MachiningProcs_SessionShell_TrainMillingPara_" data-uid="Hi.MachiningProcs.SessionShell.TrainMillingPara*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_TrainMillingPara_Hi_MillingForces_Fittings_SampleFlag_System_String_System_Double_Hi_MillingForces_Fittings_ICuttingPara_" data-uid="Hi.MachiningProcs.SessionShell.TrainMillingPara(Hi.MillingForces.Fittings.SampleFlag,System.String,System.Double,Hi.MillingForces.Fittings.ICuttingPara)">
TrainMillingPara(SampleFlag, string, double, ICuttingPara)
</h3>
<div class="markdown level1 summary"><p>Trains milling parameters using the specified sample flag.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce(&quot;TrainMillingPara(Fx|Fy|Fz, $1dstFile)&quot;)]
public void TrainMillingPara(SampleFlag sampleFlag, string dstRelFile, double outlierRatio = 0.1, ICuttingPara paraTemplate = 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>Sample flag indicating which components to train</p>
</dd>
<dt><code>dstRelFile</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>Destination relative file path</p>
</dd>
<dt><code>outlierRatio</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
<dd><p>Outlier ratio for data filtering</p>
</dd>
<dt><code>paraTemplate</code> <a class="xref" href="Hi.MillingForces.Fittings.ICuttingPara.html">ICuttingPara</a></dt>
<dd><p>Optional parameter template for cutting operations.</p>
</dd>
</dl>
<a id="Hi_MachiningProcs_SessionShell_WarningMessage_" data-uid="Hi.MachiningProcs.SessionShell.WarningMessage*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_WarningMessage_System_String_" data-uid="Hi.MachiningProcs.SessionShell.WarningMessage(System.String)">
WarningMessage(string)
</h3>
<div class="markdown level1 summary"><p>Displays a warning message in the message host.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce(&quot;WarningMessage($1message)&quot;)]
public void WarningMessage(string message)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>message</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>The warning message to display</p>
</dd>
</dl>
<a id="Hi_MachiningProcs_SessionShell_WriteMeshedGeom_" data-uid="Hi.MachiningProcs.SessionShell.WriteMeshedGeom*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_WriteMeshedGeom_System_String_" data-uid="Hi.MachiningProcs.SessionShell.WriteMeshedGeom(System.String)">
WriteMeshedGeom(string)
</h3>
<div class="markdown level1 summary"><p>Writes the current meshed geometry to a file.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce(&quot;WriteMeshedGeom($1\&quot;dstFile\&quot;)&quot;)]
public void WriteMeshedGeom(string relFile)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>relFile</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>Relative path to the output file</p>
</dd>
</dl>
<a id="Hi_MachiningProcs_SessionShell_WriteRuntimeGeom_" data-uid="Hi.MachiningProcs.SessionShell.WriteRuntimeGeom*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_WriteRuntimeGeom_System_String_" data-uid="Hi.MachiningProcs.SessionShell.WriteRuntimeGeom(System.String)">
WriteRuntimeGeom(string)
</h3>
<div class="markdown level1 summary"><p>Legacy script alias of <a class="xref" href="Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_WriteMeshedGeom_System_String_">WriteMeshedGeom(string)</a>; kept so old player scripts keep working.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[Obsolete(&quot;Legacy alias; use WriteMeshedGeom instead.&quot;)]
public void WriteRuntimeGeom(string relFile)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>relFile</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd></dd>
</dl>
<a id="Hi_MachiningProcs_SessionShell_WriteShotFiles_" data-uid="Hi.MachiningProcs.SessionShell.WriteShotFiles*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_WriteShotFiles_System_Double_System_String_" data-uid="Hi.MachiningProcs.SessionShell.WriteShotFiles(System.Double,System.String)">
WriteShotFiles(double, string)
</h3>
<div class="markdown level1 summary"><p>Writes time-series data to shot files with the specified resolution period (alternative parameter order).</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public void WriteShotFiles(double resolutionPeroid_ms, string relFileTemplate)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>resolutionPeroid_ms</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
<dd><p>Resolution period in milliseconds</p>
</dd>
<dt><code>relFileTemplate</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>Template for output file path, can include [NcName] placeholder</p>
</dd>
</dl>
<a id="Hi_MachiningProcs_SessionShell_WriteShotFiles_" data-uid="Hi.MachiningProcs.SessionShell.WriteShotFiles*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_WriteShotFiles_System_String_System_Double_" data-uid="Hi.MachiningProcs.SessionShell.WriteShotFiles(System.String,System.Double)">
WriteShotFiles(string, double)
</h3>
<div class="markdown level1 summary"><p>Writes time-series (shot) data to files at the given sampling period.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce(Snippet = &quot;WriteShotFiles(\&quot;Output/[NcName].shot.csv\&quot;,resolutionPeroid_ms)&quot;, DocContentHtml = &quot;Write time series data by resolutionPeroid_ms&quot;)]
public void WriteShotFiles(string relFileTemplate = &quot;Output/[NcName].shot.csv&quot;, double resolutionPeroid_ms = 1)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>relFileTemplate</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>Template for output file path, can include [NcName] placeholder</p>
</dd>
<dt><code>resolutionPeroid_ms</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
<dd><p>Sampling period in milliseconds</p>
</dd>
</dl>
<h4 class="section" id="Hi_MachiningProcs_SessionShell_WriteShotFiles_System_String_System_Double__remarks">Remarks</h4>
<div class="markdown level1 remarks"><p>Each row is interpolated from the per-division force waveform, so the
information carried per spindle revolution is
<code>min(MillingCycleDivisionNum, 60000 / (rpm * resolutionPeroid_ms))</code>.
When the written file is fed back into
<a class="xref" href="Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_TrainMillingPara_Hi_MillingForces_Fittings_SampleFlag_System_String_System_Double_Hi_MillingForces_Fittings_ICuttingPara_">TrainMillingPara(SampleFlag, string, double, ICuttingPara)</a>,
this period — not <a class="xref" href="Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_MillingCycleDivisionNum">MillingCycleDivisionNum</a> and not the
machining resolution — sets the accuracy ceiling: sampling coarser than the
division period throws away waveform detail that a finer angular grid
cannot recover. Choose it at or below
<code>60000 / (rpm * MillingCycleDivisionNum)</code> ms, and when the result is
compared against a physical measurement, match the real DAQ rate so both
sides carry the same information density. Fine periods produce large
files (a 6-cut program: 13 MB at 1 ms, 128 MB at 0.1 ms).</p>
</div>
<a id="Hi_MachiningProcs_SessionShell_WriteStepFiles_" data-uid="Hi.MachiningProcs.SessionShell.WriteStepFiles*"></a>
<h3 id="Hi_MachiningProcs_SessionShell_WriteStepFiles_System_String_" data-uid="Hi.MachiningProcs.SessionShell.WriteStepFiles(System.String)">
WriteStepFiles(string)
</h3>
<div class="markdown level1 summary"><p>Writes step-series data to files with the specified file template.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce(Snippet = &quot;WriteStepFiles(\&quot;Output/[NcName].step.csv\&quot;)&quot;, DocContentHtml = &quot;Write step series data.&quot;)]
public void WriteStepFiles(string relFileTemplate = &quot;Output/[NcName].step.csv&quot;)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>relFileTemplate</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>Template for output file path, can include [NcName] placeholder</p>
</dd>
</dl>
<h2 class="section" id="events">Events
</h2>
<h3 id="Hi_MachiningProcs_SessionShell_MachiningStepBuilt" data-uid="Hi.MachiningProcs.SessionShell.MachiningStepBuilt">
MachiningStepBuilt
</h3>
<div class="markdown level1 summary"><p>Session-scoped event triggered when a machining step is built.
Lifetime is bound to <a class="xref" href="Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_MachiningSession">MachiningSession</a>: created by <a class="xref" href="Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_BeginSession">BeginSession()</a>, released by <a class="xref" href="Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_EndSession">EndSession()</a>.
For app-lifetime event, use <a class="xref" href="Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_MachiningStepBuilt">MachiningStepBuilt</a> instead.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[Obsolete(&quot;Use SessionStepBuilt instead.&quot;)]
public event MachiningActRunner.MachiningStepBuiltDelegate MachiningStepBuilt</code></pre>
</div>
<h4 class="section">Event Type</h4>
<dl class="parameters">
<dt><a class="xref" href="Hi.MachiningProcs.MachiningActRunner.html">MachiningActRunner</a>.<a class="xref" href="Hi.MachiningProcs.MachiningActRunner.MachiningStepBuiltDelegate.html">MachiningStepBuiltDelegate</a></dt>
<dd></dd>
</dl>
<h3 id="Hi_MachiningProcs_SessionShell_MachiningStepSelected" data-uid="Hi.MachiningProcs.SessionShell.MachiningStepSelected">
MachiningStepSelected
</h3>
<div class="markdown level1 summary"><p>Session-scoped event triggered when a machining step is selected.
Lifetime is bound to <a class="xref" href="Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_MachiningSession">MachiningSession</a>: created by <a class="xref" href="Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_BeginSession">BeginSession()</a>, released by <a class="xref" href="Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_EndSession">EndSession()</a>.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[Obsolete(&quot;Use SessionStepSelected instead.&quot;)]
public event Action&lt;MachiningStep&gt; MachiningStepSelected</code></pre>
</div>
<h4 class="section">Event Type</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.action-1">Action</a>&lt;<a class="xref" href="Hi.MachiningSteps.MachiningStep.html">MachiningStep</a>&gt;</dt>
<dd></dd>
</dl>
<h3 id="Hi_MachiningProcs_SessionShell_SessionSourcedActEntry" data-uid="Hi.MachiningProcs.SessionShell.SessionSourcedActEntry">
SessionSourcedActEntry
</h3>
<div class="markdown level1 summary"><p>Session-scoped event triggered for each <a class="xref" href="Hi.Numerical.SourcedActEntry.html">SourcedActEntry</a> produced during NC/CSV execution.
Lifetime is bound to <a class="xref" href="Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_MachiningSession">MachiningSession</a>: created by <a class="xref" href="Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_BeginSession">BeginSession()</a>, released by <a class="xref" href="Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_EndSession">EndSession()</a>.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce(Snippet = &quot;SessionSourcedActEntry+=($1entry)=&gt;{$2Command};&quot;, DocContentHtml = &quot;Session-scoped event triggered for each SourcedActEntry. entry.SentenceSource is the source sentence; entry.Act is the associated act (may be null).&quot;)]
public event Action&lt;SourcedActEntry&gt; SessionSourcedActEntry</code></pre>
</div>
<h4 class="section">Event Type</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.action-1">Action</a>&lt;<a class="xref" href="Hi.Numerical.SourcedActEntry.html">SourcedActEntry</a>&gt;</dt>
<dd></dd>
</dl>
<h3 id="Hi_MachiningProcs_SessionShell_SessionStepBuilt" data-uid="Hi.MachiningProcs.SessionShell.SessionStepBuilt">
SessionStepBuilt
</h3>
<div class="markdown level1 summary"><p>Session-scoped event triggered when a machining step is built.
Lifetime is bound to <a class="xref" href="Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_MachiningSession">MachiningSession</a>: created by <a class="xref" href="Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_BeginSession">BeginSession()</a>, released by <a class="xref" href="Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_EndSession">EndSession()</a>.
For app-lifetime event, use <a class="xref" href="Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_MachiningStepBuilt">MachiningStepBuilt</a> instead.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce(Snippet = &quot;SessionStepBuilt+=($1preStep,$2curStep)=&gt;{$3Command};&quot;, DocContentHtml = &quot;Session-scoped step built event. preStep is the Previous Milling Step; curStep is the Current Milling Step. preStep is null if no previous step existed.&quot;)]
public event MachiningActRunner.MachiningStepBuiltDelegate SessionStepBuilt</code></pre>
</div>
<h4 class="section">Event Type</h4>
<dl class="parameters">
<dt><a class="xref" href="Hi.MachiningProcs.MachiningActRunner.html">MachiningActRunner</a>.<a class="xref" href="Hi.MachiningProcs.MachiningActRunner.MachiningStepBuiltDelegate.html">MachiningStepBuiltDelegate</a></dt>
<dd></dd>
</dl>
<h3 id="Hi_MachiningProcs_SessionShell_SessionStepSelected" data-uid="Hi.MachiningProcs.SessionShell.SessionStepSelected">
SessionStepSelected
</h3>
<div class="markdown level1 summary"><p>Session-scoped event triggered when a machining step is selected.
Lifetime is bound to <a class="xref" href="Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_MachiningSession">MachiningSession</a>: created by <a class="xref" href="Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_BeginSession">BeginSession()</a>, released by <a class="xref" href="Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_EndSession">EndSession()</a>.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce(Snippet = &quot;SessionStepSelected+=($1millingStep)=&gt;{$2Command};&quot;)]
public event Action&lt;MachiningStep&gt; SessionStepSelected</code></pre>
</div>
<h4 class="section">Event Type</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.action-1">Action</a>&lt;<a class="xref" href="Hi.MachiningSteps.MachiningStep.html">MachiningStep</a>&gt;</dt>
<dd></dd>
</dl>
<h3 id="Hi_MachiningProcs_SessionShell_SessionSyntaxPieceRan" data-uid="Hi.MachiningProcs.SessionShell.SessionSyntaxPieceRan">
SessionSyntaxPieceRan
</h3>
<div class="markdown level1 summary"><p>Session-scoped event triggered when a syntax piece has been executed.
Lifetime is bound to <a class="xref" href="Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_MachiningSession">MachiningSession</a>: created by <a class="xref" href="Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_BeginSession">BeginSession()</a>, released by <a class="xref" href="Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_EndSession">EndSession()</a>.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce(Snippet = &quot;SessionSyntaxPieceRan+=($1syntaxPiece)=&gt;{$2Command};&quot;, DocContentHtml = &quot;Session-scoped event triggered after each SyntaxPiece is executed. syntaxPiece may be null if the source command is not a SyntaxPiece.&quot;)]
public event Action&lt;SyntaxPiece&gt; SessionSyntaxPieceRan</code></pre>
</div>
<h4 class="section">Event Type</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.action-1">Action</a>&lt;<a class="xref" href="Hi.NcParsers.Syntaxs.SyntaxPiece.html">SyntaxPiece</a>&gt;</dt>
<dd></dd>
</dl>
<h3 id="Hi_MachiningProcs_SessionShell_SyntaxPieceRan" data-uid="Hi.MachiningProcs.SessionShell.SyntaxPieceRan">
SyntaxPieceRan
</h3>
<div class="markdown level1 summary"><p>Session-scoped event triggered when a syntax piece has been executed.
Lifetime is bound to <a class="xref" href="Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_MachiningSession">MachiningSession</a>: created by <a class="xref" href="Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_BeginSession">BeginSession()</a>, released by <a class="xref" href="Hi.MachiningProcs.SessionShell.html#Hi_MachiningProcs_SessionShell_EndSession">EndSession()</a>.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[Obsolete(&quot;Use SessionSyntaxPieceRan instead.&quot;)]
public event Action&lt;SyntaxPiece&gt; SyntaxPieceRan</code></pre>
</div>
<h4 class="section">Event Type</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.action-1">Action</a>&lt;<a class="xref" href="Hi.NcParsers.Syntaxs.SyntaxPiece.html">SyntaxPiece</a>&gt;</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>