What's new
What's new

Need help bad for single g76 3/4 -14 npt thread

bruiserba

Plastic
Joined
Oct 23, 2011
Location
NC USA
i need to put a 3/4-14 od thread and cant figure out how to do it using a g76 on a haas hl-30 lathe .if anyone can help i really need help thanks
 
i need to put a 3/4-14 od thread and cant figure out how to do it using a g76 on a haas hl-30 lathe .if anyone can help i really need help thanks

Did you look at the manual? Doesn't get much more straight forward than that.
 
The thread at the bottom is in reference to a two line G76 tapered threading cycle and will not apply to your Haas one line G76 program but there should to be enough information how to get your program numbers for the 1 line cycle.

All the thread data is in the Machinist Handbook under pipe threads. The taper value in the G76 ccycle is the total distance of the X move in radius value projected out to your safe Z start point. That took forever to sink into my noggin. Lol...

If you don't have a Haas programming manual? Do a search for the Haas one line G76 cycle, familiarize yourself with the cycle, use the same mathematical process in the thread below but alter the thread data to figure your 3/4-14NPT program numbers. Make an honest attempt at the code then post it here. Chances are good someone will help you with what you're having trouble with.

If you're lucky maybe Bill will show up with an explanation of the 1 line G76 cycle?

Brent

http://www.practicalmachinist.com/vb/general/o-d-npt-thread-344739/#post3102810
 
In concept, the single line is pretty much the same as the 2 line, in fact little simpler due to the lack of a few controllable parameters.

The cycle definition is the same as a standard thread with the only addition of the I value ( taper amount in radius )
The only thing that is to note:
The X value in the G76 cycle is defined at the END OF THE THREAD!! That is to say you define the X target at the Z (end) point.
The I value is defined as a radial distance FROM the X-target to the start point, ergo: for OD threads the I will be negative ( X is smaller on the front )

Basically:
G76 Z(target) X(at Z-target) F(feed) I(Xstart-Xtarget) D(first DOC) K(thread height) A(angle of thd)
 
Assuming the following:
Pipe OD of Ø1.05"
Haas/ G76
You have read the other comments and have an understanding of what the arguments in the G76 line mean.

Off the cuff I would start with something close to this:

G00 X.8723 (starting X @ Z0.2 from front of part) Z.2
G76 X.942 (Ø1.05 - 2*K) Z-.915 I.03484 K0.054 D0.013 F.0714 A60 P1.
 
G00 X.8723 (starting X @ Z0.2 from front of part) Z.2
G76 X.942 (Ø1.05 - 2*K) Z-.915 minusI.03484 K0.054 D0.013 F.0714 A60 P1.

I think that is what Seymour is pointing out. Also 1.15*.0625/2=.03588 not .03483. But hell, close enough for me.
 
I think that is what Seymour is pointing out. Also 1.15*.0625/2=.03588 not .03483. But hell, close enough for me.

Hello Rob,
At first glance, Doug's code appears to be for an Internal Thread, ie, X Start coordinate being smaller than the Target X and a positive I value. I thinks that's what Seymour was pointing out. However, Doug's X value in the G76 Block is for an External Thread, therefore, the X Start coordinate should be greater than 1.05" and an I value of -0.03484 (-0.03484 is correct as the total Z travel is -1.115)

G00 X.8723 (starting X @ Z0.2 from front of part) Z.2
G76 X.942 (Ø1.05 - 2*K) Z-.915 I.03484 K0.054 D0.013 F.0714 A60 P1.

Regards,

Bill
 
The I value is defined as a radial distance FROM the X-target to the start point, ergo: for OD threads the I will be negative ( X is smaller on the front )

Bill, can you explain the above statement? I have seen it in working programs before. But it doesn't make sense logically, to me.

R
 
Bill, can you explain the above statement? I have seen it in working programs before. But it doesn't make sense logically, to me.

R
Hello Rob,
As you well know, if you were to cut a Parallel Male Thread, the Minor Diameter would be specified via the X address in the G76 Block and the "I" address can be omitted. When "I" is omitted a Zero value for "I" is assumed (Zero Taper).

