Arc in corners instead of 90 degrees???

More
18 Dec 2012 00:28 #27807 by mmt
I have built a couple very nice servo systems using Linux. Currently I am building a cheap stepper system using a Gecko G540.

Ran stepconfig everything works great and moves well except I threw in this test program

G0 X0 Y0 Z0
X1
Y1
Z-1
X0
Y0
Z0
M2

from line 2 to 3 y axis will begin to move before x axis move is complete and all subsequent lines do the same.

The preview in axis shows 90 degree corners but the actual movement line in axis shows the radius and all radius appear to be the same.

Please help.

Thanks,
kent

Please Log in or Create an account to join the conversation.

More
18 Dec 2012 01:31 #27809 by ArcEye
Hi

It is nothing to do with your set up, you can adjust how exactly Linuxcnc follows a path with G61 and G64

See the g code manual
linuxcnc.org/docs/2.5/html/gcode/gcode.h..._sec_g61_g61_1_g64_a

regards

Please Log in or Create an account to join the conversation.

More
18 Dec 2012 21:46 #27831 by andypugh

from line 2 to 3 y axis will begin to move before x axis move is complete and all subsequent lines do the same.


In addition to what Arceye said, the fact that this effect is visible probably indicates that the acceleration settings are too low.

if you think about it in enough detail, unless the tool comes to a dead stop at every change in direction, there will always be some deviation from the programmed path at any sharp corner (and by "sharp corner" I mean any point where two lines meet at any angle, rather than a tangent curve. This is just physics. as the axes take a finite time to change velocity.
There is an option to do this, but it is very rarely what is required.

I suggest increasing the axis accelerations until problems arise, then backing off a bit.

Please Log in or Create an account to join the conversation.

More
12 Jul 2022 18:06 #247170 by rajsekhar
Could you please explain the option? I am having same problem.

Please Log in or Create an account to join the conversation.

More
More
13 Jul 2022 16:29 - 13 Jul 2022 16:36 #247241 by Todd Zuercher

rajsekhar post=247170 userid=29765Could you please explain the option? I am having same problem.


This is a very common problem with people beginning to learn CNC and g-code.  And this question gets asked over and over and over, the answers are in the manuals if people would actually read them. 

Many cnc controls have two basic cutting modes continuous cutting (G64) or exact stop (G61) Linuxcnc is no exception.  For most cutting applications G64 mode is the one you want to use.  In exact stop G61 mode the machine will come to a stop at the end of each line of G-code cutting commands (G1,G2,G3...).  In G64 mode The machine will attempt to maintain the programmed cutting velocity between each cutting move. The problem is this is often physically impossible.  So in order for the programmed velocity to be maintained, any corner will have to be rounded. The amount of rounding will be dependent on the maximum acceleration of the involved axis and programmed feedrate. In Linuxcnc (some other controls are different) if the amount of rounding nessisary to maintain the programmed feed rate is so great that none of a programmed move can be followed at the programmed feed rate then Linuxcnc will slow the feed rate until at least some part of the programmed path can be followed.  This is the default setting in Linuxcnc (and some other cnc controls such as Fanuc are simular).  This sounds like a truly horrible arrangement and it is, but there is a simple solution.  In Linuxcnc there is an optional tolerance setting for G64.  Setting this tolerance to a reasonable number for the machining you are doing will restrict the corner rounding to something less than that tolerance.  You do this by issuing the command G64Px where x=your tolerance value.  A common value for the tolerance on an inch machine is G64P0.001.  This will result in negligible corner rounding.  With this setting Linuxcnc will automatically slow the machine at corners to what is necessary follow within the programmed tolerance with the machine's programmed acceleration values.  Another not bad option might be to set the tolerance according to the radius of your tool, if you set it equal to this formula (the square root of half the tool radius minus the tool radius), then the rounding will never be more than the radius of your tool.  Then if your tool path is a true square, the path the machine makes would be the equivalent of drawing a square with corner radii equal to your tool radius, and the milled result will still be a perfect square (if your cutting the outside of it).
Last edit: 13 Jul 2022 16:36 by Todd Zuercher.
The following user(s) said Thank You: tommylight, itsme, anton610

Please Log in or Create an account to join the conversation.

Time to create page: 0.085 seconds
Powered by Kunena Forum