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

June 20, 2007

Dear Subscribers,

We've changed the look of our newsletter to match the design of our new website.  We hope you find it attractive and easy to read.  We've already received many compliments on the new website design and we hope this new design for The Optional Stop is as well received.

We always try to include topics in this newsletter that most educators and CNC people will find of interest - and this issue is no exception.  Everyone involved with CNC should find something helpful. 

As always, your comments and suggestions are always welcome.  And of course, if you have an idea you'd like to have published, use this link to let us know.

Mike Lynch

Product Corner: NCPlot - More Than A Tool Path Plotter
Instructor Note: How Self-Paced Training Materials Can Support Instructor-Led Classes
Manager's Insight:  Calculating Machining Time For Any Operation
G Code Primer: G41 versus G42
Macro Maven: Modal Calling Words
Parameter Preference: Single-Stepping Through Calculation And Logic Commands
Safety Note: Understand your turning center's chuck clamping  direction selection

Product Corner: NCPlot - More Than A Tool Path Plotter

NCPlot allows you to plot tool path from G code level programs.  The text window of NCPlot is like the internal memory of the CNC control.  If you have subprograms being referenced by your program, just load them - or copy and paste them - into the text window.  When a reference is made to a subprogram, NCPlot will know where to look.

Tool path display is both common and unique.  Like most tool path plotters, dotted lines are used to represent rapid motions while solid lines represent cutting motions.  Color changes can be used to reflect motion type (G00, G01, G02, or G03) or tool changes.  But unlike many tool path plotters, you can click on an element in the tool path display and be told all about it (position, length, motion type, etc.) and the CNC command that causes the motion will be shown in the text window.  You can even measure distances between elements, a feature normally found only with more expensive program verification systems.

NCPlot also allows you to plot tool path for custom macro B programs.  Again, after quickly loading the main program and custom macros into the text window, you'll be able to see the motions your custom macro will generate.  There are even some helpful features built in to NCPlot to help you write and verify your custom macros, including a quick reference manual for custom macro functions, an expression analyzer to help you verify arithmetic expressions., and an easy way to step through calculation and logic commands one-by-one.

Using the dxf-to-G-code feature, you can even import drawings from computer aided design (CAD) systems and have NCPlot create the G code motion commands needed to machine the imported shape.   And the text-to-G-code feature lets you create G code for engraving on your workpieces.

We no of no other software at the price of NCPlot ($299.00 with student pricing available) that comes close all that NCPlot can do.  Check it out now!


Top of page

Instructor Note: How Self-Paced Training Materials Can Support Instructor-Lead Classes

We offer products for both types of training - self-paced and instructor-lead.  Our CD-rom Courses and Self-study Manuals are designed for self-paced training while our Instructor's Curriculums are designed to help instructors teach live CNC classes.  We often receive questions from instructors regarding which method is best - or at least - which method we recommend based upon their particular situation.  In this short article, we provide some of our thoughts.  We'll describe how our materials are currently being used to make certain points.

Self-paced training

As the name implies, students complete this kind of training at a pace that suits their allotted time, schedule, and aptitude. What the name doesn't imply is that with self-paced training, the student is often left completely on their own to learn. In many cases, they will view videos, read, and do exercises and assignments without the help of an instructor. A facilitator (most commonly an
instructor) should be available to direct them and answer questions, but for the most part, the student learn on their own.

The main benefit to the student is that it allows them to study at times when it best suits them. They learn on their schedules, not a school's schedule. This, lets people fit their education into their busy lives. Frankly speaking, there aren't many more benefits to self-paced training that I can think of.

Students with good motivation and aptitude for the subject matter do well with self-paced training, and won't need much help as they go through the material. Unfortunately, people with lesser motivation and aptitude levels may struggle with self-paced training materials. Most materials - like books and videos, can only present the subject matter in one manner. It cannot "roll with the punches" when students have special needs.

Self-paced (also called "open in / open out") training has allowed schools to offer training in a subject matter even with a small number of students. And it has allowed schools to meet the needs of students that have limited time to spend at the school. Frankly speaking, some programs probably wouldn't exist if they couldn't be offered as self-paced training programs.

