What's new
What's new

Fanuc G76 Thread Line 1 Clarity/ F15 Format Use

13engines

Stainless
Joined
Jun 30, 2015
Location
Saint Paul, MN
I know there are scattered posts about this and I've gotten some good things from them, but I find it hard to get answers to specific questions. Even Youtube has little to nothing unless you can understand an East Indian accent.

I'm writing my first G76 cycle and want to clarify a few things right off the top that I can use forever and ever when threading.

Machine - 2000 Mori Seiki SL-200SMC / Fanuc 18iTA / Mori MSC501

G76P00**##Q_ R_
G76X_ Z_ R_ P_ Q_ F_ - All of these I understand.

First G76 line:

P00 - Finish/Spring passes. 01-99 _ Get it.

1) While we're here... 303/304/316 Stainless. No more then one spring pass? No springs?

** - Chamfer Size 0.0-9.9 times thread lead. (01-99) _Get it.

## - Thread Angle. (80/60/55/30/29/0 allowed)

1) Is this the finished angle of the thread and the machine takes care of the infeed angle of say 29 1/2 or 29 for 60 degree like you'd do on a manual lathe for one sided cutting? Or - is this simply the thread angle with X only infeed as the norm?

2) Is this the infeed angle, and the finish angle of the thread is completely described by the shape of the insert used or combination of the two? If so do most people use 29 or 30 for a 60 degree thread? A YouTube video by Tom Stikkelman says this setting is the infeed angle, which has me asking. My books call it thread angle. Infeed actions not discussed in relation.

Q - Minimum Cut/ R - Finish allowance. None of my books say this directly so I seek 100% clarity. I believe these are radius and are stated without a decimal point in the Least Input Increment. Correct? If so, is that number read according to which state the machine is in at the time, (Imperial 0000 or Metric 000) or by the "type" of machine? Meaning I have many parameter settings that are metric, and all of the first G76 line settings are stored in parameters which are used by default if not expressed in the program. Confusing as to in what measurement system these are acted upon.

Switching machine to F15 format:

By changing parameter 0001.1 to 1, this machine can be switched to the more advanced F15 control mode for threading and a lot of other cycles. Is this something people do with machines of this capability? Even to the extent of F15 mode for threading so you can use the Zig-Zag (P) selected infeed type functionalities, and then switching back to F16/18 for everything else? Is anyone running their O/16/18 machines all the time in F15 mode? Any reason(s) you wouldn't want to?

To me the Zig-Zag mode seems like the way to go, but I also see it as potentially less accurate then the normal mode. Why you ask? In normal mode what you're getting without actually calling it is Single Direction Positioning. Technically an option on many machines, and not normally hand programmed in general use. At least not on a mill. I can see that if your machine is loose or backlash comps are off, the potential is there for poor thread creation with the Zig-Zag method. I'm curious if the Zig-Zag method reverts to one direction only for the finish or spring passes where the errors previously created could be trimmed out in finishing. That is if they weren't too great to begin with. Anyone have trouble with Zig-Zag? Is it the bees knees, or just something few bother to use?

I really appreciate any clarifications offered.

As per usual my posts get long. Sorry.

Dave
 
Last edited:
## - Thread Angle. (80/60/55/30/29/0 allowed)

1) Is this the finished angle of the thread and the machine takes care of the infeed angle of say 29 1/2 or 29 for 60 degree like you'd do on a manual lathe for one sided cutting? Or - is this simply the thread angle with X only infeed as the norm?
Hello Dave,
Its a compound move the same as on a manual lathe with the compound slide set at an angle of half the included angle of the thread form from perpendicular to the machine centre line. With the G76 cycle, you specify the Included Angle of the Threading Tool (the same as the Included Angle of the Thread Form.

If the Thread Angle is 60deg, and 60 deg was specified in the G76 cycle, then all the cutting would occur on the leading flank of the Thread Form. Particularly on coarse pitch threads, with a large Thread Height, a poor finish on the trailing flank, with slight steps can result. Accordingly, its common to specify a Thread Angle slightly less than actual so that a light cut will be taken by the trailing edge of the threading insert. For example, with a 60deg thread form, 55 could be specified in the G76 cycle.

2) Is this the infeed angle, and the finish angle of the thread is completely described by the shape of the insert used or combination of the two? If so do most people use 29 or 30 for a 60 degree thread? A YouTube video by Tom Stikkelman says this setting is the infeed angle, which has me asking. My books call it thread angle. Infeed actions not discussed in relation.

