The Optional Stop newsletter
Home | More Issues | Contact Us
From our website:
Home
Products
Services
Resources
On-Line Classes
CD-Rom Courses
CNC Books
Software
CNC Jobs
CNC Schools
CNC Tips
Educator's Page
Tech Talk Forum

March 13, 2009

Dear Subscribers,

Welcome to issue 78 of The Optional Stop newsletter.

You may have noticed that we no longer provide the CNC Tech Talk forum on our website.  I received a few questions about it and I feel the need explain.  During the last weeks of the forum's existence, there was a dramatic increase in negative posts - posts aimed more at starting or fueling an argument than at helping someone.  Some posts were even of a threatening nature - as were the emails I'd receive after deleting them.  While this wasn't the first occurrence of such bad behavior, I got tired of playing parent to the people involved and made the decision to discontinue the forum. 

If you are looking for a replacement, there is an excellent alternative available - CNCZone - that provides the support required to eliminate the kind of posts I'm talking about.  CNCZone requires registration before you can post, and their moderators view every post for appropriateness prior to posting - two things that I could not (and did not have time to) provide in the CNC Tech Talk forum.

Enough of that!  Enjoy this issue of The Optional Stop.

Mike Lynch

IN THIS ISSUE
Product Corner: Up-coming SME Sponsored Seminar and Webinar
Instructor Note: How solid is your school’s manufacturing program?
Manager's Insight:  The Ten Commandments of CNC
G Code Primer: Understanding the “common” fixture offset
Macro Maven: Creating a hole-machining canned cycle
Parameter Preference: Creating modal user defined G codes
Safety First: Eliminate horse-play and practical jokes

Product Corner: SME Sponsored Seminar and Webinar

It’s been quite a while since I’ve taught a seminar for the Society of Manufacturing Engineers. I’ve always considered it to be quite an honor to be asked to teach for the SME. I’ll be teaching a two-day “Introduction To CNC” seminar on May 28-29, 2009 at the Sandvik Productivity Center in Schaumburg, Illinois (Northwest suburb if Chicago). You can find more information about this session and register for it here:

To help promote the seminar, I’ll also be leading a webinar entitled “Getting More From Your CNC Machines” on May 5, 2009 at 2:00 PM EST. While information about this webinar has not yet been posted, it will be soon – and you will be able to find the webinar listed on this page as soon as it’s available:

M01

Top of page

Instructor Note: How solid is your school’s manufacturing program?

I received this email from an instructor in a community college a few weeks ago. I found it troubling – you probably will too.

Hello. I have taught several CNC courses in the past years and have thoroughly enjoyed it. Because of our local economy, my institution is proposing to eliminate the entire CNC program. I have one last chance to convince them otherwise. Do you have any material that I could use to show them the importance and necessity of continuing the CNC courses at my school? I need to convince them with a "wow" presentation. Thank you so much for your time and consideration.

While I have modified this email a bit to remove the writer’s name and school name, it remains pretty-much intact. Unfortunately, this isn’t the first time I’ve received such a correspondence – and it’s always pretty scary. My response is below. While I don’t have anything miraculous to say, I’m hoping it offers some food for thought should you ever find yourself in a similar position. And by the way – I’d be very interested in hearing your comments along these lines. So please email me (lynch@cncci.com) if you have thoughts you’d like to share. I’ll include your comments in the next issue of The Optional Stop newsletter.

I'm sorry to hear about your situation. I hope it is resolved in your favor.  I have some thoughts along these lines. I'm hoping they help with your presentation.

Support for local industry:

It is my feeling that technical courses from any school should be tailored first and foremost to the industry in its local area. Unfortunately, too many schools are too quick to give up on local industry at the first signs of dropping registrations when the economy takes a downturn.

The first place industry will turn for new people when business improves is, of course, the local technical school or community college. But if the school has dropped its technical programs, local industry will be left high and dry.

When a school eliminates a program, in essence, the school is saying "We don't think our local industry is going to survive, and we're not going to wait out this storm." Frankly speaking, it is exactly this thinking that eventually turns into a vicious circle for the school. With no one to train, they eliminate classes. When students try to come back, they have no classes to offer. Loyalty from the very people the school is trying to serve will suffer when people become aware of what the school has done. CNC is not the only curriculum that suffers when this thinking is applied.

