| Issue 78 |
Spring 2009 |
Copyright 2009, CNC Concepts, Inc. |
|
|
|
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
|
|
|
|
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:

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.

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!

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.

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)
-
.
-
.
-
.
Top 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.

Top of page
|
|
|
|
|
|
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.
|
|
|
|