Mr. Stikkelman is wrong, as are so many Youtube videos. Its the Included Angle of the Thread form, or as described in the Fanuc Manual as "Angle of Tool Tip"

Q - Minimum Cut/ R - Finish allowance. None of my books say this directly so I seek 100% clarity. I believe these are radius and are stated without a decimal point in the Least Input Increment? Correct? If so, is that number read according to which state the machine is in at the time? (Imperial 0000 or Metric 000) Or by the "type" of machine. Meaning I have many parameter settings that are metric. And all of the first G76 line settings are stored in parameters which are used by default if not expressed in the program. Confusing about in what measurement system are these acted upon?

Its the Least Programmable Increment Increment of the current measuring system. The values stored in parameter are not converted when G20/G21 is specified at the Head of the program. Accordingly, you need to take care when using programs where a different measuring system, G20/G21, has been specified, that these parameters are updated with correct data by manual modification, or by including the specification in the first G76 Command Line.

Switching machine to F15 format:

By changing parameter 0001.1 to 1, this machine can be switched to the more advanced F15 control mode for threading and a lot of other cycles. Is this something people do with machines of this capability? Even to the extent of F15 mode for threading so you can use the Zig-Zag (P) selected infeed type functionalities, and then switching back to F16/18 for everything else? Is anyone running their O/16/18 machines all the time in F15 mode? Any reason(s) you wouldn't want to?

To me the Zig-Zag mode seems like the way to go, but I also see it as potentially less accurate then the normal mode. Why you ask? In normal mode what you're getting without actually calling it is Single Direction Positioning. Technically an option on many machines, and not normally hand programmed in general use. At least not on a mill. I can see that if your machine is loose or backlash comps are off, the potential is there for poor thread creation with the Zig-Zag method. I'm curious if the Zig-Zag method reverts to one way only for the finish or spring passes where the errors previously created could be trimmed out in finishing. That is if they weren't too great to begin with. Anyone have trouble with Zig-Zig? Is it the bees knees? Or just something few bother to use?

The FS15 Format in Threading is better in a number of ways, but some features, such as Minimum Depth Of Cut that can be set in the first G76 command line of the FS16 Format, can only be set by modifying the value held in parameter when using FS15 Format. Apart from Threading pattern you mentioned, being able to index the Start Angle of the Thread for a Multi Lead Thread using a "Q" address is useful when moving the Z Start point is not an option. The Included Angle of the Thread Form (Tool Tip Angle) can also be specified in 1deg increments from Zero to 120degs.

Regards,

Bill
 
Thanks a million Bill. Clarity found. They don't call you angel for nothing.

Before I seek more input below, do you know the address or call format to change parameter 0001.1 on the fly so I could go in and out of FS15 format ahead of and after my threading cycle? That way it wouldn't affect any other Multiple Repetitive Cycles that might also be in the same program. Or is the functionality of the 18iTA control such that if I change to FS15 format permanently, but occasionally use a two line format for a cycle call, it will automatically use the FS16/18 inherent to a two line call and also act accordingly and use the FS15 format in a one line call? Although doubtful, that would be ideal.

Along those lines -

I'm not at all new to programming, but as can be inferred by my first time G76 programming attempt, I am new to lathe programming and the machine that goes with it. I'd like to ask opinions of skilled lathe operators/programmers if turning this machine over to the FS15 format and leaving it there could be looked at as putting things on the plus side overall. Or is it like most things in that compromises are still inevitable?

If there is a time for change with me it would be now. I'm still very new to the programming and operations of this lathe, so nothing is yet engraved in my brain like things are with mill programming. Getting over the G-code changes that revealed themselves when switching to a G-Code System A lathe has been bad enough. I'm still cheat sheet bound because of them.

I've noticed all the FS15 programming formats along side the FS16/18 ones in my manuals. I've paid them some mind but have not used them in production. In that short time I've looked them over, they seem to offer a "better way," for no better way to put it. I am a one, sometimes two man shop. There is no one not under my direct supervision that will ever touch or program these machines. I'm still fresh and malleable in my lathe programming. Sounds like if there was ever a chance to go full on FS15, and even G-code system B to put G98 and G99 back to where they belong it would be me and now.