When a Tapered OD Thread is programmed using the G76 Cycle, the Minor Diameter as if a parallel thread is being cut is specified and the taper is specified by an "I" address. It would be futile to specify the Minor Diameter at the Start X position (small diameter of thread + X allowance for Z stand off), as that would vary with the Z Start Position and then the Taper would still have to be described in some manner.

The taper is described by the Radial difference between the Minor Diameter and Major Diameter of the Taper, taken from the X/Z Start to the X/Z Finish of the Threading Cycle. In other words, the Radial difference of a given taper over the Z length travel. As the constant is the Minor Diameter at the Major Diameter of the Taper, the Taper amount and Direction is specified using the X/Z Finish Point as the datum. Accordingly, for a Male Tapered Thread, the Direction will be Minus(the Start Diameter is smaller than the Finish Diameter, therefore the Taper Direction in X will be Minus towards X Zero) and the magnitude will be the radial amount of taper over the Z travel between the Z Start and Z Finish points.

Regards,

Bill
 
Hello Rob,
At first glance, Doug's code appears to be for an Internal Thread, ie, X Start coordinate being smaller than the Target X and a positive I value. I thinks that's what Seymour was pointing out. However, Doug's X value in the G76 Block is for an External Thread, therefore, the X Start coordinate should be greater than 1.05" and an I value of -0.03484 (-0.03484 is correct as the total Z travel is -1.115)

G00 X.8723 (starting X @ Z0.2 from front of part) Z.2
G76 X.942 (Ø1.05 - 2*K) Z-.915 I.03484 K0.054 D0.013 F.0714 A60 P1.

Regards,

Bill

Guys, just to add to Bill's comment.
The reason he says that the start X value needs to be greater than X1.05 is that the G76 cycle works like this:
At the end of the thread, the tool will pull out ( or taper out if specified ) by the K amount, to an X value of (X-end + (2xK)).
Then, immediately after the pull-out the tool will first rapid back to the X-start point, and only then back to the Z-start point. In separate moves!!!

