Namespace Hi.NcParsers.Dependencys.Heidenhain
Classes
- HeidenhainParameterTable
Heidenhain TNC/iTNC machine parameter table. Stores machine parameters (MP numbers) as system and per-axis values.
MP100–MP199: General machine configuration. MP400–MP499: Axis-specific parameters.
- HeidenhainQParameterTable
Heidenhain Q-parameter table for the ranges that persist on a real TNC: free parameters
Q0-Q99(survive power cycles) and the permanentQR0-QR499range (nonvolatile, backed up with the machine). Like the Siemens sibling SiemensRParameterTable, this table is not session-reset and is serialised into the project file.The other Q ranges deliberately live elsewhere:
Q100-Q199are controller-written system parameters — Get(string) returnsnullfor them (read fail-soft, no fabricated values) and the reading syntax refuses writes;Q200+are volatile cycle/user parameters carried block-to-block inVars.Volatile(JSON dataflow, cleared at program end) — Get(string) also returnsnullso the evaluator's chain falls through to HeidenhainVolatileQLookup.Reads flow through Get(string) (registered automatically because the table sits on the runner's effective
NcDependencyList); writes flow through HeidenhainQParameterReadingSyntax, which consumes literalParsing.Assignments.Qnentries after VariableEvaluatorSyntax has normalized expression RHS to literals.Vacant is represented by
null: either the dictionary has no entry for the key, or the entry maps tonull— both read identically. A vacant read failing loud (Variable--Vacant via the evaluator) surfaces missing setup data instead of silently machining with 0.
- HeidenhainQParameterTableProxy
Get-or-create INcDependencyProxy for HeidenhainQParameterTable: a placeholder in the shared PipelineNcDependencyList that resolves the host project's own per-case Q parameters (
Q0–Q99+QR0–QR499).