What's new
What's new

This single line G76 on a Fanuc 10T is still eating my lunch, per the D(thread depth)

DMSentra

Cast Iron
Joined
Sep 12, 2008
Location
Eugene Oregon
So if D is first pass thread depth what process am I supposed to use to figure out what value to use? It seems to be increasing the per pass depth as it goes. Is there a parameter that sets number of passes or depth of remaining passes also? Depth of first pass seems awfully lacking in being able to control what I want after years of running 2 line G76.
 
Typically it's the largest depth of cut the tool will tolerate. Each pass thereafter should be less than the previous pass. Not knowing what size of machine you have probably somewhere between .015" to .030" would be reasonable.

Maybe Bill will show up with a better explanation to what you're asking?

How's it eating your lunch? What kind of problems are you having?

Brent
 
So if D is first pass thread depth what process am I supposed to use to figure out what value to use? It seems to be increasing the per pass depth as it goes. Is there a parameter that sets number of passes or depth of remaining passes also? Depth of first pass seems awfully lacking in being able to control what I want after years of running 2 line G76.

Hello DMSentra,
As suggested by Brent, the First Depth Of Cut is determined by what the cutting tool and the work set up can handle; having a small initial DOC will simply result in more Threading Passes.

Each successive DOC is based on the First DOC, with the following algorithm used by the control to calculate the DOC applied from the Major Diameter and Minor Diameter of an External and Internal Thread respectively.

DOC = SQR(N) x D
Where:
N = The nth Threading Pass (1,2,3, etc)
D = First Threading Pass Depth of Cut

The Depth of the first Threading Pass DOC is no more lacking in the single line G76 cycle (FS15 Format) than the two line version (FS16 Format). Each use the same algorithm shown above in setting each successive DOC.