I'm open to reasons as to whether this is a good or bad idea.

Thanks to any and all for their experience(s).

Another bomber... damn.

Dave
 
The only time I've felt a need or want to switch to FS15 is threading. Having the different threading patterns with FS15 would be nice in certain rare situations but everything else in the two line cycle I see as a upgrade from FS15.

Its handy to be able to tweak retract distances in the 2 line G71/G72 cycles right in the program. Back when FS15 was all there was I didn't know these retract distances were able to be adjusted by altering parameters.

The 2 line cycles let you mess with these parameters in the program without using a macro statement in front of the cycle. I see this as a advantage over the FS15 format.

I metric thread by converting all the metric thread data to imperial number so I don't jack with switching back and forth. I see that as potentially a screw up waiting to happen. Pick one and stay.

Since your just getting up and going pay a little attention to how or if your control uses TNRC during type 2 canned cycles. I find I like to account of the trailing edge of the insert manually in the tool path itself. It seems I end up short on leaving enough stock for finish if I don't.

As for G code systems my opinion is that G99 should always be ipr and G98 ipm. Lol...

Brent
 
Thanks a million Bill. Clarity found. They don't call you angel for nothing.

Before I seek more input below, do you know the address or call format to change parameter 0001.1 on the fly so I could go in and out of FS15 format ahead of and after my threading cycle? That way it wouldn't affect any other Multiple Repetitive Cycles that might also be in the same program. Or is the functionality of the 18iTA control such that if I change to FS15 format permanently, but occasionally use a two line format for a cycle call, it will automatically use the FS16/18 inherent to a two line call and also act accordingly and use the FS15 format in a one line call? Although doubtful, that would be ideal.

Hello Dave,
You can used G10, PROGRAMMABLE PARAMETER ENTRY to change parameter settings on the fly. The format is as follows:
G10 L50 (Parameter entry mode setting)
N_R_ (For parameters setting other than axis parameters)

Where:
N = Parameter Number
R = Parameter Setting Value (Decimal or Binary - whichever applies)

G11 (Parameter entry mode cancel)

To maintain the ability to tweak the G76 parameters, as is available with the FS16 Format, I would set the control to FS15 Format by calling a User Macro G76 Cycle with a Custom G Code such as G176. You could pass as arguments, all the parameter values used in the first Command Line of the FS16 Format, update the parameters using G10, Programmable Parameter Entry in the Macro and call the FS15 G76 Cycle in the Macro, using its required data passed by the Macro Call Command Block.

Using the above thinking, G176 would be registered in parameters to call a corresponding Macro Program. In the Macro Program, G10 Programmable Parameter Entry would be used to set FS15 Format, and all parameters normally set via the first G76 Command Line of the two Line G76 formal. Any that were omitted in the Call Block would be left unchanged, the same as is the case with the FS16 Format G76 Cycle.

The G76 Cycle would then be called from within the Macro and after completion of the Thread Cycle, immediately before returning control to the Main Program, G10 Programmable Parameter Entry would be used to set the control back to FS16 Format.

I agree with Brent regarding simply converting one thread type (metric/imperial) to whatever unit system you normally use. G20/G21 should only be used at the Head of the program and must bot be changed elsewhere in the program.

Regards,

Bill
 
To maintain the ability to tweak the G76 parameters, as is available with the FS16 Format, I would set the control to FS15 Format by calling a User Macro G76 Cycle with a Custom G Code such as G176. You could pass as arguments, all the parameter values used in the first Command Line of the FS16 Format, update the parameters using G10, Programmable Parameter Entry in the Macro and call the FS15 G76 Cycle in the Macro, using its required data passed by the Macro Call Command Block.

Using the above thinking, G176 would be registered in parameters to call a corresponding Macro Program. In the Macro Program, G10 Programmable Parameter Entry would be used to set FS15 Format, and all parameters normally set via the first G76 Command Line of the two Line G76 formal. Any that were omitted in the Call Block would be left unchanged, the same as is the case with the FS16 Format G76 Cycle.

The G76 Cycle would then be called from within the Macro and after completion of the Thread Cycle, immediately before returning control to the Main Program, G10 Programmable Parameter Entry would be used to set the control back to FS16 Format.

