1
Mach4 General Discussion / Mach 4 G01 interpolation
« on: August 23, 2016, 11:55:09 AM »
It seems that under certain situations, Mach doesn't brake before feeding into a totally different direction. I was milling simple squares, when I found out that, upwards from a certain feedrate, the corners of the squares became visibly round, but only certain corners (more on that later). After looking a bit more thoroughly, I found out that no matter what feedrate I was using, the round corners were there, but their size varied with feedrate. With an 8mm bit, 1500mm/min yielded small, maybe 0.1mm radius corners, 3000mm/min made 2mm radius corners. I'm pretty sure that Mach interpolated the toolpath to smooth out the 90 deg corners.
I had the milling separated into subprograms, the X and Y edges of the squares were separated (the two subprograms themselves only did a part of the respective edges, they were repeated multiple times). The interpolation only took place whilst the g-code executed was inside the subprogram, but in between two subprograms (or repeats of the same) the interpolation didn't take place. This lead me to believe that the error wasn't in the servo drivers, or in the mechanics of the CNC, but rather in either Mach 4 or VitalSystems's DSPMC controller (Couldn't rule it out).
Is G01 supposed to to this, or did I miss something like syntax? Interpolation seems like a thing that could be useful for smoothing out curves with small angles, but a 90 degree corner should be a 90 degree corner. G00 seems to work fine, braking just in time to stop at exactly where it was supposed to travel to.
Here are the subprograms, for Y and X edges, respectively:
I had the milling separated into subprograms, the X and Y edges of the squares were separated (the two subprograms themselves only did a part of the respective edges, they were repeated multiple times). The interpolation only took place whilst the g-code executed was inside the subprogram, but in between two subprograms (or repeats of the same) the interpolation didn't take place. This lead me to believe that the error wasn't in the servo drivers, or in the mechanics of the CNC, but rather in either Mach 4 or VitalSystems's DSPMC controller (Couldn't rule it out).
Is G01 supposed to to this, or did I miss something like syntax? Interpolation seems like a thing that could be useful for smoothing out curves with small angles, but a 90 degree corner should be a 90 degree corner. G00 seems to work fine, braking just in time to stop at exactly where it was supposed to travel to.
Here are the subprograms, for Y and X edges, respectively:
Code: [Select]
%
O1337
G91
G01 Y-784 F1500
G01 X28
G01 Y784
G01 X28
M99
%
%
O1420
G91
G01 X-560 F1500
G01 Y28
G01 X560
G01 Y28
M99
%