Balazs, thanks for taking the time to reply.
Ok, I understand that, but if I round all my gcode off to two decimal places with the post processor there will never be a situation where the start point does not correspond with a whole step value if my settings are 100 steps per unit.
G1 x0.01 f500
G4 P1
G2 x0.01 Y0 i10 y-10
If I feed the machine 2 decimal place information and it is set to 2 decimal place precision then it will never have a problem.
When would the last move ever land on 0.005? For example
I understand the problem with imperial machines is if lets say you have a 4 turns per inch ball screw, direct drive, so potentially your steps per unit (maximum {no microstepping mutiple}) are 4*200 = 800 steps per unit, so the smallest step is 0.00125.... now I have a rounding error if I send the machine to
G1 x0.001 F100
G4 P1
G2 X0.001Y0 I5 J-5
Because X0.001 does not exist for the machine
Only X0, and X.00125
One simple way to fix this is use 10uStep setting on the drive.... So now the smallest step is 0.000125..... now X0.001 exists... because there are now 8 steps from
X0 to X0.001..... so to fix this problem make sure your machine only exports gcode from the post processor with 3 decimal point precision