Self-paced training can be time consuming for the facilitator when many students are participating in the same course at the same time - and especially when they're having problems. The instructor may have to explain the same concepts over and over - in a one-on-one manner with students. This may not be the best use of an instructor's time.

Instructor-lead training

In this training environment, much of - if not all of - the material is presented by an instructor in a classroom setting. Students are commonly asked to do reading assignments and other exercises as homework, but the majority of learning occurs in the classroom.

The main benefit to this kind of training is that the student has the ability to question the instructor at the moment they don't understand an important point. They also hear other student questions, ensuring that they understand the concepts being presented. Based upon students' questions, the instructor gets immediate feedback - and can elaborate when students are having problems.

Our suggestions

Ideally, you should be able to offer both training options and apply whichever is best to each situation. For example, one instructor I know of - a technical/vocational high school teacher that also provides adult education classes - told me that he doesn't want the high school students to use the self-paced training materials. Through experience, he has learned that high school students just don't have the motivation to do well with self-paced training - at least not in his school. So he presents live classes with lectures to get the subject matter through to his high school students.

On the other hand, his adult education students do have the motivation to learn well from self-paced training materials - and he incorporates them into his adult education classes.

More specifically, this instructor is using our CNC curriculum materials to teach live classes for his high school students. He is using our CD-rom courses to provide the materials for his self-paced adult education classes.

How self-paced training materials can support live training classes

Combining the two training methods can provide the best of both training worlds. Instructor-lead classes will provide students with a good foundation. But some students may not be able to retain all important points in a classroom setting. If self-paced training materials are available that parallel the instructor's lectures, a student can easily review course material without having to bother the instructor.

In similar fashion, if a student misses a lecture, they'll have to make it up in one fashion or another. If an instructor is teaching the same class multiple times during a training period (seldom the case with manufacturing classes), the student can simply sit in on the lecture in another session. But if the class is only presented one time per semester, they will probably come to the instructor for help. This means a duplication of effort as the instructor explains the material a second time for this student.

Again, if self-paced training materials are available that parallel the live presentations an instructor makes in class (as is the case with our CNC curriculums and CD-rom courses), the student can view only the segment of the self-paced course that they missed.

Many of the schools using our CNC curriculums to teach live classes also have the matching CD-rom course. It's kept in the school library, the computer lab, or in a computer in the CNC lab. Since this course includes the same material as is presented in our CNC curriculums, students can easily learn and review from the CD-rom course when they need to.


Top of page

Manager's Insight: Calculating Machining Time For Any Machining Operation

It is often necessary for CNC people to determine how long machining operations will take to perform. You may be trying to determine which of two or more processes will be used to machine a workpiece - or you may just be wondering how long a machining operation will require to complete.

Frankly speaking, the formulae related to calculating machining time are pretty simple to understand and use. Indeed, many manufacturing people have incorporated them into spreadsheets (like Microsoft Excel) - or they have programmed their calculators to include the related formulae. Here is the most important formula:

  • Time (minutes) = length of motion in inches divided by motion rate in inches per minute

That's it - no problem, right? You simply divide the length of the motion required for machining in inches by the inches per minute feedrate. The metric equivalent is:

  • Time (minutes) = length of motion in millimeters divided by motion rate in millimeters per minute

We'll be using the inch mode for the rest of the discussions in this article.

Example 1:

Say you must drill a 1.0 inch diameter hole. The hole depth is 0.75 and you intend to use an approach distance of 0.1 inch. The intended feedrate is 7.0 inches per minute. When we divide the motion distance (0.85) by the feedrate (7.0), we find that the time needed to drill this hole is 0.12143 minutes.

How many seconds is this? We obviously need to be able to convert decimal minutes (0.12143) into seconds. Here's the formulae:

  • 1 second = 0.01666 minutes

  • Time in seconds = time in minutes divided by 0.01666

When we divide 0.12143 by 0.01666, the result is 7.2887 seconds (just over 7-1/4 seconds). So we now know how long it will take to drill the hole.

In order to use the formula, of course, you must be able to determine the feedrate in inches per minute (ipm). Most machining data handbooks, however, provide feedrate in inches per revolution (ipr), meaning you must first calculate the spindle rpm and then calculate the inches per minute feedrate. But speed recommendations are usually given in surface feet per minute (sfm). This speed is how much workpiece material will pass by each cutting edge during one minute. Here are two more formulae, based on speed being recommended in sfm and feedrate in ipr.

  • rpm = 3.82 times sfm divided by diameter (the tool diameter in our case)

  • ipm = rpm times ipr

