I am sorry I rewarm this subject, it has been discussed in other threads already, but I think this is still not implemented right.
After several trial and errors, I reduced my G-Code to a very simple example, a square with three rounded corners and a sharp one:
G0 G49 G40 G17 G80 G50 G90
G00 X30 Y0 (start)
G1 X70 Y0 F600 (straight line ..)
G3 X100 Y30 I0 J30 (.. goes smoothly into arc which ..)
G1 X100 Y100 ( .. goes smoothly into straight line)
G1 X30 Y100 (sharp corner 90 degrees to the left)
G3 X0 Y70 I0 J-30
G1 X0 Y30
G3 X30 Y0 I30 J0
Note: The lines and arcs join without any change in direction. You cannot have any smoother joins. The radii are large enough so that they can be followed with the desired feed rate.
My desired behaviour in Constant Velocity mode with the "Stop CV on angle" feature would be that Mach3 follows this contour with no acceleration and decelerations for the rounded corners, but with a stop around the sharp corner.
Well, I can either find settings so that Mach3 follows the contour smoothly, but also rounds the sharp corner, or it will stop and go for each segment.
The only way I see how I can achieve the desired behaviour today is to set up things for Constant Velocity and insert G61 and G64 commands at the appropriate places to switch to and from Exact Stop mode around the sharp corners.
These are the settings I used:
In the Config/General config screen:
- Motion Mode set to Constant Velocity
- CV Dist Tolerance checked, 10 units (10 mm is actually a nonsensical value).
- Stop CV on angle unchecked
In the Alt6 Settings screen:
- CV Distance 10 units.
- CV Feedrate 600 (the same as the actual feed rate)
For these tests I reduced the acceleration of my motors to only 20 mm/sec/sec.
With these settings, Mach3 follows the contour with constant speed, and rounds the sharp corner.
Things I noticed:
- When I reduce the "CV Dist Tolerance" to 1 unit (which is 1 mm in my case, a very high value still), Mach3 noticeably decelerates/accelerates between the rounded segments and their adjoining lines. I do not see any need for that, since these segments join with no disruption in direction. The arcs could be entered and exited at full feed rate from the straight line segments without any resulting error in position, so this could be a smooth motion even if I set this tolerance to 0.0001.
- The CV Feedrate in the Alt6 settings screen does not make sense to me. I need to set it to 600 (the actual feed rate in my example), otherwise I get decelerations between the lines and arcs.
- If I check the "Stop CV on angle" checkbox and set the angle to 90 degrees, it runs smoothly through the contour, rounding the sharp corner. If I set the angle to 89 degrees, it stops for every segment like in Exact Stop mode. (I also had the hypothesis that the entry/exit angle between lines and segments was calculated wrong,
so I split one of the 90 degrees arcs into two 45 degrees segments, but that made no difference.)
- I also tried the Quantum beta version. I could not find any setting that would follow the rounded corners smoothly. I guess the new Jerk Correction only makes things even more complicated, since I have no idea how to set reasonable values.
- If the "Stop CV on angle" feature would work like I understood it should, it could do this example shape correctly automatically. I assume this angle next to the checkbox means the deviation in direction when following from one segment to the next. In the above example, the joints between the rounded corners and the adjoining sides will not change the direction, so their angle is 0 degrees, but the sharp corner turns the direction by 90 degreed when following it. So I assumed I could enter a value of 30 degrees for example, so that the rounded corners would not be affected and be followed smoothly, but the program would detect the 90 degree corner and stop for that.