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

December 21, 2009

Dear Subscribers,

Welcome to our third decade! We published the first issue of The Optional Stop newsletter back in the Fall of 1989. It’s hard to believe it’s been twenty years. In its infancy, we would give this newsletter free of charge to our video-course customers and sell it to anyone else that wanted it ($35.00 per year).

The first fifty issues were printed and sent out by mail. But in the Fall of 2001, everything changed. After 9/11 and the Anthrax scare, we were getting countless newsletters returned unopened. So we developed an Internet-friendly .pdf version, posted on our web site and started giving it a way to anyone that wanted to download it – and we’ve been doing so ever since.

Over the years, we’ve depended heavily on participation from our readers for ideas and articles. It’s been great – many of you have contributed – and you have our appreciation. Welcome to issue 81!

Mike Lynch

Product Corner: Fixture offset calculator
Instructor Note: Assessing a student's knowledge
Manager's Three important comparisons to consider
G Code Primer: Programming parameter changes
Macro Maven: Testing if the correct fixture offset is instated
Parameter Preference: Finding program related parameters
Safety First: Where's the closest first-aid kit?

Product Corner: Fixture offset calculator

This is a product we’ve been offering for some time, but it has met with less-than-expected sales. For the price ($100.00 for download version), it should be a no-brainer for anyone that has machining centers with a rotary axis – like most horizontal machining centers. If you make repeated setups, this unique programmer’s tool will allow you to work from one central program zero point and track its position even after rotation.

Fixture Offset Calculator will even output a series of G10 commands that can be loaded into the machine during setup. These commands will automatically enter the related fixture offsets.

Read more about this great product.



Top of page

Instructor Note:Assessing a student’s knowledge

Though it is an obvious statement, learning is a two-way street. A good instructor will do their best to present material in an understandable manner. Indeed, they will constantly strive to present material in a way that makes it as easy as possible for a student to understand. A good student will do their best to learn the material. They will put in the effort to participate in classroom activities and do the assigned work. In ideal learning situations (good students and instructors with high motivation and aptitude), it can almost be taken for granted that a student will learn.

Unfortunately, these ideal situations rarely exist. So methods must be developed to assess the student’s understanding of presented materials. There are many methods available, including informal class discussions, hands on practice, and quizzes and tests.

With any form of assessment, a student must have a fair chance to demonstrate a command of the subject matter. Each assessment method has its strong and weak points in this regard. Just the fact that an assessment is being done may be enough to skew the results. Some students, for example, simply don’t test very well. Conversely, some students test very well. In both cases, the assessment may be better at judging a students ability to take tests than at judging how well they understand the material. Have you ever noticed that when a student gets a test answer wrong, they (universally) feel that it was a trick question. They never seem to complain about questions they got right. This is obvious evidence that students don’t feel the assessment method is fair.

Because each method of assessment has its pros and cons, an effort must be made to ensure that the assessment gets correct results. Again, poorly designed assessment lets you only judge the students’ ability with the assessment method, not the subject matter at hand.

One way to level the playing field is to provide multiple assessment methods. At the very least, this gives the student a second – or third chance to prove they understand. And again, the assessment must place the emphasis on the subject matter, not the assessment method. I’ve found with on-line or computer based testing, for example, some (especially older) students struggle with the media (computer, keyboard, testing software, etc.). This distracts them from being able to concentrate in the subject matter.

I’ve heard some instructors say that this is a good thing – that there will be outside influences in the real world that will distract a worker from their appointed tasks. But in my opinion, it still isn’t fair. I believe this attitude reflects the instructor’s inability to adequately assess their own teaching methods. In the real world, people usually have ample time to sort things out. There’s usually a time limit when they are being assessed. Additionally, people in the real world have usually been working in the field for a long period of time – possibly years. This is plenty of time to fully master the tasks at hand – they have the experience needed to deal with distractions. Conversely, a student has only known the material for a short period of time. It’s just not apples to apples.

Some (possibly obvious) methods used to assess a students understanding:

  • Group discussions (when every student is required to participate)

  • During reviews of material (I like to let students answer many questions about previously presented material at review time)

  • Quizzes

  • Tests

  • Lab exercises (provides a practical – not just theoretical – way to assess)
    Others? I’d be interested in hearing your methods of assessment for publication in a future issue of The Optional Stop newsletter!


Top of page

Manager's Insight: Three important comparisons to consider

There are three relatively simple comparisons you can do in order to evaluate a machine’s productivity level – that is – its level of effectiveness. And this, in turn, will provide you with information about how much potential there is for improvement for a given machine.

Time in setup versus time in production