Note that for some tools, the recommendation for feedrate will be in "per tooth" fashion, meaning you need to know the number of cutting edges (inserts, flutes, or teeth) there are on the cutting tool. This is commonly the case for milling operations. So we need to add yet one more formula:

  • ipr = ipt times number of cutting edges

Example 2:

Say you need to determine how long it will take to rough mill a 3.0 inch long slot with a 0.75 diameter, four flute, cobalt end mill. The three inch motion distance is the total motion length, including feed-on and feed-off distances. Based upon the material you are machining and the kind of machining operation you are going to perform (rough milling), the end mill's manufacture recommends a speed of 90 sfm and a feedrate of 0.002 ipt.

  • First, determine the speed in rpm: 3.82 times 90 divided by 0.75 is 458 rpm.

  • Next determine the inches per revolution feedrate: 4 times 0.002 is 0.008 ipr.

  • Next, determine the inches per minute feedrate: 458 times 0.008 is 3.664 ipm.

  • Finally, determine the time required in minutes: 3 inches of motion divided by 3.664 ipm is 0.8187 minutes.

  • To determine the number of seconds, divide 0.8187 by 0.01666 - this comes out to 49.141 seconds.

Fixed diameter machining versus changing-diameter machining

Note that it is quite easy to apply these formulae to machining center machining operations since the cutting tool diameter does not change during the machining operation. This is the case for the vast majority of cutting operations, including milling cutters, drills, taps, reamers, and just about any tool you use in a milling machine or CNC machining center. Again, the diameter being machined does not change during machining.

But do note that there are some operations during which the diameter being machined will change during the machining operation. Consider, for example, a rough turning operation on a CNC turning center that requires multiple passes to be made. The feature called constant surface speed will cause the spindle speed in rpm to change based upon the diameter being machined. For rough turning, this means you must calculate a new rpm and inches per minute feedrate for each rough turning pass.

Example 3:

Say you need to rough turn a 4.0 inch long diameter down from 1.0 inch to 0.75 inches, taking two passes (0.125 inch each). One of the passes will be at 0.875 and the other will be at 0.75. And each pass will be 4.1 inches long, including the approach. For the material being machined and the machining operation being performed, the cutting tool manufacturer recommends a speed of 400 sfm and a feedrate of 0.011 ipr.

Again each pass must be calculated separately. For the first pass:

  • rpm = 3.82 times 400 divided by 0.875, or 1,746 rpm

  • ipm = 0.011 times 1,746, or, 19.206 ipm

  • time = 4.1 divided by 19.206, or 0.213 minutes (12.785 seconds)

For the second pass

  • rpm = 3.82 times 400 divided by 0.75, or 2,037 rpm

  • ipm = 0.011 times 2,037, or 22.407 ipm

  • time = 4.1 divided by 22.407, or 0.182 minutes (10.924 seconds)

As you can see, the calculations are no more difficult to make - there are just more of them. One per roughing pass.

Calculating time for finish turning and boring operations done on a CNC turning center are also more complicated. To do it perfectly, you must treat each segment being machined separately. For this reason, many quoting people will try to come up with an "average" diameter on which to base the rpm calculation. This allows the to more quickly come up with a pretty accurate machining time.

Diameter changes while machining

There are even CNC turning center operations that require the diameter to change even while the cutting tool in engaged with the workpiece. The two most common are facing and necking operations (including cut-off operations). If constant surface speed is used (as it should be), the speed in rpm will accelerate as a facing tool moves toward the center of the workpiece. Again, most estimators will try to come up with an average diameter in order to quickly determine approximate machining time.


Top of page

G Code Primer: G41 Versus G42

G41 and G42 are used with both machining centers and turning centers for similar purposes.  With machining centers, the feature is called cutter radius compensation.  With turning centers, it is called tool nose radius compensation.  In both cases, one of G41 and G42 is used to specify which of two conditions exist related to how the cutting tool is related to the workpiece.  G41 specifies a "tool left" condition while G42 specifies a "tool right" condition.