With a thread that has a large Thread Height, the above algorithm left unchecked would result in the incremental difference between the current and previous DOC eventually equaling the Least Programmable Increment of the control (generally 0.001mm and 0.0001") and unnecessary Threading Passes. With the two line G76 Cycle (FS16 Format), the minimum DOC can be set via the "Q" address of the first G76 Block, or parameter 5140 that the "Q" address writes to. With the one line G76 Cycle (FS15 Format), the minimum DOC is set via parameter 6218.

You can check if each successive DOC is being applied correctly by calculating the DOC yourself using a pocket calculator. Lets say the "D" address is specified as 0.030", then the first, second and third DOC will be as follows:

1ST DOC = SQR(1) x 0.030
1ST DOC = 0.030

2ND DOC = SQR(2) x 0.030
2ND DOC = 0.0424

3RD DOC = SQR(3) x 0.030
3RD DOC = 0.052

and so it goes on until the difference between the current calculated DOC and previous DOC is =< than the value set in parameter 6218. At that point, all subsequent DOC will be the value set in the parameter until the X value specified in the G76 Cycle Block is reached.

All DOC are applied from the Major or Minor diameter of the External or Internal Thread being cut. The control calculates the Major or Minor Diameter (depending on whether an External or Internal Thread is being cut) by applying twice the Thread Height (specified by address K), to the X value specified in the G76 Cycle Block.



Regards,

Bill
 
Hello DMSentra,
As suggested by Brent, the First Depth Of Cut is determined by what the cutting tool and the work set up can handle; having a small initial DOC will simply result in more Threading Passes.

Each successive DOC is based on the First DOC, with the following algorithm used by the control to calculate the DOC applied from the Major Diameter and Minor Diameter of an External and Internal Thread respectively.

DOC = SQR(N) x D
Where:
N = The nth Threading Pass (1,2,3, etc)
D = First Threading Pass Depth of Cut

The Depth of the first Threading Pass DOC is no more lacking in the single line G76 cycle (FS15 Format) than the two line version (FS16 Format). Each use the same algorithm shown above in setting each successive DOC.

With a thread that has a large Thread Height, the above algorithm left unchecked would result in the incremental difference between the current and previous DOC eventually equaling the Least Programmable Increment of the control (generally 0.001mm and 0.0001") and unnecessary Threading Passes. With the two line G76 Cycle (FS16 Format), the minimum DOC can be set via the "Q" address of the first G76 Block, or parameter 5140 that the "Q" address writes to. With the one line G76 Cycle (FS15 Format), the minimum DOC is set via parameter 6218.

You can check if each successive DOC is being applied correctly by calculating the DOC yourself using a pocket calculator. Lets say the "D" address is specified as 0.030", then the first, second and third DOC will be as follows:

1ST DOC = SQR(1) x 0.030
1ST DOC = 0.030

2ND DOC = SQR(2) x 0.030
2ND DOC = 0.0424

3RD DOC = SQR(3) x 0.030
3RD DOC = 0.052

and so it goes on until the difference between the current calculated DOC and previous DOC is =< than the value set in parameter 6218. At that point, all subsequent DOC will be the value set in the parameter until the X value specified in the G76 Cycle Block is reached.

All DOC are applied from the Major or Minor diameter of the External or Internal Thread being cut. The control calculates the Major or Minor Diameter (depending on whether an External or Internal Thread is being cut) by applying twice the Thread Height (specified by address K), to the X value specified in the G76 Cycle Block.



Regards,

Bill

Thanks, Bill. I'm missing where the number of passes comes into this. Is that a set parameter value?
 
DOC = SQR(N) x D
Where:
N = The nth Threading Pass (1,2,3, etc)
D = First Threading Pass Depth of Cut

...

1ST DOC = SQR(1) x 0.030
1ST DOC = 0.030

2ND DOC = SQR(2) x 0.030
2ND DOC = 0.0424

3RD DOC = SQR(3) x 0.030
3RD DOC = 0.052

and so it goes on until the difference between the current calculated DOC and previous DOC is =< than the value set in parameter 6218. At that point, all subsequent DOC will be the value set in the parameter until the X value specified in the G76 Cycle Block is reached.


Bill

Congrats Bill, you've just confused the hell out of me!!!
I believe there needs to be some clarification to your definition of DOC ( depth of cut )

Allow me to attempt, using your example:
First Depth Of Cut = .03. This is the value defined by the D word. The actual X value is @ X-minor + 2xK - 2xD
Second Depth Of Cut = .0124 ( .0424-.030 )
Third Depth Of Cut = .0096 ( .052-.0424 )

This goes on and on and on, until one of the following is true:
Actual X value is equal or less than the X-minor, at which point the pass will be @ X-minor
OR
The calculated DOC ( using my formula ) is equal or less than Parameter 6218, at which point all successive passes will be reduced by the value in Par 6218

Or ... am I just really stupid :toetap:
 
Thanks, Bill. I'm missing where the number of passes comes into this. Is that a set parameter value?

The number of passes are calculated and are not something that is directly defined.
As per Bills description, each successive pass will be on the X-diameter as calculated by the formula.
There are 2 ways I can think of how to alter the number of passes:
1: Change your D value. A small D value makes many passes, a larger one less.
2: Lie to the control by changing the K value. A large K value takes more passes, a small one takes less.

Most often #1 is the right way to go, but that may result in an insanely large initial DOC, which breaks the very tip of the insert.
In that case increasing the K value causes a smaller first depth, but still allow for a decent successive depths between passes.
 
Congrats Bill, you've just confused the hell out of me!!!
I believe there needs to be some clarification to your definition of DOC ( depth of cut )

Allow me to attempt, using your example:
First Depth Of Cut = .03. This is the value defined by the D word. The actual X value is @ X-minor + 2xK - 2xD
Second Depth Of Cut = .0124 ( .0424-.030 )
Third Depth Of Cut = .0096 ( .052-.0424 )

This goes on and on and on, until one of the following is true:
Actual X value is equal or less than the X-minor, at which point the pass will be @ X-minor
OR
The calculated DOC ( using my formula ) is equal or less than Parameter 6218, at which point all successive passes will be reduced by the value in Par 6218

Or ... am I just really stupid :toetap:

I figured his DOC values were probably (starting X - current X) values but I'm still lost on doesn't there need to be a number of passes in the parameters to determine how much smaller each successive cut is?
 
I figured his DOC values were probably (starting X - current X) values but I'm still lost on doesn't there need to be a number of passes in the parameters to determine how much smaller each successive cut is?

"Most often #1 is the right way to go, but that may result in an insanely large initial DOC, which breaks the very tip of the insert."
Which is one of the 2 problems I'm getting beat up by. The other is if I choose a higher D value the first few cuts are fine but as it gets into the meat the cuts are too heavy.
Seems whomever programmed these controls doesn't run the machines. Side topic is per G73. There should be a value or given rule in the control that the cut doesn't start above the start position X or Z so it won't cut tons of air.
 
Well, there is always G92 to help out...
In the G92 cycle the X amount for each pass is absolutely 100% in your control.

I use it all the time on bitchy ( Inco ) threads, where the standard spring passes result in chatter on the flanks.
 
Well, there is always G92 to help out...
In the G92 cycle the X amount for each pass is absolutely 100% in your control.

I use it all the time on bitchy ( Inco ) threads, where the standard spring passes result in chatter on the flanks.

On a tapered thread is X the only change per line or is there another value you need to change also?
 
G0G54X3.125Z.5T505
G76X2.701Z-3.125I-4531K1178D100P3A60F.2
I just ran this with an empty spindle and the I value blanked out so I could watch the X value easily. This makes .02" X changes(.01" per side) every pass except I didn't do the math on the last passes. It also takes a .03" change in X when using D150. Same with D225. There is no change in the amount of cut depth as the process goes on. This machine is reading the D value as a cut depth per side for generally every pass, not per the first pass at all.
No wonder it confuses the hell out of me after reading everything I've found on the topic, which includes the manual. It specifically labels the D value as pertaining to the first pass.
 
It also takes a .03" change in X when using D150. Same with D225. There is no change in the amount of cut depth as the process goes on. This machine is reading the D value as a cut depth per side for generally every pass, not per the first pass at all.

Did you mean to write a constant .045 DOC with D225?

What is the machine and control?
 
Did you mean to write a constant .045 DOC with D225?

What is the machine and control?

Correct, I meant the same doubling as the smaller D values happened on D225 for .045" diameter change.
Wasino LJ63M with Fanuc 10T. This control is just plain weird in several aspects compared to the other Fanuc's I've run.
Depth of cut to me is how much material that insert is taking off, in this case that's 0.0225" per side.
 
Correct, I meant the same doubling as the smaller D values happened on D225 for .045" diameter change.
Wasino LJ63M with Fanuc 10T. This control is just plain weird in several aspects compared to the other Fanuc's I've run.
Depth of cut to me is how much material that insert is taking off, in this case that's 0.0225" per side.


No argument from me on the DOC. .0225/side is a .045 on dia in my book.
Perhaps Wasino either re-wrote the G76 cycle from Fanuc, OR they added some subroutines that whenever a G76 line is called, the D value
overwrites the value stored in the Min DOC parameter...

Just for shits and giggles... what happens when you omit the D-word from the G76 block?
 
Hmm, haven't tried that, but I will.
Any way to get a second spring pass out of it? Have to check that too but I think 1 is all I get and 2 would be nice sometimes.
 
Nahh.. There is no way to define anything more spring passes with the single block G76 line ...
Unfortunately, you are stuck with a G92 for that on a Fanuc.

On a Haas you can define the main threading with a G76, but use G92 to spring-pass as many times and wherever your heart desires.
 
Congrats Bill, you've just confused the hell out of me!!!
I believe there needs to be some clarification to your definition of DOC ( depth of cut )

Allow me to attempt, using your example:
First Depth Of Cut = .03. This is the value defined by the D word. The actual X value is @ X-minor + 2xK - 2xD
Second Depth Of Cut = .0124 ( .0424-.030 )
Third Depth Of Cut = .0096 ( .052-.0424 )

This goes on and on and on, until one of the following is true:
Actual X value is equal or less than the X-minor, at which point the pass will be @ X-minor
OR
The calculated DOC ( using my formula ) is equal or less than Parameter 6218, at which point all successive passes will be reduced by the value in Par 6218

Or ... am I just really stupid :toetap:

Hello SeymourDumore,

Both apply throughout the threading operation. The DOC is calculated as outlined in my previous Post using the following algorithm:

DOC = SQR(N) x D
Where:
N = The Nth Threading Pass
D = First DOC as specified in the G76 Cycle

All DOC are applied as per example following. The First DOC is calculated using the same algorithm and as the SQR(1)(1 being the first Nth Threading Pass) is 1 then the DOC calculated will be the same as the first DOC specified by address D in the G75 Cycle Block.

DOC = SQR(N) x D

X Coordinate = X-minor + 2xK - 2xDOC

After each DOC calculation, a comparison is made between the current calculated DOC and the previous DOC. If its equal to or less than the minimum DOC set in Parameter 6218, then the value specified in this parameter will be used to increment the DOC until the X value is equal or less than the X-minor value Specified in the G76 Cycle. If the X value obtained by the next increment of the DOC by the minimum value set in Parameter 6218, is less than the X value specified in the G76 Cycle Block, then the Threading Pass will be made at the X Coordinate specified by the X value specified in the G76 Block.

Regards,

Bill
 
"Most often #1 is the right way to go, but that may result in an insanely large initial DOC, which breaks the very tip of the insert."
Which is one of the 2 problems I'm getting beat up by. The other is if I choose a higher D value the first few cuts are fine but as it gets into the meat the cuts are too heavy.
Seems whomever programmed these controls doesn't run the machines. Side topic is per G73. There should be a value or given rule in the control that the cut doesn't start above the start position X or Z so it won't cut tons of air.

Hello DMSentra,
If you're familiar with the two Block format of the G76 Cycle, then you should be aware that there is no setting for the number of Threading Passes to be made, except for the number of spring cuts that are to be performed.

SeymourDumore's examples of how top reduce the number of Threading passes will both result in a heavy First DOC; his number 2 suggesting will result in the heaviest DOC, given a similar D value specified for each method.

1: Change your D value. A small D value makes many passes, a larger one less.
2: Lie to the control by changing the K value. A large K value takes more passes, a small one takes less.


In example #2 above, if a smaller K (Thread Height) than actual is specified, the Control will calculate a smaller Major Diameter than actual and therefore, the first Threading Pass will have a DOC equal to the difference in the Actual Major Diameter and the Major Diameter Calculated by the Control, plus the DOC specified by the D address in the G76 Cycle Block.

Whether the Thread being cut has a large or small actual Thread Height, the First DOC is determined by the amount the Threading Insert and the set up can tolerate. Accordingly, its often the case that the First DOC for the Thread having a large Thread Height is the same as a Thread having a relatively small Thread Height. Because the DOC uses the D address value (First Pass DOC) specified in the G76 Block, as the constant in the DOC algorithm, the trick is to have the D value as large as possible.

As already stated, the D value can only be a much as the threading insert can handle, however, there is a way that a larger than normal D value can be specified without overloading the Threading Insert.

Lets say the following for an M36 x 4 External Thread:

1. the actual Thread Height 2.643mm
2. the First DOC specified by the "D" address is 0.8mm
3. the Minor Diameter specified by X in the G76 Block is 30.654mm

In this case the Major Diameter would be calculated by the Control to be 35.94mm. Using these actual values, the X coordinate of the First Threading Pass will be as follows:

DOC = SQR(1)x0.8
DOC = 0.8
X = 30.654+2.643x2-0.8x2
X = 34.34

All subsequent DOC will be calculated using the constant of 0.8 in the algorithm.

If one were to specify a Thread Height that was 0.5mm greater than actual and the First DOC specified by the "D" address in the G76 Block was also increased by 0.5mm, the following would result:

DOC = SQR(1)x1.3
DOC = 1.3
X = 30.654+3.143x2-1.3x2
X = 34.34

You can see that the X coordinate for the First Threading Pass in both examples is the same and that the actual DOC applied to the actual Major Diameter of the work-piece is the same; the extra 0.5mm of First Pass DOC specified by the "D" address is taken up in fresh air. The advantage is that each successive DOC is base on the algorithm using 1.3mm instead of 0.8mm as the constant and therefore, it will take more cuts before reaching the minimum (reasonable) DOC and therefore, the overall number of Threading Passes will be reduced. Care must be taken, of course, that the second Threading Pass DOC is not too great for the insert. A little bit of tweaking is required to get the best false Thread Height and First DOC value, but its not that hard once you've used this system a few times. I initially wrote a simple software app that came up with the best Thread Height and "D" value, based on the Second Threading Pass DOC being a particular value.

Regards,

Bill
 
Hello DMSentra,
If you're familiar with the two Block format of the G76 Cycle, then you should be aware that there is no setting for the number of Threading Passes to be made, except for the number of spring cuts that are to be performed.

SeymourDumore's examples of how top reduce the number of Threading passes will both result in a heavy First DOC; his number 2 suggesting will result in the heaviest DOC, given a similar D value specified for each method.

1: Change your D value. A small D value makes many passes, a larger one less.
2: Lie to the control by changing the K value. A large K value takes more passes, a small one takes less.


In example #2 above, if a smaller K (Thread Height) than actual is specified, the Control will calculate a smaller Major Diameter than actual and therefore, the first Threading Pass will have a DOC equal to the difference in the Actual Major Diameter and the Major Diameter Calculated by the Control, plus the DOC specified by the D address in the G76 Cycle Block.

Whether the Thread being cut has a large or small actual Thread Height, the First DOC is determined by the amount the Threading Insert and the set up can tolerate. Accordingly, its often the case that the First DOC for the Thread having a large Thread Height is the same as a Thread having a relatively small Thread Height. Because the DOC uses the D address value (First Pass DOC) specified in the G76 Block, as the constant in the DOC algorithm, the trick is to have the D value as large as possible.

As already stated, the D value can only be a much as the threading insert can handle, however, there is a way that a larger than normal D value can be specified without overloading the Threading Insert.

Lets say the following for an M36 x 4 External Thread:

1. the actual Thread Height 2.643mm
2. the First DOC specified by the "D" address is 0.8mm
3. the Minor Diameter specified by X in the G76 Block is 30.654mm

In this case the Major Diameter would be calculated by the Control to be 35.94mm. Using these actual values, the X coordinate of the First Threading Pass will be as follows:

DOC = SQR(1)x0.8
DOC = 0.8
X = 30.654+2.643x2-0.8x2
X = 34.34

All subsequent DOC will be calculated using the constant of 0.8 in the algorithm.

If one were to specify a Thread Height that was 0.5mm greater than actual and the First DOC specified by the "D" address in the G76 Block was also increased by 0.5mm, the following would result:

DOC = SQR(1)x1.3
DOC = 1.3
X = 30.654+3.143x2-1.3x2
X = 34.34

You can see that the X coordinate for the First Threading Pass in both examples is the same and that the actual DOC applied to the actual Major Diameter of the work-piece is the same; the extra 0.5mm of First Pass DOC specified by the "D" address is taken up in fresh air. The advantage is that each successive DOC is base on the algorithm using 1.3mm instead of 0.8mm as the constant and therefore, it will take more cuts before reaching the minimum (reasonable) DOC and therefore, the overall number of Threading Passes will be reduced. Care must be taken, of course, that the second Threading Pass DOC is not too great for the insert. A little bit of tweaking is required to get the best false Thread Height and First DOC value, but its not that hard once you've used this system a few times. I initially wrote a simple software app that came up with the best Thread Height and "D" value, based on the Second Threading Pass DOC being a particular value.

Regards,

Bill

Hi Bill.
Did you see my post above where I did the math on the DOC changes as it ran and found throughout the meat of the process there was no change and every pass changed the same X amount? Since that isn't what is what you're saying should happen I'd like to know why, and I don't understand the P commands either so thought that may be why??
As I finished this run of parts up I was running D60 and P3 and it was working well. Not a terribly light cut, somewhere around 10 passes( I didn't count them) and that setup gave me good confidence of reliability.
 








 
Back
Top