Supported NC codes Fanuc, Siemens and HEIDENHAIN series. This table ships with the software, so it never drifts from what the tool actually computes.

Which parts of your program can be computed, and which cannot, is worth knowing before you drop a file in. Each row below is one thing a machine does; each column is one control. Where they write it differently (G43.4, TRAORI and M128, say), it is one row. The HEIDENHAIN column shows the ISO codes; the Klartext form is computed the same way (G200 is CYCL DEF 200).

A code that is not listed here is never silently ignored. Codes that are not recognised appear in the report's diagnostics, with the line they occur on and what it does to the time of that stretch. Scope of support →

How to read it

MarkMeaning
✓ Computed, and counted towards the cycle time with its normal meaning. Next to the mark is how that control writes it.
✗ Recognised, but its behaviour depends on something we have not confirmed, so it is not counted. No number is invented; a diagnostic in the report explains what happens to that stretch instead.
— This control does not have it.

Nothing in the second group is quietly skipped — when your program actually uses one, the report names it and gives the line number. Need one of them? Tell us and it will affect what gets built next.

Motion and interpolation

What it doesFanuc seriesSiemens seriesHEIDENHAIN series
Rapid positioning✓G00✓G00✓G00
Linear interpolation✓G01✓G01✓G01
Circular / helical interpolation (CW)✓G02✓G02✓G02
Circular / helical interpolation (CCW)✓G03✓G03✓G03
Thread cutting with constant lead✓G33✓G33—
Dwell✓G04✓G04✓G04
Polar coordinate command cancel✓G15——
Polar coordinate command✓G16——
Cylindrical interpolation✗G07.1——
Tangential arc—✓CT✓G06
Thread cutting with increasing lead—✓G34—
Thread cutting with decreasing lead—✓G35—
Rigid tapping—✓G331—
Tapping retract—✓G332—
Tapping with a compensating chuck—✓G63—
Circle through an intermediate point—✓CIP—
Circular arc with the last direction of rotation——✓G05
Current position as circle centre / pole (Klartext: CC without coordinates)——✓G29
Paraxial straight line——✗G07
Polar straight line at rapid traverse (Klartext: LP … FMAX)——✓G10
Polar straight line (Klartext: LP)——✓G11
Polar arc, clockwise (Klartext: CP … DR-)——✓G12
Polar arc, counter-clockwise (Klartext: CP … DR+)——✓G13
Polar arc with the last direction of rotation——✓G15
Polar arc with tangential transition (Klartext: CTP)——✓G16
Chamfer (Klartext: CHF)——✗G24
Corner rounding (Klartext: RND)——✗G25
Tangential approach to the contour——✗G26
Tangential departure from the contour——✗G27
Approach the contour (LT, LN, CT, LCT…)——✓APPR
Depart from the contour (LT, LN, CT, LCT…)——✓DEP
FK free contour: free straight line——✗FL
FK free contour: tangential free straight line——✗FLT
FK free contour: free circular arc——✗FC
FK free contour: tangential free circular arc——✗FCT
FK free contour: pole——✗FPOL

Planes, units and coordinate mode

What it doesFanuc seriesSiemens seriesHEIDENHAIN series
XY plane✓G17✓G17✓G17
ZX plane✓G18✓G18✓G18
YZ plane✓G19✓G19✓G19
Inch input✓G20✗G70✓G70✓G700✓G70
Metric input✓G21✗G71✓G71✓G710✓G71
Absolute command✓G90✓G90✓G90
Incremental command✓G91✓G91✓G91
Diameter programming—✗DIAMON—
Radius programming—✗DIAMOF—

Feed modes

What it doesFanuc seriesSiemens seriesHEIDENHAIN series
Inverse time feed✓G93✓G93—
Feed per minute (mm/min)✓G94✓G94—
Feed per revolution (mm/rev)✓G95✓G95—
Constant surface speed control✓G96✓G96✓G961✓G962—
Cancel constant surface speed control✓G97✓G97✓G971✓G972✓G973—
Constant feed (the default)—✓FNORM—
Linearly changing feed—✓FLIN—
Feed following a cubic spline—✓FCUB—
Spindle speed limit (for constant cutting rate)—✓LIMS—
Reference axis for constant cutting rate—✓SCC—
Feed referenced to arc length (the default)—✓SPATH—
Feed referenced to the curve parameter—✗UPATH—
Feed rate factor for plunging——✗M103
Feed rate in mm/min on rotary axes——✗M116
Feed rate per spindle revolution——✗M136
Feed rate from the TOOL CALL block——✓F AUTO
Feed per revolution——✗FU
Feed per tooth——✗FZ
Cutting speed (m/min)——✗VC

Coordinate systems and transforms