While these G codes are commonly used, newcomers to CNC often have problems determining which one to use for a given application.  For machining centers, there is a pretty easy way to determine which one to use if you know the difference between climb and conventional milling.  You simply picture a right hand milling cutter (spindle running forward) as it machines the surface in question.  If the milling cutter is climb milling, G41 must be used to instate cutter radius compensation.  If the milling cutter is conventional milling, G42 is used to instate.

Unfortunately, there is no such thing as climb or conventional milling with turning operations, though I know of turning center programmers that will visualize the small radius of a turning tool or boring bar as a tiny milling cutter and use the technique just described to determine which G code to use (this works nicely!).  But if you don't know the difference between climb and conventional milling (commonly the case with lathe people), another way to distinguish between G41 and G42 must be found.

The technique we recommend is: Look in the direction the tool will be moving during its machining operation and ask yourself which side of the workpiece the tool is on.  If the tool is on the left side of the workpiece, a G41 will be used to instate.  If it is on the right side of the workpiece, a G42 will be used.

G41 versus G42


Top of page

Macro Maven: Modal Calling Words

G65 is the most common word used to call a custom macro. Included in the G65 command is a P word to specify the program number for the custom macro being called - and a series of letter address variables (we call arguments) that specify values needed in the custom macro. For example, the command

  • N100 G65 P2000 X3.0 Y3.0 Z0 U2.0 W3.0 F4.0

will call program number O2000 and pass values for X, Y, U, W, and F to the custom macro. In the body of the custom macro, X will be represented by local variable #24, Y by #25, Z by #26, U by #21, W by #23, and F by #9.

Again, this is the most common way to call a custom macro. But depending upon the application, it may not be the most convenient way. Consider, for example, the possibility that this custom macro is used to machine a pocket - and that there are several pockets to machine. The command given above will machine but one of the pockets. To machine a second pocket, two complete G65 commands must be given, like this:

  • N100 G65 P2000 X3.0 Y3.0 Z0 U2.0 W3.0 F4.0

  • N100 G65 P2000 X5.0 Y3.0 Z0 U2.0 W3.0 F4.0

Notice that the only thing that changes from one pocket to the next is the X value. Though this is the case, all other words must still be included if G65 is used to call the custom macro. This isn't really all that tough to do, especially when you consider the copy and paste functions available with today's text editors.

However, there is a way to call the custom macro (with no changes to the custom macro) in a modal fashion. The method we show here incorporates a G code named G66.1 (not a typo - this G code really does have a decimal point!). Before getting too excited about this technique, we recommend that you check to see that your machine has this feature since G66.1 is not available on all controls that have custom macro B (even some newer controls).

To test, simply execute a command including only G66.1 in the manual data input (MDI) mode. If you receive alarm number ten (unusable G code), your machine does not have this feature. If you don't get an alarm - or if the alarm is not alarm number ten - you can use G66.1 in your programs.

Once you call a custom macro with G66.1, the machine will continue to execute your custom macro with each successive command, passing the included letter address arguments just as it does with G65. G67 is used to cancel this modal state. So if program O2000 machines a pocket, the commands

  • N100 G66.1 P2000 X3.0 Y3.0 Z0 U2.0 W3.0 F4.0

  • N105 X5.0

  • N110 X7.0

  • N115 X9.0

  • N120 G67

will machine four pockets, each at a different X position. Notice how similar this technique is to using hole machining canned cycles on a machining center. Once you instate a canned cycle, each subsequent command will cause the machine to machine another hole. Eventually you use a G80 to cancel.

Note that though our example shows only the X word changing from one modal call to the next, any of the other arguments can also change - simply include them in the appropriate commands.


Top of page

Parameter Preference: Single-Stepping Through Calculation And Logic Commands

The function of Single Block, of course, is to allow a setup person or operator to step through a program command-by-command. If the Single Block switch is on, an operator can rest assured that the machine will come to a stop at the end of the current command. To get the machine going again, they must press the Cycle Start button. And if the Single Block switch is left on, they must press the Cycle Start button repeatedly to get through the program.

