Recommended test
Post a small metric Fusion 360 contour with one straight move and one arc.
- Open File → Inspect external G-code…, or use CAM → Verify → External G-code inspector.
- Select a
.nc,.gcode,.tap, or.cncfile. The app should enter CAM Verify and show the parser report. - Confirm line count, exact bounds, G1/G2/G3 count, work offset, spindle commands, tool changes, and estimated duration.
- Confirm every viewer cutter diameter. Values read from Fusion tool comments are labeled as inferred; values missing from the file use the active Cadivari cutter as a viewer-only starting value.
- Inspect blue rapid and green/teal cutting centreline motion in 2D. The default is toolpath only over a Z0 grid because stock was not recovered from the file.
- Under Stock context, try the current project stock, an inferred envelope with adjustable margin, and temporary custom dimensions plus work-zero anchor. Every visible board must remain labeled as display context.
- Choose Animate in 3D, orbit the view, play, pause, scrub, and compare the displayed source line, command, tool, and XYZ with Fusion.
- If the file contains a later
M6, playback should pause at that boundary and name the commanded tool before continuing. - Load a program containing
G41,G81, probing, an invalid centre word for the active arc plane, or another unsupported motion command. 3D animation must remain blocked and the exact source line must be reported.
01 · TEMPORARY SESSION
Inspection stays separate from authored CAM
An imported program is never converted into CAD geometry, a Cadivari operation, a saved project record, or exportable native CAM. Closing the inspector restores the normal job exactly as it was. Replacing a file discards only the temporary inspection session.
The dedicated 2D and 3D views work in the program's unchanged work-coordinate space and default to toolpath only over a Z0 grid. Optional current project stock, inferred motion-envelope stock, or temporary custom stock is display context only. The inferred envelope adds the confirmed viewer cutter radius and selected margin around resolved motion; its thickness is only the minimum required to reach the lowest programmed Z. Custom stock supplies width, height, thickness, and one of nine work-zero anchors. None of these settings enter the project file or rewrite imported X/Y/Z values.
02 · TRUST LABELS
Exact coordinates without invented machine context
ExactDeclared G20/G21 units, resolved X/Y/Z endpoints, modal feeds, G0/G1 motion, G17/G18/G19 circular motion, tool numbers, spindle targets, work-offset selection, and program boundsInferredRapid duration at 3000 mm/min and cutter diameter recovered from recognizable post commentsViewer inputCutter diameters absent from the controller programUnavailableStock, fixtures, clamps, machine-reference positions, controller acceleration, tool length table, and collision stateArc distance modes G90.1 and G91.1 are honored. G17 I/J, G18 I/K, and G19 J/K arcs retain their plane, centre, radius, signed sweep, direction, and simultaneous normal-axis change for accurate interpolation and timing. Display polylines do not replace the stored circular move.
03 · VERIFIED SUBSET
Conservative motion support for Fusion and GRBL
- Metric G21 and inch G20 programs, normalized internally to millimetres
- Absolute G90 and incremental G91 endpoints
- Modal G17 XY, G18 XZ, and G19 YZ G0/G1/G2/G3 motion, including full circles and helical arcs
- Incremental or absolute I/J, I/K, or J/K centres as appropriate for the active plane, plus signed-radius R arcs
- G94 feed-per-minute, modal F, S, T, M3/M4/M5, M6, M7/M8/M9, M0/M1, and M30 records
- G54 through G59 work-coordinate selection
- Common Fusion G28 or G53 machine-coordinate transitions are listed but not drawn because the machine reference is outside the file
- Semicolon and parenthesis comments, block numbers, checksums, and recognizable Fusion cutter comments
Only fully established work-coordinate motion enters the viewer. Initial rapid movement from an unknown machine position is omitted with a warning; feed motion from an unknown position is a blocking error.
CURRENT BOUNDARY
Code inspection rather than controller validation
The inspector checks whether this build can interpret visible motion consistently. It does not reproduce a specific controller's entire modal state, machine limits, acceleration, tool table, fixtures, workholding, probing result, or postprocessor behavior.
- G41/G42 controller cutter compensation is blocked
- Canned cycles, probing, macros, variables, subprograms, unsupported M codes, rotary axes, and invalid arc-plane centre words are blocked
- G28/G53 transitions are not connected to guessed machine coordinates
- Material removal remains unavailable because stock and cutter shape are not reliably encoded
- Runtime is an estimate; rapid travel uses the labeled 3000 mm/min assumption
- Always compare source text, parser report, Fusion simulation, controller preview, stock zero, cutter, and workholding before running a machine