Depending upon your current relationships with manufacturers in your area, you should solicit them to help in your quest to maintain the program. I'd suggest having at least one person from a local manufacturing company - preferably people who have been sending students to your school and/or hiring your graduates - participate in your presentation. Let your administrators meet face-to-face with the very people who will be hurt the most by the elimination of the CNC program.

Even if the school must temporarily cancel a few classes or even suspend a program – again, temporarily – they can still maintain the program for the time when things improve and students come back.

Support for students and potential students:

While it's a bit off the subject, I've been surprised at my company's recent sales to technical schools. With the bad economy, you'd think that people would be pulling back on taking classes. But we've actually had a small increase in sales when comparing the last few months to the same period last year. While I'm no expert in Human nature, I think it's because people see their own knowledge level as one of their most important possessions – especially in bad times. People seem to have no problem spending money to improve, especially when they see the need or potential for immediate improvement.

Since manufacturing took its "big hit" some time ago (when so much manufacturing moved out of the country), it actually seems to be currently holding its own better than other areas of the economy (again, I'm stating opinion - I'm not an expert here). People in many areas of the country actually see manufacturing as a growing field. What a change from the last few years! But again, when you compare how manufacturing is doing to – say – the real estate market or retail sales, manufacturing actually look pretty good right now. And people are going back to school to learn what it takes to get a job at a local manufacturing company.

Promoting your classes

I'm not sure how actively you've pursued local industry and local high schools to recruit supporters and students. This may be something to include in your presentation – launching a more active campaign to bring in more students. When it comes to attracting people from manufacturing companies, this article may help:

http://www.cncci.com/resources/articles/train%20now.htm

Also, we maintain a free Schools page on our web site. I'm amazed at how many calls we get from people wondering if there is a CNC course in their area. It sure wouldn't hurt to post a free listing. Here is the link to our Schools Page:

http://www.cncci.com/resources/cnc%20schools.htm

Here is another article that addresses shrinking class sizes. I'm thinking it may help with promoting your classes:

http://www.cncci.com/resources/articles/dwindling%20class%20size.htm

Again, I hope you find these thoughts to be helpful. Please let me know how things work out.

Mike Lynch
CNC Concepts, Inc.

M01

Top of page

Manager's Insight: The Ten Commandments of CNC

Suggested by Rick Lucchetti of TC Industries in Crystal Lake, Illinois

People strive to obey the Ten Commandments – indeed, almost everyone knows most of them – and you would be hard-pressed to find a person that isn’t at least aware of their significance. When it comes to stimulating a desired behavior, nothing creates a lasting impression like the Ten Commandments.

Many manufacturing companies have rules – both written and unwritten – that they expect their people to adhere to. You can add punch to the importance of these rules by picking your ten most important rules and naming them the ten commandments of your company.

Post them in the lunch room and conference rooms. Make a poster for entry-ways. Place them in locations that everyone will notice. The idea is to ensure that everyone knows what you – and your company’s management – feel are the ten most important rules that everyone in the company must obey.
You, and you alone, are best able to determine what your ten commandments should be. You can be as general or specific as you like. Just remember that the goal is to let people know, in no uncertain terms, the dos and don’ts of your manufacturing environment.

When coming up with your list, be ready to explain each “commandment”, as well as the consequences of breaking each of them. Don’t assume everyone will automatically know the consequences. With a safety-related commandment, for example, be ready to explain the potential danger/s. In essence, be sure people understand the logic about why the commandment exists.

Here are some examples. Admittedly, they are probably a bit more generic than you’ll want, but they should give you the general idea.

  • Thou shall adhere to all safety-related methods as described in our list of safety precautions.

  • Thou shall put things back where you found them and keep your work area clean.

  • Thou shall not change programs to make sizing adjustments.

  • Thou shall keep your machine/s clean and perform all assigned preventive maintenance tasks.

  • Thou shall ask for help when you are confused or unsure.

  • Thou shall not engage in horse-play or practical jokes.

  • Thou shall check the condition of inserts at the beginning of your shift.

  • Thou shall inform the programmer when you make program changes.

  • Thou shall report machine mishaps (like crashes) to your supervisor.

  • Thou shall not leave a machine that is running.

