Table of Contents

Class NcRunnerSuit

Namespace
Hi.NcParsers
Assembly
HiMech.dll

A switchable “runner suit”: bundles the per-machine NC pipeline (SoftNcRunner plus its optional side-file path SoftNcRunnerFile) with the per-workpiece PerCaseNcDependencyList the runner's INcDependencyProxy placeholders resolve against. The suit is the proxies' INcDependencyListHost, so the runner and its case data switch together as one unit — load a different suit to switch the active parser (NC or CSV) within a session.

Read/Write only (pure IO, no own XxxFile identity pointer): the owning project serializes the suit's two members flat in the project XML, keeping the per-workpiece PerCaseNcDependencyList project-local rather than a shared side file.

public class NcRunnerSuit : IMakeXmlSource, INcDependencyListHost
Inheritance
NcRunnerSuit
Implements
Inherited Members
Extension Methods

Constructors

NcRunnerSuit()

Creates a default suit (Fanuc preset runner, empty per-case list).

public NcRunnerSuit()

NcRunnerSuit(XElement, string, string, IProgress<IMessage>, object[])

Reconstructs a suit from a <NcRunnerSuit> element previously produced by MakeXmlSource(string, string, bool). The runner unwraps an optional SoftNcRunnerFile side-file ref (stamped back onto SoftNcRunnerFile); the per-case list falls back to the legacy element name NcDependencyList. Proxies are bound to this suit before returning.

public NcRunnerSuit(XElement src, string baseDirectory, string relFile, IProgress<IMessage> progress, object[] res = null)

Parameters

src XElement
baseDirectory string
relFile string
progress IProgress<IMessage>
res object[]

Properties

PerCaseNcDependencyList

The case-specific dependencies (tool offsets, coordinate tables, parameter tables, …) that proxies take from — never the runner's own fixed list. A get-or-create proxy may also append the dependency it makes here.

public List<INcDependency> PerCaseNcDependencyList { get; set; }

Property Value

List<INcDependency>

SoftNcRunner

The per-machine NC pipeline. Plain auto-property: callers that (re)assign it at construction or switch time call WireNcDependencyProxies() explicitly once the per-case list is also in place (so proxy host binding is not run prematurely against a stale list).

public SoftNcRunner SoftNcRunner { get; set; }

Property Value

SoftNcRunner

SoftNcRunnerFile

Project-relative file path of the SoftNcRunner XML. When non-null the runner is written to a sibling side file and referenced; when null it is inlined. Mirrors MachiningEquipment.MachiningChainFile.

public string SoftNcRunnerFile { get; set; }

Property Value

string

XName

XML element name for Generators registration.

public static string XName { get; }

Property Value

string

Methods

MakeXmlSource(string, string, bool)

Serializes the suit as <NcRunnerSuit> containing <SoftNcRunner> (honouring SoftNcRunnerFile — inline when null, side-file ref otherwise) and <PerCaseNcDependencyList>. The owning project wraps this in its own <NcRunnerSuit> slot and reloads it via XFactory's GenByChild.

public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly)

Parameters

baseDirectory string
relFile string
exhibitionOnly bool

Returns

XElement

Reg(XFactory)

Registers NcRunnerSuit and chains Reg(XFactory) for every pipeline component a suit may deserialize. Idempotent.

public static void Reg(XFactory factory = null)

Parameters

factory XFactory

WireNcDependencyProxies()

Binds every INcDependencyProxy in SoftNcRunner's pipeline list to THIS suit as host; a get-or-create proxy materializes its data into PerCaseNcDependencyList. Idempotent. Call after (re)assigning SoftNcRunner or PerCaseNcDependencyList.

public void WireNcDependencyProxies()