Regards,

Bill

Hello Bill,

So whichever program is called by G176 would be unique to each individual thread being cut at the time? That is a pretty good idea!

Brent
 
Hello Bill,

So whichever program is called by G176 would be unique to each individual thread being cut at the time? That is a pretty good idea!

Brent

Hello Brent,
You would write the G176 Block in the Main program in the same manner you would the Single Block Format G76 cycle, with the addition of the arguments that are specified with the first Block of the two line G76 cycle (FS16 Format). Once the Macro is registered, G176 will be written and called just like other Threading Cycles. The standard FS16 Format G76 will still be available.

Regards,

Bill
 
When hitachi seiki came out with there multi sieki control back in 1990 they have 4 threading cycles that you could pic from. one slide down the back side pushing foward one was a straight down g33? one was a zigzag so to speak. forget the other it might have been a normal one like g76.
The zigzag one worked best for deep threads and J threads as it elminated alot of chatter due to the way it cut. since we mainly did J threads on inco ,Tit and other nickle alloys we used it alot.

I never used anythign other than the g76 on a fanuc control. but that zigzag ones sounds close to the old sekios way and it was one main reasons they bought the machine in the 1st place.
 
I never used anythign other than the g76 on a fanuc control. but that zigzag ones sounds close to the old sekios way and it was one main reasons they bought the machine in the 1st place.

Hello Delw,
Actually, the "old sekios way" was the same as the Fanuc, the Sekios control came quite some time later to when the various Thread Patterns, specified via a P address 1 to 4 inclusive, was available.

Regards,

Bill
 
Wonder why single line G76 is referred to as "F15 format" when single line G76 was used at least as far back as the 2000C control of the late 70s?

As I understood it or assumed it was the different Fanuc releases of control versions in consecutive numbers and not so much specifically the canned cycles. It just so happens that when discussing canned cycles is when the different FS15 FS16 seem to come up. I suppose this is more my guess than anything. Good question.

Brent
 
Or maybe the F16 is when the 2 line cycle first came out and since the 1 line cycle has been around since forever then by saying F15 it refers to everything before that? Hell I'm grasping at straws now. Lol

I've always wondered what the "i" stood for in all the i series Fanuc controls.

Brent
 
Or maybe the F16 is when the 2 line cycle first came out and since the 1 line cycle has been around since forever then by saying F15 it refers to everything before that? Hell I'm grasping at straws now. Lol

I've always wondered what the "i" stood for in all the i series Fanuc controls.

Brent

Hello Brent,
You hit the nail on the head. You're absolutely right in your comment "Hell I'm grasping at straws now":D

The two line, Multi-repetitive cycles were introduced with the circa 1985, FS0 control; a couple of years before the FS15 control and 5 years, or so before the FS16 control.

Heck! I'm still trying to workout why dyslexia is hard to spell and the time line on when the first person said "the next thing that comes out of that chicken's arse, I'm going to eat.":scratchchin:

Regards,

Bill
 
Here's another to ponder....

On the old 2000C one could express thread lead to an effective 6 places right of the decimal in G76 using address E. IIRC, that carried on through the F15, but after that was limited to 4 places using address F.
 
Here's another to ponder....

On the old 2000C one could express thread lead to an effective 6 places right of the decimal in G76 using address E. IIRC, that carried on through the F15, but after that was limited to 4 places using address F.

I did not know this. I just kept on carrying the lead or F out 6 places when I started using the 2 line cycle. I do the same for taps also.

Brent
 
The only time I've felt a need or want to switch to FS15 is threading. Having the different threading patterns with FS15 would be nice in certain rare situations but everything else in the two line cycle I see as a upgrade from FS15.

As for G code systems my opinion is that G99 should always be ipr and G98 ipm. Lol...

Brent

Thanks a lot Brent for your thoughts about FS15 vs FS16/18 in response #4 that's partially represented here just above. I think I'll follow your lead but also stick with Bill's idea about creating a special M call for FS15 Format while threading.

Still thinking G-Code System B stands for "Best." In my mill grown brain, G98 and G99 should always be about retract plane in a Fixed Cycle. G94 and G95 sound like perfect replacements for your beloved feed modes. (Something mill programming seldom bothers with.) In my mind they're blank spaces waiting to be filled with meaning that doesn't have meaning elsewhere. It would be sad to see G50 go to G92 as I'm kind of getting used to that one. But still...