Again, pick those problems, considerations, and concerns that are of the most importance to you and your company. Then develop the wording as appropriate. The idea must be to ensure that everyone knows what is important. This kind of list should make it very clear.

By the way, I’d love to hear what you come up with. And, with your permission, I’d be happy to publish your company’s ten commandments in the next issue of The Optional Stop newsletter. It should make for some interesting reading!

 

M01

Top of page

G Code Primer: Understanding the “common” fixture offset

As you know, Fanuc-controlled machining centers come with at least six fixture offsets, invoked in a program by G54 through G59 respectively. When the machine executes a G54, for example, it knows to look at the registers in fixture offset number one to find the program zero assignment values for the current coordinate system. (G59, of course, tells the machine to look in fixture offset number six.)

During setup – by one means or another – program zero assignment values are placed into each needed fixture offset. They could be entered by the setup person – or they could be more automatically entered by G10 commands in the program. But again, before the program can be run, the machine must be told the location of each program zero point (origin) used by the program.

You may not know that the point of reference for program zero assignment values that are placed into fixture offsets is related to the common fixture offset (fixture offset number zero on the first fixture offset display screen page). When the registers for the common fixture offset are set to zero, as they commonly are, the point of reference for program zero assignment values is the machine’s zero return position.

That is, the X axis program zero assignment value is the distance from the X axis zero return position to the X axis program zero surface in the setup. The Y axis program zero assignment value is the distance from the Y axis zero return position to the Y axis program zero surface in the setup. And the Z axis program zero assignment value is the distance from the spindle nose (while the Z axis is resting at its zero return position) to the Z axis program zero surface in the setup (though the Z axis program zero assignment value will vary based upon how tool length compensation offsets are determined).

In essence, when common fixture offset registers are set to zero, the machine is being told that the point of reference for program zero assignment values is nothing from the machine’s zero return position. Again, this is a very common method of applying fixture offsets. The vast majority of CNC users do so in this manner.

When might you want to change the point of reference for program zero assignment values?  Let’s look at some times when the common fixture offset can be helpful.

During program verification

Though this may not be the best application, it should help you understand how the common fixture offset works. Say you have a vertical machining center and have just made a new setup. You’ve entered all fixture offset in the normal manner. With the method just discussed, the common fixture offset registers are all set to zero and there will be very large negative values in each fixture offset register.

Before running the actual workpiece, you may want to do some testing. Maybe you want to see how the program will run, but not allow each tool to come all the way down to its final Z axis position. Instead, you’d like to run all tools, say, five inches above the work surface.

This is easy to do with the common offset. Simply increase the value of the Z register by five inches. If it is currently zero – as it probably is – set the Z register to a positive five inches. This will tell the machine that the point of reference for all fixture offset entries is five inches above the Z axis zero return position. When each tool runs, it will stay five inches higher than it will when a workpiece is actually run. Once you confirm that the motions, of course, you will need to set the Z axis register of the common fixture offset back to its initial value (probably zero).

When using sub-plates

If you have a sub-plate on the table of your vertical machining center, it may be possible to simplify – or eliminate – the task of program zero assignment. That is, you may be able to keep the setup person from having to do anything during setup that has to do with program zero assignment.

As long as the sub-plate is accurately made – and as long as the component workholding tooling is also predictable, setups will be qualified and predictable. In this case, you can have the program zero assignment values be the distance from one of the location surfaces or holes on the sub-plate. In essence, this will make them easier to predict.

The common fixture offset can be used to shift the point of reference for program zero assignment values from the zero return position to the location surface/s on the sub-plate. Say we shift in XY to the lower left hole on a sub-plate that uses a series of clamping and location holes. If the zero return position is at the machine’s plus over-travel limit in each axis, the values placed in the common offset will be negative.

From this point, all program zero assignment values in XY can be specified from the lower left hole to the program zero surface on the workpiece. And again, since the location holes on the sub-plate are in known positions, the program zero assignment values will be easily predictable. The programmer can include G10 commands to specify them so the setup person need not do anything relative to program zero assignment.

