To subscribe: Simply email us (firstname.lastname@example.org) 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.
Our CNC Schools Page
We maintain this free service to help potential students find schools that have CNC courses. This service is free to both students and to schools.
Click this CNC Schools link to go to our CNC schools page. Educators can post a free listing for their schools by clicking the "INSTRUCTORS: LIST YOUR SCHOOL" link at the top of the page. Potential students can simply scroll down the list of schools (they're in alphabetical order by state) to find a CNC-teaching school in their area.
Note that most listings include a link to the school and the name/contact information for an instructor in the CNC program. Here is a sample listing:
The Machine Tool Technology program offers several certificate programs in Numerical Control as well as AAS degree. The program offers one year basic machining practice and one year computer numerical control. We teach all applications manual and cnc machining and serve some two hundred machine shops in this area..
Again, we maintain this page as a free service to CNC-teaching schools and people looking for a CNC education. We hope you find it useful.
Instructor note: Teaching CNC with the Key Concepts approach - part three
Part three - Key concept number two: You must be prepared to create programs
Here in part three, we're going to discuss topics related to preparing to create programs. Here is a list of the general topics that we include in key concept number two:
As with every key concept, the general presentations must work for any kind of CNC machine. But specific presentations will apply only to the kind of CNC machine tool/s you are describing in your class.
Importance of preparation
I'll begin by describing why it is important to prepare to develop a program. I'll point out that though this key concept has nothing to do with programming commands, it is among the most important key concepts. I'll say something like "The success of your program is directly related to the preparation you do to get ready to create it - and you know the saying 'Garbage in - garbage out'. If you don't adequately prepare, you can't expect your program to machine good parts."
You can use analogies to help. Point out that a public speaker must prepare prior to making a presentation. Without adequate preparation, the speaker will be likely to make mistakes during the presentation. In similar fashion, an ill-prepared CNC programmer will be likely to make mistakes when programming.
Since mistakes can lead to dangerous situations, make sure students understand that there is a direct relationship between preparation and safety. I'll prepared programmers are dangerous programmers.
Yet another benefit of adequate preparation is efficiency. Mistakes lead to wasted time. Given the expensive nature of CNC machine tools, there is no excuse for machine downtime for something as basic as lack-of-preparation.
I also like to point out that the simplest part of the programming process is actually writing the program. I'll say something like "You probably don't yet agree, but an experienced programmer will say that the easiest part of the programming process is actually developing the program. The hard work lies in the preparation needed to get ready to do so."
Some programmers actually feel that they're wasting time by doing the preparation steps we recommend. They want to get right to the task of programming. But point out that adequate preparation will keep a programmer on track when programming. They won't have to break their train-of-thought to come up with a cutting condition or calculate a coordinate - if they've adequately prepared.
Determine the sequence of machining operations (process)
After studying the print and determining what must be done by the CNC machine (you may want to point out that there may be other machines involved in the manufacturing of a given workpiece), the programmer must come up with a machining sequence (process) that will machine good parts. This makes a good time to reiterate the need for machining practice skills. Drawing on these skills, the programmer must come up with a workable process.
While I don't like to get too detailed with machining practices, I do like to mention that there is a correlation between quality, efficiency, and process. The first goal, of course is to make good workpieces. And the process will have a big impact on the quality of the workpieces being produced. I'll show this general turning center process and ask students to identify what's wrong:
This process breaks an important rule of basic machining practice: Rough everything before you finish anything. With this process, there will be concentricity problems between internal diameters and external diameters if the workpiece shifts at all during the drilling and rough boring operations. Hopefully students catch this mistake right away. Point out that if they feel at all weak with their ability to develop a workable process, they should show their completed process to an experienced machinist for approval before creating the program.
I provide a Sequence of Operations Planning Form. This form allows programmers to develop a process and includes sequence order number, operation description, cutting tool description, tool station number, feedrate, and spindle speed. I point out that this completed form is the English version of the program. Not only will this completed form help the programmer stay on track during programming (not skip an operation), it will provide excellent documentation for anyone that must work on the program in the future.
Come up with the cutting tools needed in the program and make sure they are available and capable of machining as required
Point out that a cutting tool will be needed for each machining operation, and again, students must draw on their basic machining practice skills to come up with appropriate cutting tools. The student must also make sure the tools they select are available (in stock), or they must be ordered.
Students must also determine if there are any special considerations for the cutting tools they use in a program. With a machining center program, for example, a cutting tool may have to reach down into the cored hole in a casting, being long enough to reach the machined surface. If it's not long enough, the shank will hit on the top of the casting. These are considerations the programmer must consider and deal with.
As mentioned earlier, the Sequence of Operations Planning Form includes a place to document the cutting tool to be used for each operation, along with the CNC machine's tool station number in which the tool will be placed.
Determine cutting conditions for cutting tools
Prior to programming, the programmer must calculate the cutting conditions to be used for each cutting tool. Again, this will keep the programmer from having to do so while programming. As with the planning of the process and cutting tool selection, this requires the programmer to draw on their basic machining practice skills.
The Sequence of Operations Planning Form provides a place to document this information.
Calculate all coordinates to be used in the program
Since this curriculum is for manual (G code level) CNC programming, the programmer must calculate all coordinates to be used in the program. Do note that all preparation steps discussed to this point are required of any programmer, regardless of how programs are prepared (even if using a computer aided manufacturing system).
I tell students that if the print is large and roomy, they can write the needed coordinates right on the print, close to the location of the coordinate. But since most prints are small and cluttered, they provide no room for such documentation.
If there is no room on the print, I ask them to draw a dot on the print at each location a coordinate is required. And then they must number the dots. On a separate sheet of paper (I call a coordinate sheet), I have them write down the X, Y, and Z coordinates for each dot numbered on the print (or just X and Z for turning centers). Here is an example coordinate sheet:
Notice that an X and Y location are documented for each point. For Z, notice that there are multiple values (approach position, center drill bottom position, and drill bottom position). I urge students to document every coordinate needed in the program. This will keep them from having to calculate any coordinates while programming.
Plan the setup
There are many things about how setups are made that effect the way a program must be written. We've already talked about how cutting tool station numbers are documented on the Sequence of Operations Planning Form, and the programmer must, of course, know which station each tool to use in the program for each cutting tool.
In similar fashion, there are things about the workholding setup that effect the way a program must be written. The programmer must know, of course, where clamps and other obstructions will be so they can be avoided in the program. For this reason, the programmer must plan the entire setup before the program can be written.
Most companies use a standard one-page setup sheet. You can create a setup sheet form including a place to document cutting tools and their placement in the machine, a place to write setup instructions, and a place to draw a sketch of the workholding setup.
You're finally ready to write the program!
Armed with all of these things being done, a programmer is truly ready to write the program. There will be no problems or questions to ponder while the program is being written. All answers will already be documented. Again, this minimizes potential for mistakes when programming, provides excellent program documentation, and will allow the programmer to concentrate on the task at hand.
Time saver: Can you speed up your tool change time?
Machining centers, of course, have automatic tool changing devices to automate the tool changing process. Current models boast very fast tool changing times and you may be quite satisfied with tool changing time. But for older models, and if you're trying to minimize cycle time, there may be some things you can do to reduce tool change time. We offer a few suggestions.
From a cycle-time-reduction standpoint, tool changing is a non-productive on-line task. That is, it does not further the completion of the workpieces (only machining operations do this), and it adds to the time it takes to complete a production run. Anything that reduces tool changing time will, of course, make the machine more productive. When you consider how many tool changes a machining center will make during its lifetime, minimizing tool change time should be an important priority for any CNC-using company.
Most automatic tool changers require that the keyways in the cutting tool shank be aligned with the keys in the tool changing arm before a tool change can be made. This angular spindle position is called the spindle's orient position. Spindle orientation is done as part of the tool change command (M06).
Spindle orientation takes time (one to five seconds, depending upon the machine). Don't wait until the machine is at the tool change position before performing the spindle orient. A special M code (M19) can be used to cause the spindle to rotate to its orient position during the motion to the tool change position. Include an M19 in every command that sends the machine to its tool change position. If the machine's Z axis zero return position is the tool change position, as it is for most vertical machining centers, this command will cause the spindle to begin orienting as soon as the machine starts to move:
And again, this command will save time because the spindle will begin rotating to its orient position during the motion to the tool change position. Depending upon the machine's rapid rate, the distance to the tool change position, and how fast the spindle orientation occurs, it is possible that you can make spindle orientation time internal to the motion time. This, in effect, eliminates spindle orientation time from the program (possibly saving one to five seconds per tool change).
Note that machine tool builders vary when it comes to how they handle M codes. Given the command above, the vast majority of machines I've seen will begin to rotate the spindle to its orient position as soon as the Z axis starts to move. But I have seen some machine too builders that do not interface the M19 in this fashion. Instead, the spindle may orient before (or after) the motion occurs. This, of course, will not save any time.
If you happen to have one of these poorly interfaced machines, contact your machine tool builder and tell them that you want spindle orientation to occur during motion. Given the amount of time that can be saved over the machine's lifetime, don't take no for an answer. With today's programmable logic controllers, this should be pretty easy to do. You may even find that you have three special M codes that control when M code functions occur, before, during, or after motion commands.
How far does the machine have to move?
With most machining centers, the automatic tool changer arm is in a fixed location - and the machine must be sent to a special position in X, Y , and/or Z in order to make a tool change. With vertical machining centers, for example, the tool change position is commonly the Z axis zero return position. For horizontal machining centers, it is commonly the Y and Z axis zero return position.
Unless special interference problems exist with the job, be sure to minimize the distance the machine must move in order to make a tool change. With a vertical machining center, send the machine to (only) the Z axis zero return position. Sending the machine to the X and/or Y axis zero return position will be a waste of time (again, unless interference problems exist).
There are vertical machining centers available with which the tool change mechanisms move along with the Z axis. This means they can change tools in any position when a tool change is commanded. With these machines, you must be concerned with the lengths of cutting tools when commanding tool changes, but you can minimize the distance a machine must move in order to change tools.
Should you place tools in the tool changer magazine in sequential order?
Today's machining centers have random-access tool changers. This, of course, means that tools can be placed in the tool changer magazine in any fashion, yet they can be accessed in any order. This is a wonderful feature, allowing great flexibility in tool placement. But watch out for a time-wasting trade-off.
This is especially true for machines that have a single arm tool changer. With these machines, the cutting tool just used must be placed back in the tool changer magazine before the magazine can rotate to the next tool. Magazine rotation, of course, is not instantaneous. Magazine rotation time is a non-productive on-line task that can be minimized if tools are placed in the magazine in a sequential manner.
Machines with double-arm tool changers can have the magazine begin to rotate to the next cutting tool station while the current tool is working on the workpiece. But the program must be written in a fashion that allows this. Be sure to include a magazine rotation word (a T word with most controls) in the program close to the beginning of each tool:
Even with double-arm tool changers, of course, the tool changer magazine cannot rotate instantaneously. The larger the magazine, the slower it will move and the longer it will take to rotate. For machines having large magazines, magazine rotation time will be substantial. Consider a magazine that can hold one hundred tools or more. It may take over thirty seconds for the magazine to rotate to a tool that is on the other side of the magazine.
If a machining operation for a given tool takes a long time to complete (over thirty seconds for the example above), this will not create a time-wasting problem. The magazine will have rotated to its next position before the machine will be ready for its next tool change. But consider a short machining operation. Say a center drill must machine but one hole in a soft material. The tool may compete its operation in less than five seconds - and the machine may be back at the tool change position long before the magazine has completed its rotation to the next station.
This is one time when placing cutting tools in the magazine in close proximity will minimize tool changing time. Note that it will also ensure that cycle time will be consistent from one time a job is run to the next.
How heavy are your tools?
The actual act of tool changing requires a synchronized series of actions. The tool changer double-arm rotates to grab the tools in the ready station and spindle. The tools are a released, and the double arm pulls the tools out. It then rotates 180 degrees, bringing the tool in the ready station to the spindle and vise versa. The arm then pulls the tools into the spindle and ready station. Finally, the tools are clamped and the double arm rotates away.
We think of these actions as fixed and unchangeable - and with some machines, they may be. But remember that machine tool builders always strive to have their machines deal with the worst case scenario. If a machine tool builder claims that the automatic tool changer on a given machine can change a fifty-pound tool, they have designed the automatic tool changer mechanism accordingly - including the speed related to each action of the tool change.
Maybe you have a machine that has been designed to change a fifty-pound tool (or more), but your heaviest tool is less than twenty pounds. It is possible that the machine tool builder can speed up your machine's automatic tool changer to match your heaviest tool. Machine tool builders vary when it comes to how willing they will be to do so, but it sure doesn't hurt to ask.
G-code primer: Using Directional Vectors with Circular Motion
Most programmers specify the arc size in circular motion commands with an R word. Indeed, this is the method we teach in our basic CNC courses. With the R word, you simply specify the size of the arc being machined. It couldn't get much simpler.
You must understand, however, that not all circular motions can be made using the R word. With most controls, the radius being machined must be tangent to the two adjacent surfaces (commonly straight surfaces) in order for the R word to work. Or, if you intend to make a full circle motion (360 degrees of motion) in one circular motion command, many controls do not allow you to use the R word to do so.
Additionally, the R word is a little to forgiving for some programmers. If you make a mistake with the coordinates or the size of the R word, most controls will do something - but probably not what you want it to do. That is, no alarm will be sounded even though a mistake has been made.
The alternative to using the R word to specify arc size in a circular command is to use directional vectors. For Fanuc and Fanuc-compatible controls, one directional vector is used to specify the distance and direction from the start point of the arc to the center of the arc in each axis.
Note that most circular motion commands occur in the XY plane, so K can be omitted. Additionally, if there is no distance from the start point of the arc to the center of the arc along a given axis, that component (I, J, and/or K) can be omitted from the command.
One way to get comfortable with directional vectors is to draw an arrow along each axis from the start point to the center of the arc. Remember each arrow can only point along an axis (not diagonally). After you've drawn the arrow/s, ask yourself which way each arrow is pointing. If it is pointing along the X axis, an I word must be included in the circular command. If it is pointing along the Y axis, a J word must be included in the circular command.
Remember that there is also a polarity (plus or minus) for each directional vector. As with any other CNC word, the control will assume a positive value unless the minus sign (-) is included within the word. If an "X arrow" is pointing in the X minus direction, the I word in the circular command will be negative. If a "Y arrow" is pointing in the Y minus direction, the J word in the circular command will be negative.
Here is a drawing that we'll use for the example program. Notice that none of the radii to be machined are tangent to both adjacent surfaces, meaning most controls will not allow circular commands to be made using the simpler R word. The lower left corner of the workpiece will be the program zero point for the program that follows. And by the way, this drawing is not to scale.
We're going to be using cutter radius compensation (a 0.75 diameter cutter could be used), and programming the work surface path. The radius of the cutter must be placed in offset number thirty-one. The cutter will start in the lower left corner and mill in a climb milling fashion (clockwise around the workpiece). Also note that we've dimensioned the drawing a little more completely than most design engineers would. In the real world, there will probably be some trig to do.
Here is the program for this workpiece.
Explanation of directional vectors in the example program
Upper left arc (N045): Only one arrow can be drawn from the start point of this arc to its center - and it will be pointing in the Y plus direction. This means a positive J word will be used in the command. Its value will be the radius of the arc (0.975).
Upper right arc (N055): For this arc, one arrow can be drawn in the X plus direction and another in the Y plus direction from the start point to the center of this arc. This means both an I plus and J plus word must be included in the circular command. I will be 0.6634 (7.187 minus 6.5236) and J will be 0.7145 (1.7145 minus 1.0).
Lower right arc (N075): Again, two arrows can be drawn from start point to center, one in the X minus direction and one in the Y minus direction. This means both an I and J word will be required in the command and they will both be minus. I will be -0.8093 (7.1843 minus 6.375). J will be -0.745 (specified on print).
Lower left arc (N085): With this arc, only one arrow can be drawn from start point to center, and it will be pointing along the Y minus direction - meaning a J minus word will be required in the circular command. Its value will be -1.1, the arc radius as specified on the print.
By the way, if you make a mistake using directional vectors, and even if you're off by only a tiny amount, an alarm will be sounded.
Parameter preference: Retract Amount In G73 Chip-Break Peck Drilling Cycle
Parameters control countless things about the way your CNC machine tools behave. In each Parameter preference segment, we will expose a parameter that has an important impact on how your machines run. But first, a disclaimer. Parameters vary from one Fanuc control model to another - as do the actual functions they control. Always check in your Fanuc Operators manual and/or Maintenance manual to confirm the parameter number and settings we show. Never blindly change a parameter! If there is any doubt about what the parameter does, contact your machine tool builder to learn more.
As machining center programmers know, G73 is used when you want a drill to break chips as it machines a hole. This is important when the material being machined is gummy, and chips have the tendency to form a long string - as is the case with many steels. G73 causes the control to peck a small distance, specified by the Q word in the G73 command. It will then retract a tiny amount, and peck again. This pecking action is repeated until the hold depth is reached (specified by the Z word in the G73 command), at which time the drill will retract all the way out of the hole.
The peck amount (again, specified by the Q word) should be just enough to allow the chip to be broken at a manageable length. Usually 0.1 inch is a good peck amount.
Note that with Fanuc and Fanuc-compatible controls, the retract amount is not programmable. Instead, it is set by a parameter. It should be a tiny value - just big enough to cause the chip to break. A value of 0.003 - 0.005 inch is usually sufficient to cause chip breakage. The larger this value, the more time the G73 command will take to execute. The motion directly after each retract will, of course be done at the programmed feedrate for the G73 command. The greater the retract, the more time it will take the drill to get back into the cut.
The initial value of this parameter is, of course, set by the machine tool builder, and unfortunately, we've seen some machine tool builders that excessively set this parameter. Even if your machine appears to be executing the G73 command in an acceptable manner, we urge you to check the value of the retract amount. We've seen machine tool builders that initially set this value to 0.1 inch. If the peck depth (Q) is also set to 0.10 inch, this retract amount will double the length of time it takes to machine each hole!
Finding the parameter
Frankly speaking, Fanuc does not make it very easy to find parameters - or to understand their meaning. And remember, parameters vary from one control model to another. Whenever looking for a parameter, or if you're questioning whether a parameter is related to a given machine function, I recommend first looking in the Fanuc Operators Manual in the section that describes the feature in question.
In our case, I'm looking in the Fanuc 15M Operators Manual in the section that describes G73. As is common with Fanuc, the description is a little cryptic. It goes like this:
From this we learn that it is parameter number 6210 for a 15M control. Remember, it will be a different parameter number for other Fanuc control models - and you can find out which one by looking at the description of G73 in your Fanuc Operators Manual.
When looking at parameter number 6210 in the parameter documentation for a 15M control (I'm looking in the Operation and Maintenance Handbook to see the parameter documentation), I find that parameter 6210 is specified with a value (as opposed to a 8-bit binary parameter). Actually, the parameter documentation reads as follows:
From past experience, I know that this value must be specified without a decimal point. In the inch mode, a four-place format must be used (in metric, it will be a three-place format). If you work in the inch system, a value of 0.005 inch must be specified as 0050 (or simply 50). If you work in the metric system, a value of 0.1 mm will be specified as 100.
Again, we urge you to check the setting for this parameter for your controls. If you've never checked it, you may find that it is excessively set.
Manager's corner: Your most important resource
The people you have working for you contribute the most to your success. Without good, knowledgeable people, even the best managers will likely fail. Unfortunately, it is becoming harder and harder to find and keep proficient CNC people. Given this problem, you have two alternatives: You can either improve the proficiency of your people, or you can simplify the tasks they must perform.
Improving proficiency is probably the single-most effective way to improve productivity. Proficient programmers write efficient programs. Proficient setup people make efficient setups. Proficient CNC operators run good parts. Think of any facet of manufacturing (or in any profession). Improving the proficiency of the people involved will, in turn, improve their productivity. It's as simple as that.
The most obvious way to improve proficiency is to provide training in areas that your people are weak. Get them up to speed. And don't just get them to the point that they can make do - bring them to the point that they are truly confident with the tasks they must perform. Again, truly proficient people are the most productive people.
Though providing training is the most obvious way to improve proficiency, there are alternatives. Positive reinforcement for jobs well done, incentives to reach acceptable proficiency levels, and tangible participation in the companies success help provide the motivation it takes for your people to want to improve. With the right amount of motivation, your people can do just about anything.
As stated, you can also improve productivity by lowering the proficiency (skill) level required to perform a given task. I call this the fast-food approach. When you order your favorite meal at any fast-food restaurant, you probably say something like "meal number three". Your server simply presses one button on the cash-register and is told the food to put in the bag and how much to charge. When you pay, the server types the amount you've provided and the cash-register tells them how much money to give you back. This makes it possible for just about anyone to work in a fast-food restaurant.
You can apply this approach to any task a CNC person is required to do. Though most (motivated) people would prefer to learn what it takes to become proficient with the task at its current difficulty level, you can also achieve great success by reducing the skill required to perform the task.
Past issues of The Optional Stop newsletter have been filled with techniques aimed at lowering the proficiency required to perform CNC-related tasks. Additionally we provide many proficiency-reducing CNC tips on our website. But the best way to determine which tasks are currently causing problems is to watch your CNC people.
Complex tasks should be pretty easy to spot. Look for wasted time, duplicated effort, confused people, scrap parts, damaged machines, and in general, anything that detracts from productivity. These symptoms should be taken as a signal that you must either improve the proficiency of the people involved - or lower the proficiency required to perform the task.
Safety tip: Keep A Finger Ready To Press Feed Hold!
This is a pretty simple tip, and very easy to implement. And we can almost guarantee that it will save a crash some day. Whenever you press the cycle start button, get in the habit of having a finger ready to press the feed hold button. Feed hold, of course, will instantly stop the machine's axis motion. This button is usually in close proximity to the cycle start button, so you may even be able to use one hand for both buttons (a forefinger for cycle start and a thumb for feed hold).
You know that there are many switches that have to be properly set in order for the machine to behave as you expect it to. You may be doing a dry run, and wanting to take control of the machine's motion during approach movements. If everything isn't perfect, you may be expecting the machine to "crawl up" to the workpiece, but when you press the cycle start button, it takes off at rapid! Without a finger ready to press the feed hold button, you first have to find it. By the time you do, it may be too late.
Keeping a finger ready to press the feed hold button is especially important when you are in doubt about what the machine is going to do. Maybe you've just completed a setup and you're ready to run the program for the first time. Maybe you're rerunning a tool. Maybe you've been away from the machine for a break or lunch. Or maybe you're starting your shift. We urge you to always have a finger ready to press the feed hold button whenever you press the cycle start button - you never know when it will help you avoid a nasty surprise.