I am struggling to fix an unexpected constricted path. Similar g-code code used to work and cut the correct path - now the machine is tracing a cut approx 0.08 inside the assigned (convoluted but roughly square) path. AXIS' Preview window shows the correct path being traced.

I am still in path testing on this piece - I add a "float" amount to Z so that it doesn't quite cut the surface, which is marked with cut lines. My eye says the tool is not over the expected line anywhere on this outside edge - it is offset toward the middle of the piece.

The cut is an outside edge cutting CCW (counterclockwise) with a conical bit. (Theoretical tool radius 0.)
Distances are specified in inches.
G42.1 D#2 --- where parameter #2 is 0.0015
This is expected to cut slightly to the right, that is, OUTSIDE the path.
Instead it is cutting approximately (per eyeball) 0.08 to the left, that is, INSIDE the path.

I have shut down LinuxCNC and restarted it, reloaded the program, and re-zeroed. Same result.
Can anyone help me figure this out?

Home-built Solsylva router table, HobbyCNC controller and steppers, Ubuntu 10.04 modified for real-time use, LinuxCNC/AXIS 2.6.5 and a Glade virtual control panel I wrote. Paths created with the GIMP, g-code generated by Inkscape's plug-in, then edited into my program. The stock is 1/8in acrylic.

Update: I commented out G42.1 and inserted G40 (no diameter compensation). Same result. That seems to rule out a tool diameter compensation issue.