After a mishap

If you’ve been using G10 commands to assign program zero in your program, you know that the zero return position better not change in any axis. If it does, the G10 commands will not be correct. So after a mishap (crash), the person fixing the machine must get the zero return position perfectly reset.

You can use the common fixture offset to allow for any deviations in this regard. With the sub-plate example just described, you can simply re-measure the location of the lower left hole after the crash and place the new values in the common fixture offset’s X and Y registers.

But even if you’re not using a sub-plate, you can use the common fixture offset for this purpose. Simply determine how far the new zero return position is from its old position and enter these values into the common fixture offset.

Consistent tool length compensation offset values

One last application for the common fixture offset that I’ll mention has to do with companies that use the same cutting tools from one machine to another. Possibly multiple identical cutting tools – say for a very common roughing tool – are setup to be used by the first machine that needs one. Even with identical machines, there may be a slight difference in the spindle taper. A cutting tool placed in one machine may “rise up” higher into the spindle than it does in another. This requires a different tool length compensation offset value for each machine. Allowing for spindle differences can be a headache if cutting tools are shared from machine to machine.

If the Z axis common fixture offset is set to the deviation from one machine to another, the same tool length compensation value can be used for both machines. Again, this will simplify the task of coming up with tool length compensation values for tools used in multiple machines.

 

M01

Top of page

Macro Maven: Creating a hole-machining canned cycle

Every so often I get a question related to how standard canned cycles work – or rather – how they don’t work in a manner desired by the questioner. Here is an example I recently received:

We just bought a Haas with high pressure coolant to drill holes in a radial fashion through tubes – as many as 25,000 holes per part. I use G81-G82-G83-G73 to minimize program length and complexity. The problem is that with the new carbide drills I am using, the tooling people are telling me I need to reduce feedrate as the drill breaks through the material in order to prevent the drill corners from failing. I was wondering if there is a macro type programming tool I could use for this application which would allow me to call it once at the beginning of a drilling cycle and have it repeat at each location defined in a subprogram and then cancel the macro simply, as I do now with G80. Thanks for your help in this matter.

While you may not have this specific canned cycle need, there may be times when you wished that a given hole-machining canned cycle behaved differently. Or maybe you wanted to create a canned cycle for your own specific needs. Believe it or not, this is easily possible with custom macro B. You can even make the calling G code modal, making it behave much like any built-in canned cycle.

The first task is to develop a workable custom macro to handle the application. In our case, we need to be able to have a drill machine most of the hole at one feedrate, then complete the hole at a different feedrate. For now, we’ll use a G65 (custom macro calling word) to activate the custom macro – and we’ll try to make the letter address arguments (variables) match those used in a G81 command. Here is an example of a calling program that uses the custom macro:

  • O0001 (Main program)

  • N005 T01 M06 (Load drill in spindle)

  • N010 G90 S600 M03 (Start spindle)

  • N015 G00 X1.0 Y1.0 (Move to first hole location)

  • N020 G43 H01 Z0.1 M08 (Instate tool length compensation, move above work surface)

  • N025 G65 P9010 R0.1 Z-0.75 F8.0 W-1.0 H3.0 (Machine one hole)

  • N030 G91 G28 Z0 M19 (Retract to tool change position)

  • N035 M01 (Optional stop)

  • .

  • .

  • .

Line N025 calls the hole-machining custom macro (program O9010). R specifies the rapid plane, Z the intermediate hold depth, and F the initial feedrate. So far, these words are just as they are in the G81 drilling cycle. We’ve added W to specify the final hole-bottom position and H to specify the “break-though” feedrate. Here is one version of the custom macro that will work. Note that we’re assuming that the tool is already at the XY hole-position and 0.1 inch above the work surface when this custom macro is called.

  • O9010 (Custom macro)

  • #100 = #5003 (attain current absolute Z position)

  • G01 Z#26 F#9 (Feed to intermediate hole bottom position)

  • Z#23 F#11 (Feed to final hole bottom position at new feedrate)

  • G00 Z#100 (Retract from hole)

  • M99 (End of custom macro)