This easy-to-do comparison will tell you which area provides the most potential for improvement – and should help you make a decision on where to start with any kind of improvement program. Simply determine whether the machine is in setup or running production for the majority of time. The greater that difference, the more obvious the choice.

If, for example, a machine is in production for 90% of the time, it wouldn’t make much sense to try to improve setup since there would not be much room for improvement. Even if setup could be completely eliminated, you would only be saving 10%.

Time to perform physical setup-related tasks versus total time the machine is down between production runs

Physical tasks include things like mounting the fixture, assembling cutting tools, loading programs, and entering offsets. It’s pretty easy to determine how long they take to complete. And the related time tends to be pretty consistent from one time a setup is made to the next.

It is not uncommon for the time require to perform all physical setup tasks to be but a fraction of the time a machine is down between production runs. It may, for instance, take only twenty minutes to perform all of the physical tasks, but two hours later your people are still trying to get a workpiece to pass inspection.

The goal here is to find ways to draw the total time a machine is down between production runs down to the time it takes to perform the physical tasks. One example has to do with gathering components needed for upcoming setups. If all components can be gathered up-front, the setup person won’t have to leave the machine during setup at all. Other improvements are usually possible in the area of program verification – providing trial machining help so the setup person can ensure that the first workpiece being produced is a good one.

Button-to-button time versus production run throughput time

Button to button time is one definition of cycle time. It includes the running of one workpiece and the loading of the next. But it is not an inclusive definition of cycle time. We define cycle time (better termed as production run throughput time) as the time it takes to complete a production run divided by how many good workpieces were made.

As with the setup-related physical tasks, it is not unusual for button-to-button time to be but a fraction of production run through-put time. There are many things that happen during a production run that don’t occur in every cycle. And there may be things that you expect your operators to do that take longer per cycle than button-to-button time.

Similarly, the goal is to draw production run throughput time down to button-to-button time. Simplifying tasks and truly engineering the production run in a way that the operator can feasibly keep up with the machine are examples of doing so.



Top of page

G Code Primer: Programming parameter changes


There are many parameters that affect the way a CNC machine executes a program. In many cases, one appropriate setting for the parameter will work for an entire program. Indeed, many such parameters will work for all of the programs a company runs.

For example, with the machining center G73 chip-breaking peck-drilling cycle, a parameter controls how far the tool will retract between pecks. A setting of from 0.002 to 0.005 inch will cause the chip to break. And once this parameter is set, there will be no further need to change it.

There are other program-related parameters that may need changing from time to time. With the machining center G83 deep-hole peck-drilling cycle, for example, a parameter controls how far the drill will stay away from its last peck depth position. This distance is related to the material being machined.

Some companies set this parameter excessively. That is, they set it to a large value that will work for the worst case scenario – the material that most allows chips to fall back into the hole during retract. While this is safe, it may not be very efficient. Other companies reset the parameter for the material currently being machined.

In yet other applications, it may be necessary to change parameters even during the execution of a single program. With the turning center threading cycle on some controls, for example, parameters control the minimum depth-of-cut, the final depth-of-cut, and the number of spring passes. If machining two substantially different threads from within one program, the settings for one thread may not be appropriate for the other.

It’s nice to know that program-related parameters can be changed from within a CNC program using the G10 command. For parameters that need to be changed from time to time, and especially when parameters must be changed during a program’s execution, G10 will keep a setup person or operator from having to manually do so.

Here is an example of how G10 works for changing parameters.

  • .

  • .

  • .

  • G10 L50

  • N6218 R0030

  • N6219 R0002

  • N6220 R3

  • G11

  • .

  • .

  • .

The first command (G10 L50) sets the parameter entry mode. The N words specify specific parameter numbers and R words specify the parameter values. You must, of course, know the parameter number/s for the parameter/s you want to set and the related value/s. G11 tells the control to cancel the parameter entry mode.

In our example – and for the specific control model being shows (parameter numbers change for model to model), parameter number 6218 specifies the minimum depth-of-cut (0030 specifies 0.003 inch). Parameter number 6219 specifies the final pass depth (0002 specifies 0.0002 inch). Parameter number 6220 specifies the number of spring passes (three in our example)


Top of page

Macro Maven: Testing if the correct fixture offset is instated

In order for the cutting tool to move to the correct coordinates, the program zero point (program origin) must be properly instated. This, of course, is done with fixture offsets. In many programs, but one program zero point must be assigned – and it is commonly instated with fixture offset number one. A G54 in the program will be used to instate it.

In this case – one program zero point – there will be virtually no chance that the incorrect fixture offset will be instated. Again, most programmers will include a G54 at the beginning of each tool, ensuring that the machine will know the location of program zero.

