Archived
462 lines
29 KiB
HTML
462 lines
29 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<title>Namespace Hi.MachiningProcs | HiAPI-C# 2025 </title>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<meta name="title" content="Namespace Hi.MachiningProcs | HiAPI-C# 2025 ">
|
|
|
|
|
|
<link rel="icon" href="../img/HiAPI.favicon.ico">
|
|
<link rel="stylesheet" href="../public/docfx.min.css">
|
|
<link rel="stylesheet" href="../public/main.css">
|
|
<meta name="docfx:navrel" content="../toc.html">
|
|
<meta name="docfx:tocrel" content="toc.html">
|
|
|
|
<meta name="docfx:rel" content="../">
|
|
|
|
|
|
|
|
<meta name="loc:inThisArticle" content="In this article">
|
|
<meta name="loc:searchResultsCount" content="{count} results for "{query}"">
|
|
<meta name="loc:searchNoResults" content="No results for "{query}"">
|
|
<meta name="loc:tocFilter" content="Filter by title">
|
|
<meta name="loc:nextArticle" content="Next">
|
|
<meta name="loc:prevArticle" content="Previous">
|
|
<meta name="loc:themeLight" content="Light">
|
|
<meta name="loc:themeDark" content="Dark">
|
|
<meta name="loc:themeAuto" content="Auto">
|
|
<meta name="loc:changeTheme" content="Change theme">
|
|
<meta name="loc:copy" content="Copy">
|
|
<meta name="loc:downloadPdf" content="Download PDF">
|
|
|
|
<script type="module" src="./../public/docfx.min.js"></script>
|
|
|
|
<script>
|
|
const theme = localStorage.getItem('theme') || 'auto'
|
|
document.documentElement.setAttribute('data-bs-theme', theme === 'auto' ? (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light') : theme)
|
|
</script>
|
|
|
|
</head>
|
|
|
|
<body class="tex2jax_ignore" data-layout="" data-yaml-mime="ManagedReference">
|
|
<header class="bg-body border-bottom">
|
|
<nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
|
|
<div class="container-xxl flex-nowrap">
|
|
<a class="navbar-brand" href="../index.html">
|
|
<img id="logo" class="svg" src="../img/HiAPI.logo.png" alt="">
|
|
|
|
</a>
|
|
<button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">
|
|
<i class="bi bi-three-dots"></i>
|
|
</button>
|
|
<div class="collapse navbar-collapse" id="navpanel">
|
|
<div id="navbar">
|
|
<form class="search" role="search" id="search">
|
|
<i class="bi bi-search"></i>
|
|
<input class="form-control" id="search-query" type="search" disabled placeholder="Search" autocomplete="off" aria-label="Search">
|
|
</form>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</nav>
|
|
</header>
|
|
|
|
<main class="container-xxl">
|
|
<div class="toc-offcanvas">
|
|
<div class="offcanvas-md offcanvas-start" tabindex="-1" id="tocOffcanvas" aria-labelledby="tocOffcanvasLabel">
|
|
<div class="offcanvas-header">
|
|
<h5 class="offcanvas-title" id="tocOffcanvasLabel">Table of Contents</h5>
|
|
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" data-bs-target="#tocOffcanvas" aria-label="Close"></button>
|
|
</div>
|
|
<div class="offcanvas-body">
|
|
<nav class="toc" id="toc"></nav>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="content">
|
|
<div class="actionbar">
|
|
<button class="btn btn-lg border-0 d-md-none" type="button" data-bs-toggle="offcanvas" data-bs-target="#tocOffcanvas" aria-controls="tocOffcanvas" aria-expanded="false" aria-label="Show table of contents">
|
|
<i class="bi bi-list"></i>
|
|
</button>
|
|
|
|
<nav id="breadcrumb"></nav>
|
|
</div>
|
|
|
|
<article data-uid="Hi.MachiningProcs">
|
|
|
|
<h1 id="Hi_MachiningProcs" data-uid="Hi.MachiningProcs" class="text-break">Namespace Hi.MachiningProcs</h1>
|
|
<div class="markdown level0 summary"></div>
|
|
<div class="markdown level0 conceptual"></div>
|
|
<div class="markdown level0 remarks"></div>
|
|
|
|
<h3 id="classes">
|
|
Classes
|
|
</h3>
|
|
<dl class="jumplist">
|
|
<dt><a class="xref" href="Hi.MachiningProcs.AllowNoActiveSessionAttribute.html">AllowNoActiveSessionAttribute</a></dt>
|
|
<dd><p>Marks a session-scoped controller action as callable without an active session, exempting it
|
|
from <a class="xref" href="Hi.MachiningProcs.RequireActiveSessionAttribute.html">RequireActiveSessionAttribute</a>. Use on the session lifecycle entry points
|
|
(BeginSession / EndSession), which by definition run when no session exists yet.</p>
|
|
</dd>
|
|
</dl>
|
|
<dl class="jumplist">
|
|
<dt><a class="xref" href="Hi.MachiningProcs.AllowNoLoadedProjectAttribute.html">AllowNoLoadedProjectAttribute</a></dt>
|
|
<dd><p>Marks a project-level controller action as callable without a loaded project, exempting it
|
|
from <a class="xref" href="Hi.MachiningProcs.RequireLoadedProjectAttribute.html">RequireLoadedProjectAttribute</a>. Use on the endpoints that create or load a
|
|
project (which by definition run when no project is open yet).</p>
|
|
</dd>
|
|
</dl>
|
|
<dl class="jumplist">
|
|
<dt><a class="xref" href="Hi.MachiningProcs.ApiActionResult.html">ApiActionResult</a></dt>
|
|
<dd><p>The shared outcome envelope for a web-API action: whether it succeeded and the messages
|
|
it reported, in order. Returned by the project-level surface
|
|
(<a class="xref" href="Hi.MachiningProcs.LocalProjectServiceController.html">LocalProjectServiceController</a>) and, on the no-active-session boundary, by
|
|
the session-scoped surface (<a class="xref" href="Hi.MachiningProcs.SessionShellController.html">SessionShellController</a> via
|
|
<a class="xref" href="Hi.MachiningProcs.RequireActiveSessionAttribute.html">RequireActiveSessionAttribute</a>). A REST / AI caller therefore reads the
|
|
progress / success / error notifications <i>inline in the HTTP response</i> instead of
|
|
only out-of-band via the SignalR sinks, and can branch on <a class="xref" href="Hi.MachiningProcs.ApiActionResult.html#Hi_MachiningProcs_ApiActionResult_Success">Success</a> without
|
|
parsing severities.</p>
|
|
</dd>
|
|
</dl>
|
|
<dl class="jumplist">
|
|
<dt><a class="xref" href="Hi.MachiningProcs.LocalProjectService.html">LocalProjectService</a></dt>
|
|
<dd><p>Root(Local) project service.
|
|
Apply absolute file path.</p>
|
|
</dd>
|
|
</dl>
|
|
<dl class="jumplist">
|
|
<dt><a class="xref" href="Hi.MachiningProcs.LocalProjectServiceController.html">LocalProjectServiceController</a></dt>
|
|
<dd><p>HTTP controller exposing the <b>project-level</b> (session-independent) operations of
|
|
<span class="xref">Hi.MachiningProcs.LocalProjectServiceController.LocalProjectService</span> — the lean API-user surface, parallel to
|
|
<a class="xref" href="Hi.MachiningProcs.SessionShellController.html">SessionShellController</a> (which mirrors the session-scoped
|
|
<a class="xref" href="Hi.MachiningProcs.SessionShell.html">SessionShell</a>). A controller mirrors exactly one body; project-level
|
|
settings belong here, not bolted onto the session controller.</p>
|
|
</dd>
|
|
</dl>
|
|
<dl class="jumplist">
|
|
<dt><a class="xref" href="Hi.MachiningProcs.MachiningActRunner.html">MachiningActRunner</a></dt>
|
|
<dd><p>Represents a runner for machining actions that manages milling steps, tool paths, and collision detection.</p>
|
|
</dd>
|
|
</dl>
|
|
<dl class="jumplist">
|
|
<dt><a class="xref" href="Hi.MachiningProcs.MachiningActRunnerConfig.html">MachiningActRunnerConfig</a></dt>
|
|
<dd><p>Represents the configuration for a milling act runner.
|
|
Provides settings for physics simulation, evaluation, and temperature control.</p>
|
|
</dd>
|
|
</dl>
|
|
<dl class="jumplist">
|
|
<dt><a class="xref" href="Hi.MachiningProcs.MachiningParallelProc.html">MachiningParallelProc</a></dt>
|
|
<dd><p>Represents a parallel processing system for milling operations that manages various tasks
|
|
such as sweeping, subtraction, force calculation, and physics simulation.</p>
|
|
</dd>
|
|
</dl>
|
|
<dl class="jumplist">
|
|
<dt><a class="xref" href="Hi.MachiningProcs.MachiningParallelProc.StepTaskBundle.html">MachiningParallelProc.StepTaskBundle</a></dt>
|
|
<dd><p>Represents a bundle of tasks related to a milling step.</p>
|
|
</dd>
|
|
</dl>
|
|
<dl class="jumplist">
|
|
<dt><a class="xref" href="Hi.MachiningProcs.MachiningParallelProc.SubstractionResult.html">MachiningParallelProc.SubstractionResult</a></dt>
|
|
<dd><p>Represents the result of a subtraction operation.</p>
|
|
</dd>
|
|
</dl>
|
|
<dl class="jumplist">
|
|
<dt><a class="xref" href="Hi.MachiningProcs.MachiningProject.html">MachiningProject</a></dt>
|
|
<dd><p>Represents a milling project that manages the execution, simulation, and analysis of NC programs.</p>
|
|
</dd>
|
|
</dl>
|
|
<dl class="jumplist">
|
|
<dt><a class="xref" href="Hi.MachiningProcs.MachiningSession.html">MachiningSession</a></dt>
|
|
<dd><p>Represents a machining session that manages the execution and optimization of machining operations.
|
|
Provides functionality for controlling the machining process, handling optimization options,
|
|
and managing session state. Implements <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.idisposable">IDisposable</a> to clean up
|
|
<a class="xref" href="Hi.MachiningProcs.MachiningSession.html#Hi_MachiningProcs_MachiningSession_SessionWriters">SessionWriters</a> on session end.</p>
|
|
</dd>
|
|
</dl>
|
|
<dl class="jumplist">
|
|
<dt><a class="xref" href="Hi.MachiningProcs.MessageDto.html">MessageDto</a></dt>
|
|
<dd><p>One reported <a class="xref" href="Hi.Common.Messages.IMessage.html">IMessage</a>, flattened for JSON transport.</p>
|
|
</dd>
|
|
</dl>
|
|
<dl class="jumplist">
|
|
<dt><a class="xref" href="Hi.MachiningProcs.MillingUtil.html">MillingUtil</a></dt>
|
|
<dd><p>Provides utility methods for milling calculations and operations.</p>
|
|
</dd>
|
|
</dl>
|
|
<dl class="jumplist">
|
|
<dt><a class="xref" href="Hi.MachiningProcs.NcKindUtil.html">NcKindUtil</a></dt>
|
|
<dd><p><a class="xref" href="Hi.MachiningProcs.NcKind.html">NcKind</a> helpers.</p>
|
|
</dd>
|
|
</dl>
|
|
<dl class="jumplist">
|
|
<dt><a class="xref" href="Hi.MachiningProcs.NcRunnerSessionState.html">NcRunnerSessionState</a></dt>
|
|
<dd><p>NC pipeline state held on a <a class="xref" href="Hi.MachiningProcs.MachiningSession.html">MachiningSession</a> and shared across multiple
|
|
<a class="xref" href="Hi.Numerical.INcRunner.html#Hi_Numerical_INcRunner_RunNcLines_System_String_System_Collections_Generic_IEnumerable_System_String__Hi_MachiningProcs_MachiningSession_Hi_MachiningProcs_StepDiagnosticProgress_Hi_NcParsers_NcDiagnosticProgress_System_Threading_CancellationToken_">RunNcLines(string, IEnumerable<string>, MachiningSession, StepDiagnosticProgress, NcDiagnosticProgress, CancellationToken)</a> calls within that session. The per-layer
|
|
<a class="xref" href="Hi.MachiningProcs.NcRunnerSessionState.html#Hi_MachiningProcs_NcRunnerSessionState_SyntaxPieceLayers">SyntaxPieceLayers</a> are extended via <a class="xref" href="Hi.Common.Collections.LazyLinkedList-1.html#Hi_Common_Collections_LazyLinkedList_1_AppendSource_System_Collections_Generic_IEnumerable__0__">AppendSource(IEnumerable<T>)</a>
|
|
for each subsequent file so that <code>Previous</code>/<code>Next</code> connectivity (and thus
|
|
<code>ModalCarrySyntax</code> deep-clone) crosses file boundaries.</p>
|
|
</dd>
|
|
</dl>
|
|
<dl class="jumplist">
|
|
<dt><a class="xref" href="Hi.MachiningProcs.ProjectFileBusyException.html">ProjectFileBusyException</a></dt>
|
|
<dd><p>Thrown when a project-file operation (New / Load / Save / SaveAs / Reload) is
|
|
requested while another one is already in progress. The newcomer is cancelled
|
|
rather than queued; controllers surface this as HTTP 409 Conflict.</p>
|
|
</dd>
|
|
</dl>
|
|
<dl class="jumplist">
|
|
<dt><a class="xref" href="Hi.MachiningProcs.ProxyProjectService.html">ProxyProjectService</a></dt>
|
|
<dd><p>Delegate (User-based) Project Service.
|
|
Apply relative file path from <a class="xref" href="Hi.MachiningProcs.ProxyProjectService.html#Hi_MachiningProcs_ProxyProjectService_AdminDirectory">AdminDirectory</a>.</p>
|
|
</dd>
|
|
</dl>
|
|
<dl class="jumplist">
|
|
<dt><a class="xref" href="Hi.MachiningProcs.RapidCutMonitor.html">RapidCutMonitor</a></dt>
|
|
<dd><p>Reports a rapid traverse that removed stock: the steps of one NC line
|
|
that were commanded as rapid traverse (G00,
|
|
<a class="xref" href="Hi.MachiningSteps.MachineMotionStep.html#Hi_MachiningSteps_MachineMotionStep_IsRapid">IsRapid</a>) and touched the workpiece fold
|
|
into one <code>Play-RapidCut–Detected</code> validation warning, anchored on
|
|
the line's first touching step and carrying the line's total removed
|
|
volume and its largest cutting depth. A rapid move through material
|
|
breaks the tool or crashes the machine on a real run, yet with the
|
|
spindle turning the engine treats it as ordinary cutting: the collision
|
|
rule (<a class="xref" href="Hi.Machining.MachiningEquipmentUtils.MachiningEquipment.html#Hi_Machining_MachiningEquipmentUtils_MachiningEquipment_Detect_System_Boolean_">Detect(bool)</a>) pairs flute
|
|
and workpiece only while the spindle is stopped, so such a line used to
|
|
pass with no message at all.</p>
|
|
<p>
|
|
One instance per <a class="xref" href="Hi.MachiningProcs.MachiningActRunner.html">MachiningActRunner</a>. <a class="xref" href="Hi.MachiningProcs.RapidCutMonitor.html#Hi_MachiningProcs_RapidCutMonitor_Observe_Hi_MachiningProcs_RapidCutMonitor_Sample__System_Double_System_Boolean_System_IProgress_Hi_MachiningProcs_StepDiagnostic__">Observe(in Sample, double, bool, IProgress<StepDiagnostic>)</a>
|
|
runs on the sequential post-physics stage of every built step (one
|
|
thread, step order), <a class="xref" href="Hi.MachiningProcs.RapidCutMonitor.html#Hi_MachiningProcs_RapidCutMonitor_Flush_System_Double_System_IProgress_Hi_MachiningProcs_StepDiagnostic__">Flush(double, IProgress<StepDiagnostic>)</a> closes the last line at the end
|
|
of a play and <a class="xref" href="Hi.MachiningProcs.RapidCutMonitor.html#Hi_MachiningProcs_RapidCutMonitor_Reset">Reset()</a> drops a pending line on a session reset;
|
|
both run on the shell thread after
|
|
<a class="xref" href="Hi.MachiningProcs.MachiningActRunner.html#Hi_MachiningProcs_MachiningActRunner_WaitAll">WaitAll()</a>, so no lock is needed.
|
|
</p>
|
|
<p>
|
|
Folding: consecutive rapid steps with the same <a class="xref" href="Hi.MachiningProcs.RapidCutMonitor.Sample.html#Hi_MachiningProcs_RapidCutMonitor_Sample_LineKey">LineKey</a>
|
|
(the NC line number, or the sentence itself where a runner has no line
|
|
numbers) form one report; a feed step, a different line or the end of
|
|
the play closes it. A line re-entered later (a subprogram loop) reports
|
|
again, deliberately. The report is emitted only when the line's total
|
|
removed volume reaches
|
|
<a class="xref" href="Hi.MachiningProcs.MachiningActRunnerConfig.html#Hi_MachiningProcs_MachiningActRunnerConfig_RapidCutVolumeThreshold_mm3">RapidCutVolumeThreshold_mm3</a>
|
|
(default 0: any contact). Steps with the spindle stopped are skipped
|
|
while collision detection is on — that rule owns them and raises
|
|
<code>Collision--Detected</code> — and counted otherwise.
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<dl class="jumplist">
|
|
<dt><a class="xref" href="Hi.MachiningProcs.RequireActiveSessionAttribute.html">RequireActiveSessionAttribute</a></dt>
|
|
<dd><p>Action filter for the <b>session-scoped</b> web-API surface: before a guarded action runs,
|
|
verifies a machining session is active (<a class="xref" href="Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_SessionShell">SessionShell</a> is
|
|
non-null). When none is active it short-circuits with HTTP 409 and an
|
|
<a class="xref" href="Hi.MachiningProcs.ApiActionResult.html#Hi_MachiningProcs_ApiActionResult_NoActiveSession">NoActiveSession()</a> envelope, so a REST / AI caller gets a helpful
|
|
“call BeginSession() first” notice instead of a null-reference 500. Apply at the controller
|
|
level; exempt the session lifecycle entry points (BeginSession / EndSession) with
|
|
<a class="xref" href="Hi.MachiningProcs.AllowNoActiveSessionAttribute.html">AllowNoActiveSessionAttribute</a>.</p>
|
|
</dd>
|
|
</dl>
|
|
<dl class="jumplist">
|
|
<dt><a class="xref" href="Hi.MachiningProcs.RequireLoadedProjectAttribute.html">RequireLoadedProjectAttribute</a></dt>
|
|
<dd><p>Action filter for the <b>project-level</b> web-API surface: before a guarded action runs,
|
|
verifies a project is loaded (<a class="xref" href="Hi.MachiningProcs.LocalProjectService.html#Hi_MachiningProcs_LocalProjectService_MachiningProject">MachiningProject</a> is
|
|
non-null). When none is loaded it short-circuits with HTTP 409 and an
|
|
<a class="xref" href="Hi.MachiningProcs.ApiActionResult.html#Hi_MachiningProcs_ApiActionResult_NoProjectLoaded">NoProjectLoaded()</a> envelope, so a REST / AI caller gets a helpful
|
|
“create or load a project first” notice instead of a null-reference 500 (the project-level
|
|
members — <code>MachiningActRunner.Config</code>, workpiece, runners — are null until a project is
|
|
open). Apply at the controller level; exempt the endpoints that create or load a project
|
|
with <a class="xref" href="Hi.MachiningProcs.AllowNoLoadedProjectAttribute.html">AllowNoLoadedProjectAttribute</a>.</p>
|
|
</dd>
|
|
</dl>
|
|
<dl class="jumplist">
|
|
<dt><a class="xref" href="Hi.MachiningProcs.SessionShell.html">SessionShell</a></dt>
|
|
<dd><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>
|
|
</dd>
|
|
</dl>
|
|
<dl class="jumplist">
|
|
<dt><a class="xref" href="Hi.MachiningProcs.SessionShellController.html">SessionShellController</a></dt>
|
|
<dd><p>HTTP controller exposing <a class="xref" href="Hi.MachiningProcs.SessionShell.html">SessionShell</a> over the web API.
|
|
Each action delegates to the underlying <a class="xref" href="Hi.MachiningProcs.SessionShell.html">SessionShell</a> instance owned by <span class="xref">Hi.MachiningProcs.SessionShellController.LocalProjectService</span>.</p>
|
|
</dd>
|
|
</dl>
|
|
<dl class="jumplist">
|
|
<dt><a class="xref" href="Hi.MachiningProcs.SetupController.html">SetupController</a></dt>
|
|
<dd><p>Controller for setup operations of machining projects.</p>
|
|
</dd>
|
|
</dl>
|
|
<dl class="jumplist">
|
|
<dt><a class="xref" href="Hi.MachiningProcs.ShellProgress.html">ShellProgress</a></dt>
|
|
<dd><p>Append-only, thread-safe sink for <b>session-level routine / lifecycle</b> messages on the
|
|
<a class="xref" href="Hi.Common.Messages.IMessage.html">IMessage</a> channel — one of the partitioned message homes.</p>
|
|
<p>
|
|
This is partitioned by message <b>kind</b>, orthogonal to the other sinks: plain
|
|
<a class="xref" href="Hi.Common.Messages.SimpleMessage.html">SimpleMessage</a> notices that belong to the session as a whole (cache reset, file
|
|
load / save progress, session start/done) live here; messages tied to a particular machining
|
|
step live in <a class="xref" href="Hi.MachiningProcs.StepDiagnosticProgress.html">StepDiagnosticProgress</a>; NC-pipeline diagnostics live in
|
|
<code>NcDiagnosticProgress</code>.
|
|
</p>
|
|
<p>
|
|
Append-only: session-routine messages are emitted sequentially, so report order already is
|
|
execution order — there is no per-step anchor and no stable-index bookkeeping.
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<dl class="jumplist">
|
|
<dt><a class="xref" href="Hi.MachiningProcs.SpindleSpeedCache.html">SpindleSpeedCache</a></dt>
|
|
<dd><p>Represents cached spindle speed information.</p>
|
|
</dd>
|
|
</dl>
|
|
<dl class="jumplist">
|
|
<dt><a class="xref" href="Hi.MachiningProcs.StepDiagnostic.html">StepDiagnostic</a></dt>
|
|
<dd><p>An <a class="xref" href="Hi.Common.Messages.IMessage.html">IMessage</a> produced while constructing a <a class="xref" href="Hi.MachiningSteps.MachiningStep.html">MachiningStep</a>,
|
|
anchored to the step's execution-order <a class="xref" href="Hi.MachiningProcs.StepDiagnostic.html#Hi_MachiningProcs_StepDiagnostic_StepIndex">StepIndex</a> and (when available) its NC-source
|
|
<a class="xref" href="Hi.MachiningProcs.StepDiagnostic.html#Hi_MachiningProcs_StepDiagnostic_SentenceCarrier">SentenceCarrier</a>.</p>
|
|
<p>
|
|
Decorator over an inner <a class="xref" href="Hi.MachiningProcs.StepDiagnostic.html#Hi_MachiningProcs_StepDiagnostic_Message">Message</a> — the five <a class="xref" href="Hi.Common.Messages.IMessage.html">IMessage</a> members delegate
|
|
to it — so a plain <a class="xref" href="Hi.Common.Messages.SimpleMessage.html">SimpleMessage</a> emitted during step processing can be upgraded to a
|
|
step-anchored diagnostic without the producer needing to know the step context.
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<dl class="jumplist">
|
|
<dt><a class="xref" href="Hi.MachiningProcs.StepDiagnosticAnchorUtil.html">StepDiagnosticAnchorUtil</a></dt>
|
|
<dd><p>Bridges a step-anchored <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.iprogress-1">IProgress<T></a> sink (e.g.
|
|
<a class="xref" href="Hi.MachiningProcs.StepDiagnosticProgress.html">StepDiagnosticProgress</a>) back to the generic <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.iprogress-1">IProgress<T></a> surface, so
|
|
out-of-step-pipeline producers can keep using the id-first <a class="xref" href="Hi.Common.Messages.MessageUtil.html">MessageUtil</a> shorthands
|
|
(<code>ValidationError</code>, <code>ConfigurationWarning</code>, …) and still land a
|
|
<a class="xref" href="Hi.MachiningProcs.StepDiagnostic.html">StepDiagnostic</a> on the sink.</p>
|
|
</dd>
|
|
</dl>
|
|
<dl class="jumplist">
|
|
<dt><a class="xref" href="Hi.MachiningProcs.StepDiagnosticProgress.html">StepDiagnosticProgress</a></dt>
|
|
<dd><p>Append-only, thread-safe sink for <b>step-anchored</b> diagnostics on the <a class="xref" href="Hi.Common.Messages.IMessage.html">IMessage</a>
|
|
channel.</p>
|
|
<p>
|
|
This sink stores <b>only <a class="xref" href="Hi.MachiningProcs.StepDiagnostic.html">StepDiagnostic</a></b>: every message is anchored to a motion step.
|
|
Per-step batches arrive via <a class="xref" href="Hi.MachiningProcs.StepScopedProgress.html#Hi_MachiningProcs_StepScopedProgress_FlushTo_System_IProgress_Hi_MachiningProcs_StepDiagnostic__">FlushTo(IProgress<StepDiagnostic>)</a>; out-of-pipeline emits
|
|
(e.g. stroke-limit / tooling diagnostics) anchor themselves with
|
|
<a class="xref" href="Hi.MachiningProcs.StepDiagnosticAnchorUtil.html#Hi_MachiningProcs_StepDiagnosticAnchorUtil_AnchoredToStep_System_IProgress_Hi_MachiningProcs_StepDiagnostic__System_Int32_Hi_NcParsers_ISentenceCarrier_">AnchoredToStep(IProgress<StepDiagnostic>, int, ISentenceCarrier)</a> before reporting. Data that already has
|
|
another owner is <b>not</b> duplicated here — NC diagnostics live in <code>NcDiagnosticProgress</code>,
|
|
plain session-level notices live in <a class="xref" href="Hi.MachiningProcs.ShellProgress.html">ShellProgress</a>, cutter positions live in the
|
|
CL strip.
|
|
</p>
|
|
<p>
|
|
Because every <a class="xref" href="Hi.MachiningProcs.StepDiagnostic.html">StepDiagnostic</a> carries its own <a class="xref" href="Hi.MachiningProcs.StepDiagnostic.html#Hi_MachiningProcs_StepDiagnostic_StepIndex">StepIndex</a>
|
|
anchor, ordering is recovered downstream by sorting on that anchor. Producers therefore only ever
|
|
<a class="xref" href="Hi.MachiningProcs.StepDiagnosticProgress.html#Hi_MachiningProcs_StepDiagnosticProgress_Report_Hi_MachiningProcs_StepDiagnostic_">Report(StepDiagnostic)</a> (append) — even from parallel step-processing tasks — and never insert at a
|
|
computed position.
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<dl class="jumplist">
|
|
<dt><a class="xref" href="Hi.MachiningProcs.StepScopedProgress.html">StepScopedProgress</a></dt>
|
|
<dd><p>A per-step <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.iprogress-1">IProgress<T></a> of <a class="xref" href="Hi.Common.Messages.IMessage.html">IMessage</a> that <b>accumulates</b> the
|
|
messages emitted while one step is built, upgrading any plain message to a
|
|
<a class="xref" href="Hi.MachiningProcs.StepDiagnostic.html">StepDiagnostic</a> anchored to this step's <a class="xref" href="Hi.MachiningProcs.StepScopedProgress.html#Hi_MachiningProcs_StepScopedProgress_StepIndex">StepIndex</a> /
|
|
<a class="xref" href="Hi.MachiningProcs.StepScopedProgress.html#Hi_MachiningProcs_StepScopedProgress_SentenceCarrier">SentenceCarrier</a>. An already step-anchored <a class="xref" href="Hi.MachiningProcs.StepDiagnostic.html">StepDiagnostic</a> is kept
|
|
unchanged. (NC diagnostics are not seen here — they live in their own
|
|
<a class="xref" href="Hi.NcParsers.NcDiagnosticProgress.html">NcDiagnosticProgress</a>, not on this channel.)</p>
|
|
<p>
|
|
It does not forward to a downstream sink as messages arrive; instead it collects them into
|
|
<a class="xref" href="Hi.MachiningProcs.StepScopedProgress.html#Hi_MachiningProcs_StepScopedProgress_MessageList">MessageList</a> and is drained once via <a class="xref" href="Hi.MachiningProcs.StepScopedProgress.html#Hi_MachiningProcs_StepScopedProgress_FlushTo_System_IProgress_Hi_MachiningProcs_StepDiagnostic__">FlushTo(IProgress<StepDiagnostic>)</a> at the step's
|
|
<b>sequential</b> post-physics stage. Because that stage runs strictly in step order, the
|
|
per-step batches land in execution order with no position-scanning insert.
|
|
</p>
|
|
<p>
|
|
No locking: a single step's construction is a data-dependency chain (substraction → physics →
|
|
post-physics), so only one task writes <a class="xref" href="Hi.MachiningProcs.StepScopedProgress.html#Hi_MachiningProcs_StepScopedProgress_MessageList">MessageList</a> at a time; parallelism across
|
|
steps writes to <i>different</i> scopes. Each parallel step task therefore holds its own
|
|
instance — never a shared mutable "current step" on <a class="xref" href="Hi.MachiningProcs.StepDiagnosticProgress.html">StepDiagnosticProgress</a>, which would
|
|
race.
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<h3 id="structs">
|
|
Structs
|
|
</h3>
|
|
<dl class="jumplist">
|
|
<dt><a class="xref" href="Hi.MachiningProcs.RapidCutMonitor.Sample.html">RapidCutMonitor.Sample</a></dt>
|
|
<dd><p>One built step as the monitor sees it — the few facts the fold needs,
|
|
detached from <a class="xref" href="Hi.MachiningSteps.MachiningStep.html">MachiningStep</a> so the fold is testable on
|
|
synthetic steps.</p>
|
|
</dd>
|
|
</dl>
|
|
<h3 id="interfaces">
|
|
Interfaces
|
|
</h3>
|
|
<dl class="jumplist">
|
|
<dt><a class="xref" href="Hi.MachiningProcs.IMachiningProjectGetter.html">IMachiningProjectGetter</a></dt>
|
|
<dd><p>Interface for objects that can provide a MachiningProject instance.</p>
|
|
</dd>
|
|
</dl>
|
|
<dl class="jumplist">
|
|
<dt><a class="xref" href="Hi.MachiningProcs.IProjectService.html">IProjectService</a></dt>
|
|
<dd><p>Interface for services that manage machining projects.</p>
|
|
</dd>
|
|
</dl>
|
|
<h3 id="enums">
|
|
Enums
|
|
</h3>
|
|
<dl class="jumplist">
|
|
<dt><a class="xref" href="Hi.MachiningProcs.NcKind.html">NcKind</a></dt>
|
|
<dd><p>Kind of an NC program file — selects which of the session's runners plays
|
|
it (<a class="xref" href="Hi.MachiningSteps.IMachiningService.html#Hi_MachiningSteps_IMachiningService_ActiveNcRunner">ActiveNcRunner</a> /
|
|
<a class="xref" href="Hi.MachiningSteps.IMachiningService.html#Hi_MachiningSteps_IMachiningService_ClRunner">ClRunner</a> /
|
|
<a class="xref" href="Hi.MachiningSteps.IMachiningService.html#Hi_MachiningSteps_IMachiningService_CsvRunner">CsvRunner</a>).</p>
|
|
</dd>
|
|
</dl>
|
|
<dl class="jumplist">
|
|
<dt><a class="xref" href="Hi.MachiningProcs.RenderingFlag.html">RenderingFlag</a></dt>
|
|
<dd><p>Flags that control which elements are rendered in the visualization.</p>
|
|
</dd>
|
|
</dl>
|
|
<h3 id="delegates">
|
|
Delegates
|
|
</h3>
|
|
<dl class="jumplist">
|
|
<dt><a class="xref" href="Hi.MachiningProcs.ConfigStepFunc.html">ConfigStepFunc</a></dt>
|
|
<dd><p>Delegate for configuring a milling step with additional arguments.</p>
|
|
</dd>
|
|
</dl>
|
|
<dl class="jumplist">
|
|
<dt><a class="xref" href="Hi.MachiningProcs.LocalProjectService.MachiningProjectChangedDelegate.html">LocalProjectService.MachiningProjectChangedDelegate</a></dt>
|
|
<dd><p>Delegate for machining project changed events.</p>
|
|
</dd>
|
|
</dl>
|
|
<dl class="jumplist">
|
|
<dt><a class="xref" href="Hi.MachiningProcs.MachiningActRunner.MachiningStepBuiltDelegate.html">MachiningActRunner.MachiningStepBuiltDelegate</a></dt>
|
|
<dd><p>Delegate for configuring a step with previous and current step information.</p>
|
|
</dd>
|
|
</dl>
|
|
|
|
|
|
</article>
|
|
|
|
<div class="contribution d-print-none">
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
<div class="affix">
|
|
<nav id="affix"></nav>
|
|
</div>
|
|
</main>
|
|
|
|
<div class="container-xxl search-results" id="search-results"></div>
|
|
|
|
<footer class="border-top text-secondary">
|
|
<div class="container-xxl">
|
|
<div class="flex-fill">
|
|
<span> Copyright © 2025 <a href='https://superhightech.com.tw'>Tech Coordinate</a>. All rights reserved. <a href='https://superhightech.com.tw'>超級高科技股份有限公司</a> © 2025 版權所有 </span>
|
|
</div>
|
|
</div>
|
|
</footer>
|
|
</body>
|
|
</html>
|