So far, of course, the calling program (O9010) machines only one hole. If more holes must be machined, one way to do so would be to move to another hole location and repeat the G65 command. Here is another program that machines five holes using this technique.

  • O0002 (Main program)

  • N005 T01 M06 (Load drill in spindle)

  • N010 G90 S600 M03 (Start spindle)

  • N015 G00 X1.0 Y1.0 (Move to first hole location)

  • N020 G43 H01 Z0.1 M08 (Instate tool length compensation, move above work surface)

  • N025 G65 P9010 R0.1 Z-0.75 F8.0 W-1.0 H3.0 (Machine first hole)

  • N027 X2.0

  • N030 G65 P9010 R0.1 Z-0.75 F8.0 W-1.0 H3.0 (Machine first hole)

  • N033 X3.0

  • N035 G65 P9010 R0.1 Z-0.75 F8.0 W-1.0 H3.0 (Machine first hole)

  • N037 X4.0

  • N040 G65 P9010 R0.1 Z-0.75 F8.0 W-1.0 H3.0 (Machine first hole)

  • N043 X5.0

  • N045 G65 P9010 R0.1 Z-0.75 F8.0 W-1.0 H3.0 (Machine first hole)

  • N050 G91 G28 Z0 M19 (Retract to tool change position)

  • N055 M01 (Optional stop)

  • .

  • .

  • .

But as you can see, machining multiple holes in this fashion will be quite cumbersome, defeating the primary purpose of using a canned cycle in the first place. Note that a custom macro can be called in a modal manner, using G66, which will dramatically simplify the program. G67 is used to cancel a G66 modal calling command. Here is yet another version of the program that uses G66 and G67.

  • O0002 (Main program)

  • N005 T01 M06 (Load drill in spindle)

  • N010 G90 S600 M03 (Start spindle)

  • N015 G00 X1.0 Y1.0 (Move to first hole location)

  • N020 G43 H01 Z0.1 M08 (Instate tool length compensation, move above work surface)

  • N025 G66 P9010 R0.1 Z-0.75 F8.0 W-1.0 H3.0 (Set variables)

  • N030 X1.0 Y1.0 (Machine first hole)

  • N035 X2.0

  • N040 X3.0

  • N045 X4.0

  • N050 X5.0

  • N055 G67

  • N060 G91 G28 Z0 M19 (Retract to tool change position)

  • N065 M01 (Optional stop)

  • .

  • .

  • .

With G66, the custom macro will not actually be executed in line N025 (as it is with G65). Instead, only the local variables will be set. In line N030, the machine will move to the X and Y position specified (it’s already there) and then the custom macro (O9010) will be executed using the values specified with the arguments in line N025. In line N035, the machine will move to X2.0 and then call the custom macro again – machining the second hole. This process is repeated until line N055, when the modal custom macro calling command is cancelled with G67.

Lines N030 through N055 could, of course be placed in a subprogram and any special positioning movement techniques (like the Haas G72) could be used to shorten program length.

One last point. Custom macro B allows you to activate a custom macro using a G code of your choosing. That is, you can create a user defined G code. You can even make it modal! This is the subject of this issue’s Parameter Preference article.

Bonus!  Another great custom macro to engrave the current day!

We've published a unique custom macro on our website's CNC Tips page for engraving the current day of the year on a workpiece.  I have been asked for something like this many times, so I think you will find it interesting.  It has been written and submitted by Brian Glick of Vermeer Corporation.  You can find it here:

Top of page

Parameter Preference: Creating modal user defined G codes

With Fanuc controls, a special series of parameters is used to create user defined G codes. As with all parameters, specific parameter numbers vary from one control model to the next, meaning you must reference the custom macro B section of your manual to find the parameters related to user defined G codes.

With a 16 series Fanuc control, parameter number 6050 can contain the G code number used to activate program number O9010. (There are nine more user defined G code parameters available). If, for example, you place a value of 24 in parameter number 6050 (on a 16 series control), the machine will execute program O9010 whenever it sees a G24 command. 

When you create user defined G codes, of course, you must be careful not to overwrite a needed G code. Fanuc allows you to choose three-digit values (100, 101, 102, etc.) to ensure that you don’t overwrite a needed G code.