But when multiple program zero points will be assigned, the programmer must be more concerned. This is especially true with horizontal machining centers (every side of the table will have a different program zero point) when sub-programming techniques are used to repeat motion commands. If a setup person or operator restarts the program at the wrong command, and if the program zero point is not correct, the results could be disastrous.

With custom macro B, it is possible to determine the currently instated fixture offset. Actually, it is possible to attain the current status of any modal G code – as well as the status of other CNC words. But for the purpose of this discussion, we will limit our presentation to the G codes related to fixture offsets (G54 through G59).

Fanuc categorizes modal G codes into G code groups. It just so happens that group number 14 contain the fixture offset G codes. (Please double check this in your Fanuc programming manual – the G code group number is specified in the table of G codes near the front of the manual.) A series of #4000 system variables give your programs access to the currently instated G coed in a given G code group. To come up with the needed system variable number, simply add 4000 to the G code group number. For the G code group related to fixture offsets, we add 14 to 4000. System variable #4014 contains the current status of fixture offsets (which fixture offset is currently instated.

System variable #4014 can be tested to ensure that the appropriate fixture offset is instated before motion commands are given. For example, when fixture offset number one is in effect (specified by G54, of course), the current value of #4014 will be 54. If you want to test that fixture offset number one is in effect – and generate an alarm if it is not, here are the related custom macro commands:

  • IF [#4014 EQ 54.0] GOTO 5

  • #3000 = 100 (WRONG FIXTURE OFFSET)

  • N5…

  • .

  • .

  • .

If the test is true, the machine will skip the alarm generation command. If false, the machine will go into alarm state and the message “MC-100 WRONG FIXTURE OFFSET” will be displayed. This effectively confirms that fixture offset number one is in effect before allowing the machine to continue. Other fixture offsets, of course, could be tested in this manner by applying the appropriate G code number to the test.



Top of page

Parameter Preference: Finding program-related parameters

In this issue’s G Code Primer, we discuss how to program certain program-related parameter changes with G10. Doing so, of course, requires that you know the parameter numbers related to the function the parameter controls. This is true regardless of whether you with to program the parameter change of manually modify the parameter. In either case, you’ve got to know the parameter number for the function in question.

Parameters can be difficult to locate. And parameter numbers vary from one control model to another, meaning even if you know the related parameter number for one control, you will still need to find if for another.
One way to find parameters is to look in the parameter documentation and begin searching at parameter number zero. While I’d recommend doing this just to see the various parameters related to a given control – and what it’s possible to change – it doesn’t make a very efficient method of finding a given parameter (the image of a needle in a haystack comes to mind).

With newer controls, parameters are organized into categories, which considerably narrows the search. But it can still be difficult (based on the parameter’s documentation) to determine if the parameter you’ve found is truly the one in question. Additionally, there are several parameters that have not been properly categorizes – especially those from number zero to about number one-hundred.

The best place to start looking for a needed parameter is in the documentation that describes the feature dealt with by the parameter. This documentation is in the programming portion of the control manufacturer’s manual/s.

If you’re trying to find the parameter number for the parameter that controls the final pass depth for threading, look in the programming manual at the section that describes G76. If you’re looking for the parameter number for the parameter that controls the retract amount for the chip-breaking peck-drilling cycle, look in the section that describes G73. If you’re trying to find a parameter that is related to custom macro B, look in the custom macro B section of the programming manual.

Somewhere in the description of each programming function – and usually in a series of notes at the end of the function’s description, you’ll find documentation about each parameter that is related to the programming function.


M01Top of page

Safety First: Where’s the closest first-aid kit?

You probably have many safety-related items placed in various locations around the shop – fire extinguishers, respirators, first aid kits, safety glasses, helmets, etc.  Unless you have an unusual amount of accidents, there probably isn’t much of a need for these items – and they may be doing little more than collecting dust. 

Indeed, some of these items (like some of the medicines and ointments in a first aid kit) may have been sitting unused for so long that their effectiveness has been reduced.  Most time-sensitive items have an effectiveness date, meaning a simple inspection will render whether the item needs to be replaced.  Someone in you company should be responsible for inspecting these items on a very regular basis.

Even more importantly, everyone in the shop should know where the closest safety items are located.  In the event of an emergency, they must be able to quickly locate the needed items – for themselves – or for someone else. 

Safety training should be part of your company’s orientation for new employees.  At the very least, everyone should know simple first aid techniques.  While it may be infeasible for your company to employ medical personnel (like an EMT or nurse), nothing should stop you from encouraging (and paying for) people in your company to attend basic medical classes (like CPR training) that are available  from local hospitals.  If a serious accident happens, at least someone in your company should know what to do.



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 ( 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 ( 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.