Success finally !!I'm happy in a way and sad in another to report that this is a bug in Mach3 !! Well ...to be fair it may be the way I'm doing stuff but ... here's what I found.
My toolpaths are mostly set up to machine 3 of a particular part
(a couple only do 2).
The way I do these
(and this is a recent change) is I first create a 'header' or master job. It contains all of the setup routines including a G28.1 X10 Y10 to always reference the machine between each part being made.
So the header sets up the machine and does the first G28.1. It then applies a work offset from the table and reads in a
seperate subroutine file which is the actual 'movements' to create the part.
It then lifts Z up out of harms way and does another G28.1 to ref the machine again. Then it applies the next work offset and reads in
the same subroutine file again ... so the part gets made again at the new offset location.
For the third cycle the process is simply repeated again - lift Z, G28.1, apply offsets, machine part.
The cycle runs through perfectly
but the parts have the problem that I have been trying to rectify here ... outer perimeter is too
big by 0.25mm and inner bearing pocket is too
small by the same amount.
So in working backwards ... I recreated the header file to make only
one part - but this time
the full code was contained in the same file ..so NO subroutine file -
BINGO!!! Finished parts end up being to size +/- 0.01mm (~1/4 thou off).
I did this three times in a row ... made the parts with the original header and sub file - all were out by the 0.25mm ...
without changing anything I ran the job again but this time with 'full' g-code in the one file ...
the finish cut on each pass took off a smidgeon ...
I have not yet tried the process with the one file containing a sub for the part (running the sub three times over) ... but certainly as a 'no sub' code it does what it's supposed to do.
During the battle to find out what was causing this issue I tried Quantum, Mach3 2.63, Mach3 3.042.020 and Mach3 3.043.026 (which is the current installed version) - so I don't know how many renditions this apples to but it seems to go a way back considering that all versions made the part over/under sized by the same amount.
I have some more parts still to be made - so I will try various combinations of subs/full code and see what happens - but to me it looks like this is a confirmed bug (unless my process is wrong!!)
Thanks to all who offered various input!!
Marc