NCXchange – the neutral NC code intermediate format

NCXchange (NCX) is a domain-specific language serving as a neutral, vendor-independent intermediate format for NC code across different CNC controls.

NCXchange (NCX for short) is a domain-specific language that serves as a neutral intermediate format for NC code. Instead of translating NC programs directly from one control dialect into another, the code is first converted into the vendor-independent NCX format – and from there into the dialect of the target control.

FanucHeidenhainOkumaHurcoNCXintermediate formatFanucHeidenhainOkumaHurcoconverter → NCXNCX → converter

As a universal exchange format, NCX enables conversion between the formats of different controls (e.g. Heidenhain, Fanuc, Siemens), the development of analysis functions, and integration into other software applications.

Work in progress

NCX is still under active development; the specification and scope of the language may change. Anyone who wants to contribute to the specification or join the discussion is welcome on the project page on GitHub.

The Definition describes the grammar of the language, the Specification documents all language elements, and the Examples show how Fanuc G-code maps to NCX.