Key concept number three: You Must Understand The Motion Types Available On
Your CNC Machine
During key concept number one, we discussed how end points for axis motion
are commanded utilizing the rectangular coordinate system. During that
presentation, however, we were only concerned with describing how the CNC
machine determines the END POINT position for each motion. To effectively
command motion on most CNC machines requires more than just specifying end
points for positioning movements.
CNC control manufacturers try to make it as easy as possible to make
movement commands within the program. For those styles of motion that are
commonly needed, they give the CNC user interpolation types.
Say for example, you wish to move only one linear axis in a command. Say you
wish to move the X axis to a position one inch to the right of program zero. In
this case, the command X1. would be given (assuming the absolute mode is
instated). The machine would move along a perfectly straight line during this
movement (since only one axis is moving). Now let's say you wish to include a Y
axis movement to a position one inch above program zero in Y (with the X
movement). We'll say you are trying to machine a tapered or chamfered surface
of your workpiece in this command. For the control to move along a perfectly
straight line to get to the programmed end point, it must perfectly synchronize
the X and Y axis movements. Also, if machining is to occur during the motion, a
motion rate (feedrate) must also be specified. This requires linear
During linear interpolation commands, the control will precisely and
automatically calculate a series of very tiny single axis departures, keeping
the tool as close to the programmed linear path as possible. With today's CNC
machine tools, it will appear that the machine is forming a perfectly straight
line motion. However, Figure 3.1 shows what the CNC control is actually doing
during linear interpolation. Figure 3.1 - Actual motion generated with linear
interpolation. Notice the series of very tiny single axis movements. The step
size is equal to the machine's resolution, usually 0.0001 in or 0.001 mm.
In similar fashion, many applications for CNC machine tools require that
the machine be able to form circular motions. Applications for circular motions
include forming radii on turned workpieces between faces and turns and milling
radii on contours of machining center workpieces. This kind of motion requires
circular interpolation. As with linear interpolation, the control will do its
best to generate as close to a circular path as possible.
Other interpolation types
Depending on the machine's application, you may find that you have other
interpolation types available. Again, CNC control manufacturers try to make it
as easy as possible to program their controls. If an application requires a
special kind of movement, the control manufacturer can give the applicable
interpolation type. For example, many machining center users perform thread
milling operations on their machines. During thread milling, the machine must
move in a circular manner along two axes (usually X and Y) at the same time a
third axis (usually Z) moves in a linear manner. This allows the helix of the
thread to be properly machined. This motion resembles a spiraling motion
(though the radius of the spiral remains constant).
Knowing that their customers need this type of motion for thread milling,
CNC machining center control manufacturers offer the feature helical
interpolation. With this feature, the user can easily command the motions
necessary for thread milling.
The three most basic motion types
While your particular CNC machine may have more motion types (depending on
your application), let's concentrate on becoming familiar with the three most
common types of motion. These three motion types are available on almost all
forms of CNC equipment. After briefly introducing each type of motion, we'll
show an example program that stresses the use of all three.
These motion types share two things in common. First, they are all modal.
This means they remain in effect until changed. If for example, several motions
of the same kind are to be given consecutively, the corresponding G code need
only be specified in the first command. Second, the END POINT of the motion is
specified in each motion command. The current position of the machine will be
taken as the starting point.
Rapid motion (also called positioning)
This motion type (as the name implies) is used to command motion at the
machine's fastest possible rate. It is used to minimize non-productive time
during the machining cycle. Common uses for rapid motion include positioning
the tool to and from cutting positions, moving to clear clamps and other
obstructions, and in general, any non-cutting motion during the program.
You must check in the machine tool builder's manual to determine a machine's
rapid rate. Usually this rate is extremely fast (some machines boast rapid
rates of well over 1000 IPM!), meaning the operator must be cautious when
verifying programs during rapid motion commands. Fortunately, there is a way
for the operator to override the rapid rate during program verification.
The command almost all CNC machines use to command rapid motion is G00.
Within the G00 Command, the end point for the motion is given. Control
manufacturers vary with regard to what actually happens if more than one axis
is included in the rapid motion command. With most controls, the machine will
move as fast as possible in all axes commanded. In this case, one axis will
probably reach its destination point before the other/s. With this kind of
rapid command, straight line movement will NOT occur during rapid and the
programmer must be very careful if there are obstructions to avoid. With other
controls, straight line motion will occur, even during rapid motion commands.
Straight line motion (also called linear interpolation)
This motion type allows the programmer to command perfectly straight line
movements as discussed earlier during our discussion of linear interpolation.
This motion type also allows the programmer to specify the motion rate
(feedrate) to be used during the movement. Straight line motion can be used any
time a straight cutting movement is required, including when drilling, turning
a straight diameter, face or taper, and when milling straight surfaces. The
method by which feedrate is programmed varies from one machine type to the
next. Generally speaking, machining centers only allow the feedrate to be
specific in per minute format (inches or millimeters per minute). Turning
centers also allow feedrate to be specified in per revolution format (inches or
millimeters per revolution).
A G01 word is commonly used to specify straight line motion. Within the G01,
the programmer will include the desired end point in each axis.
Circular motion (also called circular interpolation)
This motion type causes the machine to make movements in the form of a
circular path. As discussed earlier during our presentation of circular
interpolation, this motion type is used to generate radii during machining. All
feedrate related points made during our discussion of straight line motion
Two G codes are used with circular motion. G02 is commonly used to specify
clockwise motion while G03 is used to specify counter clockwise motion. To
evaluate which to use, you simply view the movement from the same perspective
the machine will view the motion. For example, if making a circular motion in
XY on a machining center, simply view the motion from the spindle's vantage
point. If making a circular motion in XZ on a turning center, simply view the
motion from above the spindle. In most cases, this is as simple as viewing the
print from above.
Additionally, circular motion requires that, by one means or another, the
programmer specifies the radius of the arc to be generated. With newer CNC
controls this is handled by a simple "R" word. The R word within the
circular command simply tells the control the radius of the arc being
commanded. With older controls, directional vectors (specified by I, J, and K)
tell the control the location of the arc's center point. Since controls vary
with regard to how directional vectors are programmed, and since the R word is
becoming more and more popular for radius designation, our examples will show
the use of the R word. If you wish to learn more about directional vectors, you
must reference your control manufacturer's manual.
Example program showing three types of motion.
In this particular example, we are milling around the outside of a
workpiece contour. Notice that we are using a one inch diameter endmill for
machining the contour and we are programming the very center of the end mill.
Later, during key concept number four, we will discuss a way to actually
program the workpiece contour (not the cutter centerline path). While you may
not understand all commands given in this program, concentrate on understanding
what is happening in the motion commands (G00, G01, and G02/G03). With study,
you should be able to see what is happening. Messages in parentheses are
provided to document what is happening in each command.
O0002 (Program number)
N005 G54 G90 S350 M03 (Select coordinate system, absolute mode, and start
spindle CW at 350 RPM)
N010 G00 X-.625 Y-.25 (Rapid to point 1)
N015 G43 H01 Z-.25 (Instate tool length compensation, rapid tool down to
N020 G01 X5.25 F3.5 (Machine in straight motion to point 2)
N025 G03 X6.25 Y.75 R1.0 (CCW circular motion to point 3)
N030 G01 Y3.25 (Machine in straight motion to point 4)
N035 G03 X5.25 Y4.25 R1.0 (CCW circular motion to point 5)
N040 G01 X.75 (Machine in straight motion to point 6)
N045 G03 X-.25 Y3.25 R1.0 (CCW circular motion to point 7)
N050 G01 Y.75 ((Machine in straight motion to point 8)
N055 G03 X.75 Y-.25 R1.0 (CCW circular motion to point 9)
N060 G00 Z.1 (Rapid away from workpiece in Z)
N065 G91 G28 Z0 (Go to the machine's reference point in Z)
N070 M30 (End of program)
Keep in mind that CNC controls do vary with regard to limitations with
motion types. For example, some controls have strict rules governing how much
of a full circle you are allowed to make within one circular command. Some
require directional vectors for circular motion commands instead of allowing
the R word. Some even incorporate automatic corner rounding and chamfering,
minimizing the number of motion commands that must be given. Though you must be
prepared for variations, and you must reference your control manufacturer's
programming manual to find out more about your machine's motion commands, at
least this presentation has shown you the basics of motion commands and you
should be able to adapt to your particular machine and control with relative