CNC Path Analyzer

Updated 2026-10-24

Supported scope and known limitations

One page summarizing the G-code scope CNC Path Analyzer interprets (supported, partially supported, reference interpretation, blocked) and the limitations that can make the drawing differ from a real machine.

How support is defined

On this page, supported means that syntax whose expected coordinates have been confirmed by automated tests and synthetic examples can be drawn on screen. It does not mean the program will be machined safely on a particular machine, nor that it is compatible with every controller option. As a rule, unconfirmed behavior is not guessed and drawn; instead, drawing stops and the reason is shown.

Current status by feature

AreaStatusWhat to check
G00/G01 linear movesSupported for lathe and millingAbsolute/incremental, selected plane, lathe X shown as diameter
G02/G03 arcsShown only for supported planes and definitionsR sign, I/J/K and end-point radius agreement
Lathe G70/G71/G72/G73Verified subsetController differences in pocket, return and first-block rules
G76 threading cycleTwo-block format supportedLead, thread depth, first depth of cut
Drilling and tapping cycles (G73/G81–G89)Partially supported by machine and controllerR interpretation in lathe G83/G84, K0, return level
G12.1/G13.1 polar coordinates, C axisXC polar coordinates and split displayActual rotation direction, origin and machine kinematics
M98/M99 callsProgram calls by O numberMissing, duplicate, recursive calls and execution limits
Variables and expressionsLimited assignment, expressions, conditions/loopsSystem variables and the full macro environment are not reproduced
Heidenhain, Siemens, 5-axisOnly the interpretable parts of the pathTCP, pivot, tool length and rotary-axis kinematics are not reproduced

The five display states

Why the drawing can differ from the real machine

The tool computes the path from the program text alone. The following information is stored outside the program, on the machine side, so it is not reflected in the drawing.

An example of how the controller choice changes the result

A typical case where the same text becomes a different path depending on the controller is the corner R command in a linear block. In the G01 X40. R2. format, some controllers (the YASNAC family) read the sign of R as a direction, while others always read it as a positive radius. If "G01 corner R interpretation" in the machine settings is left on automatic, the rule of the selected controller is used; if you choose one explicitly, that rule is fixed. A comma-prefixed ,R is always a positive radius and does not affect R in arcs or cycles.

M-codes are similar. Common codes such as spindle rotation, coolant and program end are annotated with their meaning, but manufacturer- or model-specific M-codes are explained only when confirmed documentation exists; unknown codes are never given made-up names.

If you ignore a warning

If you ignore a called-program error and keep viewing, an incomplete path with the problem section missing may be drawn. Computation limits or geometry errors can block the entire result. The disappearance of a warning does not prove that a program is safe, so we recommend checking warnings in the order described in Path troubleshooting.

Verification and updates

Public examples and regression tests use independently written synthetic programs, never production NC. When a new format is supported, its expected coordinates and error classification are first fixed in tests and then released, and behavior changes are recorded in the changelog.