Hello Dave,

To maintain the ability to tweak the G76 parameters, as is available with the FS16 Format, I would set the control to FS15 Format by calling a User Macro G76 Cycle with a Custom G Code such as G176. You could pass as arguments, all the parameter values used in the first Command Line of the FS16 Format, update the parameters using G10, Programmable Parameter Entry in the Macro and call the FS15 G76 Cycle in the Macro, using its required data passed by the Macro Call Command Block.

Using the above thinking, G176 would be registered in parameters to call a corresponding Macro Program. In the Macro Program, G10 Programmable Parameter Entry would be used to set FS15 Format, and all parameters normally set via the first G76 Command Line of the two Line G76 formal. Any that were omitted in the Call Block would be left unchanged, the same as is the case with the FS16 Format G76 Cycle.

The G76 Cycle would then be called from within the Macro and after completion of the Thread Cycle, immediately before returning control to the Main Program, G10 Programmable Parameter Entry would be used to set the control back to FS16 Format.

Regards,

Bill

Bill,

Thank you for all the information on creating an G-Code to activate FS15 format for threading. Sounds like a plan, but at this moment all I can say is... GULP!

This is more then a simple on the fly parameter change and then change it back. This is writing an actual Macro isn't it? I've been wanting to write my first Macro and I guess there's no time like the present. The concept I get so that will help. The syntax and brain burning of writing my first Macro is another thing.

What seems obvious is that writing the following...

G76PXXXXXXQR
G176X_Z_I_K_D_F_A_P_
G53X0.

... will get me nowhere? The G176 will cause the program to leave to my G10G50NR stuff stored in say O9010, and come back to the G53 line while ignoring everything after the G176. It is much more complicated then that if I'm following here.

What I'm struggling with at this minute is how do I keep from having my special threading cycle not be resident on the machine in program O9010. I mean that's not where I want to go to write a threading call every time one comes along. I know that's not what you've suggested and I'll figure this all out eventually.

Now after all this I read this from Bill.

Hello Brent,
You would write the G176 Block in the Main program in the same manner you would the Single Block Format G76 cycle, with the addition of the arguments that are specified with the first Block of the two line G76 cycle (FS16 Format). Once the Macro is registered, G176 will be written and called just like other Threading Cycles. The standard FS16 Format G76 will still be available.

Regards,

Bill

Hmmmmmm... Are my three blocks above not so far off after all?

I see this thread has been slightly hijacked. Yet from what I can see, many of the best and most knowledgeable minds on this forum are chiming in. Who can complain?

Along those sidelines, what I read in Peter Smid's book is that all the newer controls can handle 6 digit F feeds in threading. No more E needed. I believe my 99-2000 18iTA is included in that.

As far as i goes for control names, after the Apple iPhone came out the world seemed to go i crazy. My favorite little machining app is iMachine. Seems Fanuc jumped on the i bandwagon like everyone else.

See if anyone gets this far. Still looking for an answer on - no more then one spring pass in threading stainless???

Thanks again all you smarter then i people. :-)

Dave
 
See if anyone gets this far. Still looking for an answer on - no more then one spring pass in threading stainless???

Dave

Hello Dave,
The number of spring cuts for FS15 G76 is held in parameters, the same as other arguments specified in the first G76 Block of the FS16 version. If you went the Macro way, simply add that to your arguments list in the Call Block and deal with it in the Macro.

Writing a Macro that simply uses existing cycles is one of the easiest to do; there are no calculations involved. You simply call the Cycle in the Macro and use the values passed by the Call Block as the inputs you would normally hard code.

With regards to using G Code System B, you will use G90/G91 to specify Absolute and Incremental respectively, the same as with a Machining Centre. One of the things I like about System A is that U and W are the Incremental representations of the Absolute X and Z. Its sometimes convenient to use Absolute and Incremental in the same Block and although G90/G91 can be used in the one Block in System B, I find it easier to mix X/U and Z/W and not have to worry about whether the next Block is going to be executed in Absolute or Incremental after specifying G90/G91.

I suppose the same concern exists with a Machining Centre, except that things are a bit more dramatic with a lathe if you run a tool hard into a chuck running at a few thousand revs.

