Table of Contents

Class SiemensMachineDataTableProxy

Namespace
Hi.NcParsers.Dependencys.Siemens
Assembly
HiMech.dll

Get-or-create INcDependencyProxy for SiemensMachineDataTable: a placeholder in the shared PipelineNcDependencyList that resolves the host project's own machine data table. Like the Fanuc-family parameter table, the Siemens machine data mixes machine config (axis types / reference positions / velocities / indexing tables) with per-project edits, so the proxy carries a fixed machine-config Seed that is serialized into the shared runner file. On wire, the host receives a deep clone of the seed only when it has no SiemensMachineDataTable yet; a loaded project's own full table wins, so a same-brand re-flash re-binds to the project's machine data instead of resetting it. The resolved host table is fully serialized on the project.

The proxy deliberately does not implement the machine-config interfaces (IMachineAxisConfig, IIndexingPositionConfig, etc.) — every machine-config consumer must go through GetEffectiveNcDependencyList() so it sees the resolved host table, never this placeholder.

public sealed class SiemensMachineDataTableProxy : INcDependencyProxy, INcDependency, IMakeXmlSource
Inheritance
SiemensMachineDataTableProxy
Implements
Inherited Members
Extension Methods

Constructors

SiemensMachineDataTableProxy(SiemensMachineDataTable)

Creates a proxy carrying seed as its machine-config seed, defaulting to Default3Axis.

public SiemensMachineDataTableProxy(SiemensMachineDataTable seed = null)

Parameters

seed SiemensMachineDataTable

The machine-config seed cloned into a fresh host.

Properties

Seed

The fixed machine-config seed deep-cloned into a host that has no SiemensMachineDataTable yet. Carried on the shared runner and serialized into the runner file — never the per-case instance, which lives on the host (see GetNcDependency()).

public SiemensMachineDataTable Seed { get; }

Property Value

SiemensMachineDataTable

XName

XML element name used to register this dependency with XFactory.

public static string XName { get; }

Property Value

string

Methods

GetNcDependency()

Takes the host's SiemensMachineDataTable (created during InitNcDependencyHost(INcDependencyListHost)). Returns null when no host is wired.

public INcDependency GetNcDependency()

Returns

INcDependency

InitNcDependencyHost(INcDependencyListHost)

Wires the host and materializes the host SiemensMachineDataTable: when the host list has none, a deep clone of Seed is installed so the machine data exists and is editable before any run. GetNcDependency() is then a pure take. Idempotent — an existing host table (a loaded project's) is left untouched.

public void InitNcDependencyHost(INcDependencyListHost host)

Parameters

host INcDependencyListHost

MakeXmlSource(string, string, bool)

Serializes only the machine-config Seed — the wired host and the resolved host table are runtime-only and not persisted in the shared runner.

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

Parameters

baseDirectory string
relFile string
exhibitionOnly bool

Returns

XElement

Reg(XFactory)

Registers this type's deserializer with the given XFactory (or Default when factory is null). Rehydrates the carried Seed from the nested SiemensMachineDataTable element, falling back to Default3Axis when absent. Idempotent.

public static void Reg(XFactory factory = null)

Parameters

factory XFactory