Table of Contents

Class HeidenhainMachiningCycleSyntax

Namespace
Hi.NcParsers.ParsingSyntaxs.Heidenhain.CyclDefSyntaxs
Assembly
HiMech.dll

Captures the body of a machining CYCL DEF (every cycle number without a dedicated owner — the datum family 7/247 and the tolerance family 32 keep their own syntaxes) into a structured Parsing.MachiningCycle record: { Number, Title?, Params?, Args? }.

  • Params — every Qnnn=value assignment in the head and body lines. Literal values are stored as JSON numbers (via ToFloat(string) — a string node would read as an unevaluated variable downstream); Q-reference values stay strings for the evaluator to substitute in place.
  • Q mirror — each captured assignment is also mirrored into Parsing.Assignments (raw string RHS): on a real TNC the cycle definition genuinely assigns those Q parameters, and pre-P4 corpus behavior (each parameter line was its own sentence consumed by the bare-assignment capture) already routed them into the volatile Q store. The mirror keeps that store contract intact now that the ~-grouped sentence is claimed here first.
  • Title — the non-assignment remainder of the head line (e.g. PLANFRAESEN).
  • Args — any other non-assignment body remainder, swept into the record so residue (e.g. CYCL DEF 19.1 A90 B0 C105 rotary words) can never leak into axis captures — the PLANE-family precedent from P3.
The ISO mapping and the armed/modal bookkeeping happen in HeidenhainCannedCycleSyntax. Multi-line capture is covered by regular unit tests rather than the conformance examples below (the conformance shorthand is single-line only).
public class HeidenhainMachiningCycleSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource
Inheritance
HeidenhainMachiningCycleSyntax
Implements
Inherited Members
Extension Methods

Constructors

HeidenhainMachiningCycleSyntax()

Initializes a new instance with default settings.

public HeidenhainMachiningCycleSyntax()

HeidenhainMachiningCycleSyntax(XElement)

Initializes a new instance by deserializing from the given XML element.

public HeidenhainMachiningCycleSyntax(XElement src)

Parameters

src XElement

Source XML element.

Fields

ArgsKey

Record key of the swept non-assignment remainder.

public const string ArgsKey = "Args"

Field Value

string

MachiningCycleKey

JSON key of the record under Parsing.

public const string MachiningCycleKey = "MachiningCycle"

Field Value

string

NumberKey

Record key of the cycle number.

public const string NumberKey = "Number"

Field Value

string

ParamsKey

Record key of the captured Q-parameter map.

public const string ParamsKey = "Params"

Field Value

string

TitleKey

Record key of the cycle title text.

public const string TitleKey = "Title"

Field Value

string

Properties

Name

Syntax kind name (typically the concrete type name).

public string Name { get; }

Property Value

string

XName

XML element name used to register this syntax with XFactory.

public static string XName { get; }

Property Value

string

Methods

Build(LazyLinkedListNode<SyntaxPiece>, List<INcDependency>, NcDiagnosticProgress)

Build syntax arrangement into the syntaxPieceNode in-place.

public void Build(LazyLinkedListNode<SyntaxPiece> syntaxPieceNode, List<INcDependency> ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress)

Parameters

syntaxPieceNode LazyLinkedListNode<SyntaxPiece>
ncDependencyList List<INcDependency>
ncDiagnosticProgress NcDiagnosticProgress

MakeXmlSource(string, string, bool)

Creates an XML representation of the object. This method may also generate additional resources such as related files.

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

Parameters

baseDirectory string

The base directory for resolving relative paths

relFile string

The relative file path for the XML source

exhibitionOnly bool

if true, the extended file creation is suppressed.

Returns

XElement

An XML element representing the object's state

Remarks

For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file.

Reg(XFactory)

Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent.

public static void Reg(XFactory factory = null)

Parameters

factory XFactory