On 20 Mar 2013, at 04:16, Igor Chudov wrote: I have a vertical mill with a fourth axis A.
My buddy wants me to write a subroutine that would let me mill thread on round parts, that are held in the fourth axis, and the thread would be milled using a 60 degree chamfer end mill, rotating the part around the A axis. I have some questions about the odds and ends of this. 1. I would like to be able to say to the machine, in G code, that "wherever we are on the A axis, call it zero degrees position". In other words, I want to change the coordinate system in G code for one A axis only. How do I do it. Gene is right: there are threading canned cycles you could use, but you still might want to reset the A to 0 when you start that. The write-it-yourself answer might depend on whether you mean you need the A value to be zero at that point inside that subroutine only, or whether it can be 0 at that point outside the subroutine as well. G92 will give you a temporary offset inside the subroutine. G92.1 cancels it So taking the controlled point to the required position then using G92 A0 should do the trick. At the end of the subroutine, use G92.1 to cancel that temporary offset. Or, working in G54 throughout, you could Home when you start Jog to where you need A to be 0 (and X0 Y0 Z0) Touch Off X, Y, Z and A in G54, making the values zero each time. (Or do the Touching Off anywhere to suit X, Y and Z Jog to the A position you need to be zero and re-home A only) Or you could use two of the offset systems G54, G55 etc So, when you start your session, Home the X, Y, Z and A axes in both G54 and G55 offsets. In your program, move to the required position in X, Y, Z and A then use G10 L20 P2 A0 G55 The G10 L20 calculates the offset required to make the current A value 0 and puts that in offset system 2 (i.e. G55) G55 switches to that offset system Because X, Y and Z are already the same in G54 and G55 X, Y and Z values should stay the same but the A value will now be 0 The A value in the "normal" G54 system will be whatever it was before, because you have only changed it in G55 not G54 G54 switches back to the G54 values once you have finished. I have a question on the A axis orientation: Do you have the A axis wrapping around the X linear axis? If it is wrapped around the Z axis, it would technically be a C axis, although I guess that like myself you could be using an A axis connection swapped between either. I use A for a rotary table mounted horizontally, with the axis pointing along X (so motion is wrapped around X). I use the same rotary table mounted horizontally, pointing up the Z axis, and don't bother changing the cables or the name of the axis. Lazy; but convenient. Regards, Marcus 2. Is that correct that feedrate F in a G1 statement that changes both X, as well as A, only refers to the change of X? I can live with that, I just want to know. ------------------------------------------------------------------------------ Everyone hates slow websites. So do we. Make your web apps faster with AppDynamics Download AppDynamics Lite for free today: http://p.sf.net/sfu/appdyn_d2d_mar _______________________________________________ Emc-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/emc-users ------------------------------------------------------------------------------ Everyone hates slow websites. So do we. Make your web apps faster with AppDynamics Download AppDynamics Lite for free today: http://p.sf.net/sfu/appdyn_d2d_mar _______________________________________________ Emc-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/emc-users