With certain custom macro B commands, however, the Single Block switch may not always perform as desired. It is important to know that, when Single Block is on, the machine will appear to skip calculation and logic commands. Consider this example:

  • .

  • .

  • N015 G00 X5.0 Y2.0

  • #101 = 1

  • #102 = FUP[#26 / #17]

  • #103 = #26 / #102

  • N020 G01 Z-0.1 F4.0

  • .

  • .

Say the Single Block switch is on. The machine stops at the completion of N015. When the Cycle Start button is pressed, line N020 will be executed and the machine will move. Again, it will be as if the three calculation commands have been ignored. But they have not been ignored. #101 through #103 will be correctly assigned.

Having Single Block behave in this fashion is usually a good thing. You wouldn't want an operator pressing the Cycle Start button over and over again. It may take twenty or thirty pressings of Cycle Start in some custom macros to get through all the calculation and logic commands. This would be very distracting for the operator.

There is one time when you may want to change the function of Single Block so that the machine will stop after (even) calculation and logic commands - when you are verifying a custom macro. Consider these commands:

  • .

  • .

  • N015 G00 X5.0 Y2.0

  • #101 = 1

  • #102 = FUP[#26 / #17]

  • #103 = #26 / #102 - FIX#23

  • N020 G01 Z-0.1 F4.0

  • .

  • .

There is a mistake in the #103 = command. It must be corrected. But when (in normal fashion) the machine "skips" from N015 to N020, an alarm will be sounded. Since the operator knows line N015 is the last motion command, it's likely that they will think the alarm is being generated with the next command (the #101 command).

Just knowing that any of the calculation and logic commands between N015 and N020 could be causing the alarm may be enough to help diagnose the problem. But it's nice to know that a parameter can be modified to change the function of Single Block - causing the machine to stop after every command - including calculation and logic commands.

Another time this can be helpful is when you have a series of progressive calculation commands and one calculation is depending upon another. It can be difficult to determine which of several commands is causing a miscalculation - unless you can see the resulting variable value after each calculation command is executed (this can be done by toggling between the program page and the variables page of the display screen).

On a 16 series Fanuc control, bit number five of parameter number 6000 controls this function (it is labeled as SBM in the Fanuc documentation). If this bit (the sixth one from the right) is set to 1 (one), the machine will stop at each calculation and logic command. If set to 0 (zero) - which is the normal setting - the machine will only stop at true CNC commands. Remember, of course, that parameter numbering changes from one Fanuc model to the next, meaning you'll have to look up the related parameter on your control (look in the custom macro descriptions - it should be easy to find).

Do note that if you change this parameter while verifying a custom macro, you must remember to change it back when your finished so as not to cause problems for the operator.


Top of page

Safety Note: Understand Your Turning Center's Chuck Clamping Direction Selection

Almost all current-model CNC turning center that are equipped with three-jaw chucks have a way to select clamping direction. An inward (toward chuck center) clamping direction is, of course, required for external (o.d.) clamping while an outward (away from chuck center) clamping direction is required for internal (i.d.) clamping.

Most turning centers are pretty well interfaced in this regard - at least from a safety standpoint. If, however, clamping direction can be changed while the spindle is running, the results could be disastrous. Consider inadvertently changing clamping direction from o.d. to i.d. while the machine is in cycle. The chuck jaws would open - releasing the workpiece being held by the chuck. The faster the chuck is rotating at the time, the worse the results could be.

Again, many turning centers are set up in such a way that chuck clamping direction cannot be reversed unless the spindle is stopped - which eliminates the disastrous results just mentioned. But we must point out that not all machines are so well interfaced.

We know of at least one turning center manufacturer that uses a mechanical valve to reverse chuck clamping direction. That is, the setup person simply moves a lever to change clamping direction. The builder we're thinking of, knowing a dangerous situation could exist, provides a long bolt that is must be removed before clamping direction can be changed (this bolt also eliminates the possibility that the valve lever can be accidentally bumped into its other position).

But if this bolt is not replaced each time the clamping direction is changed, nothing will prevent the valve lever from being moved while the spindle is running - meaning a workpiece could be released at very high rpm - and again - the results will be disastrous.

If you run or work with a CNC tuning center of any kind, find out how chuck clamping direction is changed. Determine whether or not the clamping direction could inadvertently be changed while the machine is in cycle. If this is possible, be sure that all safety protocols that the machine tool builder recommends are in place.


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.