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

Reply via email to