Again, if a value of 24 is in the parameter related to program O9010, G24 will cause the machine to execute program O9010. But to this point, the calling command (G24) will not be modal.

To create modal user defined G code, the value placed in the parameter (6050 in our case) must be negative. So if the value -24 is placed in parameter 6050, G24 will behave like the G66 command – meaning the machine will continue to move and execute program O9010 with each successive command – until the modal calling command is cancelled.

As you know, G67 is the canceling command. However, if you are trying to create a modal hole-machining canned cycle, it may be inconvenient to use G67 to cancel. We recommend creating a second, more universal cancellation command. I like to modify the use of G80 for this purpose.

To do so, we place a value of 80 in parameter number 6051 (again, for a 16 series control). From now on, when G80 is seen, program number O9011 will be executed. Here is the simple cancellation custom macro number O9011.

  • O9011 (Cancellation custom macro)

  • G80 (Cancel canned cycle)

  • G67 (Cancel modal custom macro call)

  • M99 (End of custom macro)

With this method intact, G80 will cancel both canned cycles and modal custom macro calling commands. Here is our final version of the program, which more closely resembles the use of canned cycles.

  • O0002 (Main program)

  • N005 T01 M06 (Load drill in spindle)

  • N010 G90 S600 M03 (Start spindle)

  • N015 G00 X1.0 Y1.0 (Move to first hole location)

  • N020 G43 H01 Z0.1 M08 (Instate tool length compensation, move above work surface)

  • N025 G24 R0.1 Z-0.75 F8.0 W-1.0 H3.0 (Set variables)

  • N030 X1.0 Y1.0 (Machine first hole)

  • N035 X2.0

  • N040 X3.0

  • N045 X4.0

  • N050 X5.0

  • N055 G80 (Cancel modal call)

  • N060 G91 G28 Z0 M19 (Retract to tool change position)

  • N065 M01 (Optional stop)

  • .

  • .

  • .

M01Top of page

Safety First: Eliminate horse-play and practical jokes

Given the list of ten commandments presented earlier in this issue of The Optional Stop, this commandment should rank near the top: “Thou shall not engage in horseplay or practical jokes in the shop.”

Admittedly, comic relief can truly lighten any mood – and a person with comedian-like talents can be very popular indeed. But there is a place for comedy – and it is not on the shop floor. Given the serious and dangerous environment in any machine shop, no one should engage in joking.

Have you ever noticed that when one person tells a joke, another person in the group will try to better it? It’s not uncommon for this one-ups-man-ship to continue until everyone in the group has told several jokes.

Practical jokes tend to work in a more delayed fashion. When someone plays a practical joke – and even though it may be very funny (even to the victim), there is a better than even chance for retaliation. The second practical joke may still be funny, but it will probably have escalated, raising the stakes for the next practical joke. This will continue until it gets out-of-hand, ending with a practical joke where someone gets physically or emotionally hurt.

Considering that practical joking can be dangerous of its own accord, there is absolutely no place for it in a machine shop, where the related consequences can result in injury – or worse. Many shops I know of have a zero-tolerance for practical joking. Engaging in them is grounds for immediate termination. While this may sound severe, it only takes one disastrous event to clarify the seriousness of the situation. My only suggestion here is that if you incorporate such a policy (immediate termination for practical joking), make sure everyone knows about it, and that there will be no exceptions.

 

M01

Top of page

 
 
Sofware ad
 
Machining center training materials
 
Parametric programming ad

The Optional Stop newsletter is published quarterly by CNC Concepts, Inc. and is distributed free of charge to people subscribing to our (email) distribution list and to those downloading it from our website (www.cncci.com). Information is aimed at CNC users and instructors teaching live CNC classes. All techniques given in this newsletter are intended to help CNC people. However, CNC Concepts, Inc. can accept no responsibility for the use or misuse of the techniques given.

To subscribe: Simply email us (newsletter@cncci.com) and let us know you'd like to be added to our distribution list.

To unsubscribe: Respond to this email, typing REMOVE in the subject. Please accept our apologies if we have disturbed you.