So, in Doug's example the tool will begin the G76 cycle at X.873
Then ( assuming the I actually was negative ) the tool would properly start the very first pass at a correctly calculated path.
But then!
At the end of the first pass, it will pull out to X1.05 ( X.942 + (2xK(.054))
And then it will promptly rapid back down to X.8723 before rapiding back to Z.2

(After that very last movement is where you kindly hit the big RED button and find a private place to change your shorts while contemplating what went wrong )
 
So, in Doug's example the tool will begin the G76 cycle at X.873
Then ( assuming the I actually was negative ) the tool would properly start the very first pass at a correctly calculated path.
But then!
At the end of the first pass, it will pull out to X1.05 ( X.942 + (2xK(.054))
And then it will promptly rapid back down to X.8723 before rapiding back to Z.2

(After that very last movement is where you kindly hit the big RED button and find a private place to change your shorts while contemplating what went wrong )

Hello Seymour,
The Thread Height and First DOC pass, K and D respectively are unsigned arguments; accordingly, there are no clues there for the control to determine whether the Thread is Internal or External. The control makes this determination by the Start X position, relative to the X value specified in the G76 Block.

Ignoring the taper component for a moment, the control determines where the Major Diameter of an External Thread is by adding 2K to the Minor Diameter specified by X in the G76 cycle. The X coordinate for each Threading Pass is then calculated as follows:

TP = (X + 2K) - (2 x (SQR(N) x D))

Where:
TP = X value of the next Threading Pass
X = Minor Diameter specified in G76 Block (External Thread)
K = Thread Height
N = Nth number of Threading Pass
D = First Pass DOC

Accordingly, in the above algorithm,
1. X + 2K return the Major Diameter of the Thread
2. 2 x (SQR(N) x D) returns a DOC x 2 (to result in a DOC in terms of Diameter) that is applied to the Major Diameter.

The above logic allows the X Start coordinate to be any value whatsoever, larger than the Major Diameter (External Thread) and still take the specified first and subsequent DOC on the work-piece.

The same above applies to an Internal Thread, but in that instance, the control will calculate the Minor Diameter of the Thread based on the Major Diameter of the Internal Thread specified by X in the G76 Block. The Control differentiates between Internal and External Thread simply by the relationship between the X Start coordinate and the X value specified in the G76 Block.

To the control, the values specified by the various addresses are merely numbers. In the case of Doug's code example, X0.942 would be deemed as being the Major Diameter of an Internal Thread due to the X Start position of X.8723 being smaller than X0.942. In this case the Thread would be processed as an Internal Thread. However, there may be some confusion for the control due to the X Start of X.8723 being a greater diameter than the control would calculate the Minor Diameter of the Thread to be.

Regards,

Bill
 
The I value is defined as a radial distance FROM the X-target to the start point, ergo: for OD threads the I will be negative ( X is smaller on the front )

I have another way of saying the same thing:
The radial movement of the tool at the start point is up to the X-value of the target-X PLUS 2xR, in 2-block G76 ("I" in 1-block format)
 
Bill

Since we're writing a dissertation on the subject of lathe threading cycles, let me ask you about the statement in red:
In the case of Doug's code example, X0.942 would be deemed as being the Major Diameter of an Internal Thread due to the X Start position of X.8723 being smaller than X0.942. In this case the Thread would be processed as an Internal Thread. However, there may be some confusion for the control due to the X Start of X.8723 being a greater diameter than the control would calculate the Minor Diameter of the Thread to be.

Regards,

Bill

Are you sure the thread would be processed as an internal?
For a straight thread, yes, it would, but now let's assume that the I was properly signed to be negative such as:

G00 X.8723 Z.2
G76 X.942Z-.915 I-.03484 K0.054 D0.013 F.0714 A60 P1.

I would presume that the control would calculate as follows:
Start point of TOOL is X.8723
Target (minor or major at this point is not yet known) diameter at the END of the thread is X.942
Taper value is I-.03484
Control now calculates the diameter at the START POINT as: X + ( 2 x I ) = .942-(2x.(-03484)) = .8723
Control now determines whether the thread is internal or external by comparing the tool's position at the time of the call:
If:
Position > X-start dia ---> thread is external ---> X-target = minor dia
Position < X-start dia ---> thread is internal ---> X-target = major dia

So, in this case we have an impasse because:
Position = X-start dia ( .8723 = .8723 ), therefore the control by all rights COULD just give an alarm and be absolutely correct to be confused.

But, now let's assume that Doug's example had the following instead:

G00 X.8733 Z.2 ( start is now changed to X.8733 )
G76 X.942Z-.915 I.03484 K0.054 D0.013 F.0714 A60 P1.

Now Position is larger than X-start, ergo : Thread is external, life is good, let's calculate the first pass:

TP = (X + 2K) - (2 x (SQR(N) x D)) + (2 x I ) = (.942 + (2x.054)-(2xSQR(1)x.013)+(2 x (-.03484) = .9543
Meaning that the thread cycle would complete the first pass of the thread:
Start: X.9543 Z.2
End: X1.024 Z-.915

Is the above a correct guess, or am I just completely full of something?
 
Bill
Is the above a correct guess, or am I just completely full of something?
Hello Seymour,
Not full of it, but incorrect. The control makes the determination of whether the thread is Male or Female by the relationship between the X Start coordinate (the X position immediately before executing the G76 Cycle) and the X value specified in the G76 Block; absolutely nothing else. Only one unit of Least Programmable Input either side of the G76 specified X value is required for the control to make this determination. To demonstrate this, I converted the X values of Doug’s code to metric and used them in a program run on a Fanuc controlled lathe that used the Single Line G76 format. I subsequently took pictures of the screen showing the Program, the Position Display of the tool at:

1. the X Start Position
2. the X First Pass Position
and
3. the X Pullout Position before returning to the Z Start Position

However, the pictures turned out too unclear to Post here.

Following is the important grab of the program and an explanation of what occurred. You will note that I’ve included an I address with a value of Zero, used as a comparison with other examples to follow.

G00 Z10.0 T0101
G00 X22.156
G01 Z5.0 F1.0
G76 X23.927 Z-23.0 I0.0 K1.372 D500 F1.014
G28 U0.0
G28 W0.0
M30

When the G76 Block was executed the displayed X Position for the First Pass was X22.183. This value clearly indicates that the X23.927 was being treated as the Major Diameter of an Internal Thread

FPX = 23.927 – 1.372 x 2 + 0.5 x 2
FPX = 22.183

Had the control seen this as an External Thread, the First Pass would have been at X 25.671.

FPX = 23.927 + 1.372 x 2 - 0.5 x 2
FPX = 25.671



The next example used an I value of +1.75 (0.0625 x 28)

G00 Z10.0 T0101
G00 X22.156
G01 Z5.0 F1.0
G76 X23.927 Z-23.0 I1.75 K1.372 D500 F1.014
G28 U0.0
G28 W0.0
M30

When this example was executed, the X Position ready to take the first tapered pass was X25.683

FPX = 23.927 – 1.372 x 2 + 1.75 x 2 + 0.5 x 2
FPX = 25.683

When the tool reached the Z Finish Point, the X display was X22.183

The X display on pullout was X22.156, the X Start coordinate. Had this been a real Internal Thread having a Major Diameter of 23.927 and Thread Height of 1.372, the Threading Tool would have not cleared the Thread for the movement in Z back to the Start Position.

In this next example, an I value of -1.75 was used.

G00 Z10.0 T0101
G00 X22.156
G01 Z5.0 F1.0
G76 X23.927 Z-23.0 I-1.75 K1.372 D500 F1.014
G28 U0.0
G28 W0.0
M30

The results:
1. X Position ready to take the first tapered pass was X18.683
2. When the tool reached the Z Finish Point, the X display was X22.183
3. The X display on pullout was X22.156

The next example used an X Start Position just 0.001mm smaller than the G76 Block specified X value of 23.927 and a plus I value

G00 Z10.0 T0101
G00 X23.926
G01 Z5.0 F1.0
G76 X23.927 Z-23.0 I1.75 K1.372 D500 F1.014
G28 U0.0
G28 W0.0
M30

The results:
1. X Position ready to take the first tapered pass was X25.683
2. When the tool reached the Z Finish Point, the X display was X22.183
3. The X display on pullout was X23.926

The next example used an X Start Position just 0.001mm larger than the G76 Block specified X value of 23.927 and a minus I value.

G00 Z10.0 T0101
G00 X23.928
G01 Z5.0 F1.0
G76 X23.927 Z-23.0 I-1.75 K1.372 D500 F1.014
G28 U0.0
G28 W0.0
M30

The results:
1. X Position ready to take the first tapered pass was X22.171
2. When the tool reached the Z Finish Point, the X display was X25.671
3. The X display on pullout was X23.926

The clear conclusion drawn from the above is that only the relationship between the X Start coordinate and the X value specified in the G76 Block has any bearing on whether the control processed the program for an External, or Internal Thread.

I didn’t test what occurs when the X Start coordinate and the G76 specified X were the same. Given that buttered bread will always land buttered side down and a cat will always land on its feet when each are dropped, perhaps the result may have been the same as when strapping a buttered piece of bread to the back of a cat (buttered side out) and dropping the assembly; the system stays rotating in the air. Add an axle and pulley and you have the makings of a generator drive.


Regards,

Bill
 
Last edited:
i need to put a 3/4-14 od thread and cant figure out how to do it using a g76 on a haas hl-30 lathe .if anyone can help i really need help thanks

You getting any of this?

Some great information has been posted in your thread. I'd suggest using caution when taking everything posted as gospel.

For instance a cat does not always land on its feet. What determines the orientation is drop distance. Buttered bread OTOH gets gobbled up by the dog before it's landing orientation is determined.

I'm not a generator guy so you're on your own with that one.

:leaving:

Brent
 
X-start > X-target : External thread
X-start < X-target : Internal thread
X-start = X-target : Meaningless, possibly an alarm condition.

This has nothing to do with the taper amount.

Like wise,
Z-start > Z-target : Right-to-left passes
Z-start < Z-target : Left-to-right passes
Z-start = Z-target : Meaningless, possibly an alarm condition

The logic is simple : Starting from the initial tool position, the threading passes proceed to reach the specified target point.

This (internal vs external machining) applies to ALL canned cycles.

My research on threading is documented here.
 
X-start = X-target : Meaningless, possibly an alarm condition.

Hello Sinha,
I tested X Start = X Target (G76 Cycle) today and the lathe I used for the test processed it as an Internal Thread with no alarm. This is not to say that it will be the same for all, but interesting that there is no error trap in the software for such a condition.

Regards,

Bill
 








 
Back
Top