What it doesFanuc seriesSiemens seriesHEIDENHAIN series
Programmable zero offset✓G52✓TRANS—
Machine coordinates (one block)✓G53—✓M91
Work coordinate system 1✓G54✓G54—
Work coordinate system 2✓G55✓G55—
Work coordinate system 3✓G56✓G56—
Work coordinate system 4✓G57✓G57—
Work coordinate system 5✓G58——
Work coordinate system 6✓G59——
Additional work coordinate systems✓G54.1——
Coordinate system setting✓G92——
Coordinate system preset✓G92.1——
Coordinate rotation✓G68✓ROT✓G73
Scaling cancel✓G50——
Scaling✗G51✓SCALE✓G72
Mirror image—✓MIRROR✓G28
Cancel settable zero offset—✗G500—
Work offsets 5 to 99—✗G505—
Suppress frames for one block—✓G53—
Suppress all frames including the channel basic frame—✓G153—
Suppress all frames and offsets (non-modal)—✓SUPA—
Programmable zero offset (additive)—✓ATRANS—
Programmable rotation (additive)—✓AROT—
Programmable scale factor (additive, multiplies)—✓ASCALE—
Programmable mirroring (additive)—✓AMIRROR—
Datum shift from a datum table——✗G53
Datum shift (note: not Fanuc's work coordinate system)——✓G54
Presetting——✗G247
Coordinates referenced to a position defined by the machine manufacturer——✓M92

Tool compensation

What it doesFanuc seriesSiemens seriesHEIDENHAIN series
Cutter compensation cancel✓G40✓G40✓G40
Cutter compensation left✓G41✓G41✓G41
Cutter compensation right✓G42✓G42✓G42
Tool length compensation (+)✓G43——
Tool length compensation (−)✓G44——
Tool length compensation cancel✓G49——
Tool change✓M06✓M06—
Radius compensation: extend a paraxial line——✓G43
Radius compensation: shorten a paraxial line——✓G44
Tool definition (Klartext: TOOL DEF … L… R…)——✓G99
Prepare the next tool——✓G51
Tool definition / prepare the next tool——✓TOOL DEF
Tool length oversize (TOOL CALL)——✓DL
Tool radius oversize (TOOL CALL)——✓DR
Tool radius 2 oversize (TOOL CALL)——✓DR2

Canned cycles

What it doesFanuc seriesSiemens seriesHEIDENHAIN series
High-speed peck drilling cycle✓G73——
Left-hand tapping cycle✓G74——
Cancel canned cycle✓G80✓MCALL—
Drilling✓G81✓CYCLE81✓G200
Drilling with dwell✓G82✓CYCLE82—
Peck drilling✓G83✓CYCLE83✓G205
Tapping✓G84✓CYCLE84✓G206✓G207
Boring, feed out✓G85✓CYCLE85✓G201
Boring cycle, spindle stop then retract✓G86——
Boring cycle with dwell, feed out✓G89——
Return to initial level after cycle✓G98——
Return to R point level after cycle✓G99——
Fine boring cycle✗G76——
Back boring cycle✗G87——
Boring cycle with manual intervention✗G88——
Cycle call (Klartext: CYCL CALL)——✓G79
Spindle orientation (cycle 13)——✗G36
Boring (cycle 202)——✓G202
Universal drilling (cycle 203)——✓G203
Back boring (cycle 204)——✗G204
Bore milling (cycle 208)——✗G208
Tapping with chip breaking (cycle 209)——✗G209
Centering (cycle 240)——✓G240
Polar pattern (cycle 220)——✗G220
Cartesian pattern (cycle 221)——✗G221
Face milling (cycle 233)——✗G233
Rectangular pocket (cycle 251)——✗G251
Circular pocket (cycle 252)——✗G252
Slot milling (cycle 253)——✗G253
Circular slot (cycle 254)——✗G254
Rectangular stud (cycle 256)——✗G256
Circular stud (cycle 257)——✗G257
Thread milling (cycle 262)——✗G262
Modal cycle call (after every positioning block, until M99 or a new CYCL DEF)——✓M89
Blockwise cycle call (moves to the position, then runs the cycle)——✓M99
Cycle definition (parameters in Q200 onwards)——✓CYCL DEF
Cycle call (once, at the last position)——✓CYCL CALL
Cycle call at every point of a pattern or point table——✗CYCL CALL PAT
Cycle call at a given position——✗CYCL CALL POS
Pattern definition——✗PATTERN DEF
Touch probe cycle——✗TCH PROBE
Contour declaration (SL cycles)——✗DECLARE

Five-axis and tilted working plane

What it doesFanuc seriesSiemens seriesHEIDENHAIN series
Tool centre point control (RTCP)✓G43.4✓G43.5✓TRAORI✓M128✓FUNCTION TCPM
Cancel tool centre point control✓G49✓TRAFOOF✓M129✓FUNCTION RESET
Tool axis direction control✓G53.1——
Tool axis direction control retaining the tool centre point✓G53.6——
Tilted working plane✓G68.2✗CYCLE800(…)✗G80✗PLANE
Cancel tilted working plane✓G69✓CYCLE800()✓PLANE RESET
Tilted plane indexing by tool axis direction✗G68.3——
Incremental tilted plane indexing✗G68.4——
Shorter-path traverse of rotary axes——✗M126
LN tool axis direction, X component——✗TX
LN tool axis direction, Y component——✗TY
LN tool axis direction, Z component——✗TZ

Reference position return

What it doesFanuc seriesSiemens seriesHEIDENHAIN series
Return to the 1st reference position via an intermediate point✓G28——
Return from the reference position✓G29——
Return to the 2nd–4th reference position (selected by P)✓G30——
Return to the 1st reference position without the in-position check✓G28.2——
Return to the 2nd–4th reference position without the in-position check✓G30.2——
Reference point approach—✗G74—
Fixed point approach—✗G75—
Retraction along the tool axis (MB distance, MB MAX to the travel limit)——✓M140
Retraction distance of M140 (MB distance, MB MAX)——✓MB

Accuracy and smoothing modes

What it doesFanuc seriesSiemens seriesHEIDENHAIN series
Exact stop (this block only)✓G09✓G09—
Exact stop mode✓G61✓G60—
Cutting mode✓G64✓G64—
Tapping mode✓G63——
Exact stop window: fine—✓G601—
Exact stop window: coarse—✓G602—
Exact stop: end of interpolation—✓G603—
Continuous path with smoothing by distance—✓G641—
Continuous path with smoothing within tolerance—✓G642—
Continuous path with smoothing inside the block—✓G643—
Continuous path with smoothing to the dynamic limit—✓G644—
Continuous path with tangential smoothing—✓G645—
Corner deceleration at inside corners under cutter compensation—✗G62—
Corner deceleration at all corners—✗G621—
High-speed settings (tolerance and machining mode)—✓CYCLE832—
Jerk-limited path acceleration—✓SOFT—
Path acceleration without jerk limiting—✓BRISK—
Velocity-dependent path acceleration—✗DRIVE—
Standard dynamics (set 1)—✓DYNNORM—
Positioning and tapping dynamics (set 2)—✓DYNPOS—
Roughing dynamics (set 3)—✓DYNROUGH—
Semi-finishing dynamics (set 4)—✓DYNSEMIFIN—
Finishing dynamics (set 5)—✓DYNFINISH—
Block compression—✗COMPON—
Block compression off (the default)—✓COMPOF—
Corner deceleration off (the default)—✓FENDNORM—
Compression with continuous curvature—✗COMPCURV—
Compression optimised for surface quality—✗COMPCAD—
Preprocessing stop—✗STOPRE—
Contour tolerance (cycle 32)——✗G62

Macros

What it doesFanuc seriesSiemens seriesHEIDENHAIN series
Macro call with arguments✓G65✓PROC—
Modal macro call✓G66——
Modal macro call cancel✓G67——
Modal macro call B (called on every block)✗G66.1——
Declare a subprogram with parameters—✓EXTERNAL—
Indirect subprogram call—✓CALL—
Subprogram call with a path—✓PCALL—
Call a subprogram from external memory—✓EXTCALL—
Extend the subprogram search path—✓CALLPATH—
Call a program written in ISO language—✗ISOCALL—
Set a label (Klartext: LBL; G98 L0 ends a subprogram)——✓G98
Program call as a cycle (cycle 12)——✗G39
Call another NC program——✓CALL PGM
Call another NC program (ISO)——✓%
Select a table or program (SEL TABLE, SEL PGM…)——✗SEL
Q parameter functions (FN 14 onwards: error messages, output, system data, tables)——✗FN

Miscellaneous functions

What it doesFanuc seriesSiemens seriesHEIDENHAIN series
Program stop✓M00✓M00✓M00
Optional stop✓M01✓M01✓M01
Program end✓M02✓M02✓M02
Spindle on, clockwise✓M03✓M03✓M03
Spindle on, counterclockwise✓M04✓M04✓M04
Spindle stop✓M05✓M05✓M05
Spindle orientation✓M19✓M19—
Rigid tapping mode✓M29——
Program end and rewind✓M30✓M30✓M30
Subprogram call✓M98✓L…✓CALL LBL
Return from subprogram✓M99✓M17✓RET✓LBL 0
Show a message on the operator panel—✓MSG—
Workpiece blank: MIN point (Klartext: BLK FORM 0.1)——✓G30
Workpiece blank: MAX point (Klartext: BLK FORM 0.2)——✓G31
Program stop (Klartext: STOP)——✓G38
Spindle on clockwise, coolant on——✓M13
Spindle on counter-clockwise, coolant on——✓M14
Workpiece blank definition (for simulation only, no motion)——✓BLK FORM
Program stop——✓STOP
Switch between milling and turning mode——✓FUNCTION MODE
Other special functions (FUNCTION …)——✗FUNCTION

Other controls

Beyond the three above, Mitsubishi and turning are not done — they are not a matter of filling in a config file: the macro languages and the way cycles are called differ per vendor. Tell us which control you run and it will affect which one comes first.