Regards,

Bill
 
See if anyone gets this far. Still looking for an answer on - no more then one spring pass in threading stainless???

Dave


Dave are you looking for: is it ok to take more than one spring pass on stainless? or what Angle Civered?

answer yes, I take 2 sometimes 3

example
1st finish chamfer o.d. or i.d. and back relief if you are allowed one
run threading pass with spring pass
the run finish chamfer o.d. or i.d. and back relief if you are allowed AGAIN.
then run thread again with 1 or 2 spring pass's. I do change Depth of cut so not to waste time on pass's that dont touch

I do this for all my lathe and mill threads using formed inserts and non formed inserts(O.d. cutting type).
I get a burr free thread on the chamfer the o.d. and the relief. I do it on all metals from inco to alum and some plastics.
 
Hello Delw,

I think I follow that. So no work hardening troubles to speak of in threading stainless huh? Good to hear. You're leaving to re-cut the OD, chamfer and relief. So you're implying that when re-cutting the threads, the control picks up the thread again exactly where it was previously?

Hello Bill,

As apparent above, my spring passes in Stainless was meant to concern itself with work hardening, not a programming quaundry. My apologies if it didn't appear that way.

Now that I/we/others have been talking about it, I'm beginning to believe I can stick with the G-Code system A. I've already managed a memory crutch of G97/G98 good or safe, (thinking as a grey haired mill guy) and G96/G99 watch out. (As in for things I'm not used to.) I've also gotten to like U and W. Keeps movement pictures in the mind tractable.

For reference:

FS16 Format Line 1
G76010060Q0015R0015 Stored in parameters 5142 / 5130 / 5143 / 5140 / 5141 respectively.

Convert Control
G10L50N01R2 - or does it have to be - G10L50N00001R00000010 (My parameter printout shows 5 and 8 bit words) Curious if you don't see BIN highlighted on the screen if you can still use Decimal and the control will change it automatically if it's typically a bit entry.

A quick look back at the FS15 Macro idea. I will continue to read and re-read all the earlier statements.

Part of my problem is I get the impression that we're trying to use Line 1 FS16 information in the FS15 threading. This is throwing me off seeing as little to none of this info is usable in FS15. Or is it?

Problem: Unless my literature is missing this information, and other than to a limited extent, FS15 G76 letter A, (5143) none of the other FS15 thread calls X_Z_I_K_D_F_P_ are stored in parameters to be read and used elsewhere.

Question: How, without going to the G176 called 9010 and modifying it there for each and every thread being made, am I suppose to impose X_Z_I_K_D_F_P_ and A, into the control from the main program and at the same time turn on and off FS15 Format? (As seems to be inferred by the comments.)

Does a guy have to write in the main program, macro statements placing each thread parameter into a storage area that can be accessed inside 9010 to then be taken up by an elaborate G76 put-it-all-back-together scheme? What I'm picturing then is a pretty lengthy and involved thread call that doesn't look anything like a normal one in the main program. Not terrible sounding but not winning any races either.

This I can easily comprehend:

G176 (ACTIVATE FS15 FORMAT BY MACRO 9010)
G76X0.404Z-1.25I0K0480Q0120F0.0769A60P2 (PRODUCE A STRAIGHT 1/2-13 THREAD FS15 ZIG-ZAG STYLE)
G177 (RETURN TO FS16 FORMAT BY MACRO 9011)

Basic, but will pretty much do the trick.

To reiterate, how does one get this information - X0.404Z-1.25I0K0480Q0120F0.0769A60P2 - into G176 9010 Macro threading call without going there directly and entering through MDI?

I'm not after a complete, spelled out Macro program because where's the learning in that? Plus I likely can't afford your Macro writing services.

Is there a basic outline or something you or someone else can knock me over the head with that might get me going down the right road? Or have some of the earlier comments already spelled that out and I'm just not seeing it? I have a young helper that's been studying up on Macros and trying to write a letter producing one. Perhaps I should run this past him and his young mind. Maybe he'll just look at me and laugh saying... "you idiot! Not a problem."

Thanks again for all the time and efforts.

I pray and hope this is the last monster post. Besides... I got to get out there and run this thread. On the lathe that is. A 116 times.

Dave
 








 
Back
Top