Namespace Hi.NcParsers.Dependencys.Generic
Classes
- FallbackConfig
HiNC-specific fallback dependency that provides default values for all optional configuration interfaces.
Should be placed as the last element in PipelineNcDependencyList so that brand-specific parameter tables (which appear earlier) take priority via
OfType<T>().FirstOrDefault().When a brand table (e.g., FanucParameterTable) implements the same interface, its values are used instead. This class serves as a safety net for brands that do not define certain parameters (e.g., Siemens/Heidenhain have no system parameter for G83 peck retraction — it is per-call).
- GenericBlockSkipConfig
Default IBlockSkipConfig. Mirrors the typical Fanuc factory default: layer 1 (bare
/prefix) is ON, other layers are OFF. Each layer can be toggled individually.XML form:
When<GenericBlockSkipConfig> <EnabledLayers>1,3</EnabledLayers> </GenericBlockSkipConfig>EnabledLayersis absent the default is layer 1 only.
- IsoCoordinateTable
Coordinate table for NC controller. The dictionary key is a G-code coordinate name (e.g. “G54”, “G59.2”); the dictionary value is machine coordinate offset.
Brand-agnostic standalone implementation of IIsoCoordinateConfig. Brand parameter tables (Fanuc, Syntec, Siemens, Heidenhain) provide hardware-faithful alternatives that map to real controller parameters.
- IsoCoordinateTableProxy
Get-or-create INcDependencyProxy for IsoCoordinateTable: a placeholder in the shared PipelineNcDependencyList that resolves the host project's own per-case work coordinate offsets (G54–G59…).
The proxy may carry a Seed — the shape (which ids exist, all zero) a fresh host table is cloned from. The Fanuc, Mazak and Syntec presets mount this proxy behind their brand parameter table with the ExtendedG59x seed, so the brand table keeps G54–G59 and G54.1 P1–P48 while this table carries only the extended G59.1–G59.9 the brand tables cannot map. Without a seed the fresh table is the full brand-neutral set (the shape every pre-seed
<IsoCoordinateTableProxy/>element materialized).
- MachineAxisConfig
Brand-neutral IMachineAxisConfig backed by a plain axis→type map, for pipelines that have no controller parameter table (e.g. the NX CLSF runner). Typically populated from the machine chain via ConfigureByMachiningChain(IMachiningChain); rotary axes default to modular (IsModularRotary(string) inherited), matching the cyclic shortest-path treatment of McAbcCyclicPathSyntax.
- SubProgramFolderConfig
Folder lookup configuration for SubProgramCallSyntax: where to find an
O<n>file when the host program executesM98 P_ L_(InternalFolder) orM198 P_(ExternalFolder, modelling Fanuc's external storage call — memory card, USB, DNC drive — whose only difference from M98 is the search root).Either path may be absolute or relative; when relative, it resolves against the host file's parent directory at lookup time. Either may be null — a null ExternalFolder falls back to InternalFolder; a null InternalFolder falls back to the host file's parent directory.
- ToolOffsetRow
Single row of a ToolOffsetTable. Stores geometry (ideal) and wear components for height and radius. Matches Fanuc Memory C layout where H and D share the same row.
- ToolOffsetTable
Integer-keyed tool offset table implementing IToolOffsetConfig. Suitable for Fanuc (H/D), Heidenhain (tool number), Mazak, Okuma, and other ISO-compatible controllers. Key = offset number (Fanuc H or D number).
- ToolOffsetTableProxy
Get-or-create INcDependencyProxy for ToolOffsetTable: a placeholder in the shared PipelineNcDependencyList that resolves the host project's own per-case tool offsets. The shared runner file holds only this proxy, never the offset data.
- ToolingMcConfig
HiNC-specific: machine position axes move to during tool change (M06). Not a standard Fanuc parameter — in real Fanuc, tool change motion is programmed in the macro program (O9006). Each axis value: a position to move to, or NaN to stay.
Enums
- RadiusOffsetBasis
Which cutter-radius compensation strategy the NC program was posted for — decides what a tool-house refresh writes into the radius (D) column of a tool offset table. The height (H) column is refreshed the same way under both strategies. This is an output-affecting, project-level choice: the user or agent picks it after confirming how the NC program was posted, because a refresh under the wrong basis silently offsets the tool by a full cutter radius.