Machining Center'S CNC Control Programming Manual
Machining Center'S CNC Control Programming Manual
PROGRAMMING MANUAL
4 Programming Coordinates
5 Two-Axis Programming
6 Three-Axis Programming
Appendix
GLOSSARY
◆ 1 Numerical Control System
1 NUMERICAL CONTROL SYSTEMS
THE CARTESIAN COORDINATE SYSTEM
The basis for all machine movement is the Cartesian coordinate system. Fig.1-1
illustrates two-and three-axis coordinate systems. On a machine tool, an axis is a
direction of movement. The X and Y axes on the coordinate system shown in Fig.1-1(a)
can be likened to a two-axis milling machine, where X is the direction of the table
travel, and Y is the direction of the cross (or saddle) travel. Fig.1-1(b)
illustrates a three-axis coordinate system. Using a vertical mill for example, X
would be the table travel, Y the cross (saddle) travel, and Z the spindle travel
(up and down). Fig.1-2 illustrates the three-axis system on a vertical mill.
Machines are also available in four-and five-axis arrangements. A six-axis layout is
shown in Fig.1-3. The milling machines programmed in this text will all use this EIA
standard axis arrangement.
Cartesian coordinate systems are divided into quarters (quadrants). In Fig.1-4,
the quadrants have been labeled Ⅰ,Ⅱ,Ⅲ, and Ⅳ, respectively,in a counterclockwise
direction. This is the universal way of labeling axis quadrants. Note that the signs
of X and Y change when moving from quadrant to quadrant.
Fig.1-5 shows a number of points on a two-axis Cartesian system. Each of the
points can be defined by a set of coordinates. The X-axis value is given first;the
Y-axis value second. In mathematics this set of points is called an ordered pair. In
numerical control programming, the points are referred to as coordinates.
1-1
FIG.1-2 Three-axis vertical mill Fourth-axis horizontal mill
( Vertical Mycenter series ) ( Horizontal Mycenter series )
1-2
FIG.1-5 Cartesian coordinates
POSITIONING SYSTEMS
There are two ways that machines position themselves with respect to their
coordinate systems. These two systems are called absolute positioning and
incremental positioning.
[Absolute Positioning]
In absolute positioning (Fig.1-6), all machine locations are taken from one
fixed zero point. Note that all positions on the part are taken from the X0/Y0
point at the lower left corner of the part. The first hole would have coordinates
of X1.000, Y1.000; the second hole coordinates are X2.000, Y1.000; the third hole
coordinates are X3.000, Y1.000. Every time the machine moves, the controller
references the original zero point at the lower left corner of the par
1-3
ZERO REFERENCE POINT
FOR A MOVE TO ANY LOCATION
[Incremental Positioning]
In incremental positioning (see Fig.1-7), the X0/Y0 point moves with the machine
spindle. Note that each position is specified in relation to the previous one. The
first hole coordinates are X1.000, Y1.000; the second hole coordinates are X1.000,
Y0.000. The third hole coordinates are again X1.000, Y0.000. After each machine
move, the current location is reset to X0/Y0 for the next move. Fig.1-8 and 1-9
illustrate absolute and incremental positioning and their relationship to the
Cartesian coordinate system. Notice that with incremental positioning, the
coordinate system“moves”with the location. The machine controller does not
reference any common zero point.
1-4
ZERO POINT
FOR AMOVE
TO ANY LOCATION
Most CNC machinery has a default coordinate system the machine assumes upon
power-up, known as the machine coordinate system. The origin of this system is
called the machine origin or home zero location. Home zero is usually, but not
always, located at the tool change position of a machining center. A part is
programmed independent of the machine coordinate system. The programmer will pick a
location on the part or fixture. This location becomes the origin of the coordinate
system for that part. The programmer's coordinate system is called the local or part
coordinate system. The machine coordinate system and the part coordinate system will
almost never coincide. Prior to running the part program, the coordinate system must
be transferred from the machine system to the part system. This is known as setting
a zero point.
There are three ways a zero point can be set on CNC machines; manually by the
operator, by a programmed absolute zero shift, or by using work coordinates.
1-5
[Manual Setting]
When manual zero setting is used, the set-up person positions the spindle over
the desired part zero and zeros out the coordinate system on the MCU console. The
actual keystroke sequence for accomplishing this varies from controller to
controller.
In line NO10 the spindle moves to home zero. Following line NO20, even though the
spindle did not physically move from home zero, the location of the spindle became
X5.0 Y6.0 Z7.0 as far as the MCU is concerned. The machine will now reference the
part coordinate system. G92 is a fairly standard command for an absolute zero shift.
The term“G92 line”is often used to describe an absolute zero shift.
If more than one fixture is to be used on a machine, the programmer will want to
use more than one part coordinate system. By sending the spindle back to home zero
using a G28 X0 Y0 Z0 command, another G92 line can be used in the program to set the
second part coordinate system.
[Work Coordinates]
When using G92 zero shifts, the coordinate system was changed to the part
coordinate system when the G92 line was issued. When using work coordinates, a
register can be set at one place in the program and called at another. If more than
one fixture is used on a machine, a second part zero can be entered in a second work
coordinate, and called up when needed. The work coordinate registers can be set
either manually by the operator, or in the program by the NC programmer, without
having to send the spindle to the home zero location. This saves program cycle time
by eliminating the moves to home zero in the program.
Work coordinates are set and called up in a program by commands called G-codes.
G54, G55, and G56 would be examples of G-codes to call up different work coordinate
registers. The following is an example of using work coordinates:
1-6
(Set work coordinate P1-which is G54)
(and work coordinate P2-which is G55)
NO10 G10 L2 P1 X5.000 Y6.000 Z7.000
NO20 G10 L2 P2 X10.000 Y3.000 Z15.000
In line NO10, the G54 work coordinate is set to X5.0, Y6.0, Z7.0 from the home zero
location. In line NO20, the G55 work coordinate is set to X10.0 Y3.0 Z15.0 from home
zero. In line N100, the G54 work coordinate is called, activating the part
coordinate system. The spindle is moved to X1.0 Y1.0 Z.5 as referenced from the
activated part coordinate system. In line N110, the G55 work coordinate is called,
activating the second part coordinate system. The spindle is moved to X2.0 Y2.0 Z3.0
as referenced from the second part coordinate system.
Work coordinates remain active once called until cancelled by another work
coordinate. They may be called on a line by themselves, or in a line with motion
commands as in the example.
DIMENSIONING
In conjunction with NC (or N/C) machinery, there are two types of dimensioning
practices used on part blueprints: datum and delta. These two dimensioning methods
are related to absolute and incremental positioning. (Note: although this text uses
the NC abbreviation, N/C is equally accepted and is beginning to become the more
prominent form.)
[Datum Dimensioning]
1-7
[Delta Dimensioning]
SUMMARY
・ The basis of machine movement is the Cartesian coordinate system. Any point on
the Cartesian coordinate system may be defined by X/Y or X/Y/Z coordinates.
・ The machine coordinate system can be transferred to the part coordinate system
manually, by an absolute zero shift, or by use of work coordinates.
・ Machine movements occur along axes which correspond to the direction of travel
of the various machine slides. On a vertical mill, the Z axis of a machine is
always the spindle axis. The X and Y axes of a machine are perpendicular to the
Z axis, with X being the axis of longer travel.
・ There are two dimensioning systems used on part drawings intended for numerical
control: datum and delta. Datum dimensioning references each dimension to a
fixed set of reference points; delta dimensioning references each dimension to
the previous one.
1-8
◆ 2 Process Plananing and Tool Selection
2 PROCESS PLANNING AND TOOL SELECTION
PROCESS PLANNING
〔Machine Selection〕
A programmer must first decide which machine will be used. This decision is
based on a number of factors.
2-1
〔Fixturing〕
The next decision to be made is how will the workpiece be held ? Again this
decision is based on a number of factors, many of them economic.
・ Will standard holding devices (clamps, mill vises, chucks, etc.) suffice, or
will special fixturing need to be developed ?
・ What quantity of parts will be run ? A large number of parts means special
fixturing to shorten the machining cycle may be feasible, even if conventional
workholding methods would otherwise be used.
・ How elaborate does the fixturing need to be ? If many part runs are foreseen, a
more durable fixture must be designed. If only one or two part runs are
projected, a simpler fixture can be used.
・ What will make the best quality part ?
〔Machining Strategy〕
The machining strategy must be developed before the NC program can be written.
Machining sequences used in a part program are determined by the following decisions.
〔Tool Selection〕
Tool selection is the final important step in process planning. The selection is
based on the following decisions.
Once the process planning is finished and the program written, the programmer
must communicate to the setup personnel in the shop what tools and fixtures are to
be used in the NC program. This information is often placed on setup sheets such as
those shown in Fig.2-1. The setup sheet should contain all necessary information to
prepare for the job. Any special instructions to the setup personnel or machine
operators should be communicated. Any special notes regarding tooling should also be
included.
2-2
FIG.2-1 NC setup sheet for a CNC machining center
Cutting tools are available in three basic material types: high speed steel,
tungsten carbide, and ceramic. The type of tool should be carefully chosen.
High speed steel (HSS) is one type of tool material. It has the following
advantages over carbide:
・ HSS does not hold up as well as carbide or ceramic at the high temperatures
generated during machining.
・ HSS does not cut hard materials well.
2-3
Tungsten carbide (known simply as carbide) is another material often used for
cutting tools. Carbide tools come in one of three basic types. Solid carbide tools
are made from a solid piece of carbide. Brazed carbide tools use a carbide cutting
tip brazed on a steel shank. Inserted carbide tooling utilizes indexable inserts
made of carbide which are held in steel tool holders. Tungsten carbide has the
following advantages over high speed steel:
Ceramic tooling has made great advances in the past several years. While once
very expensive, some ceramic inserts can now be purchased for less than the cost of
carbide. Ceramic has the following advantages:
・ Ceramic is sometimes less expensive than carbide when used in insert tooling.
・ Ceramic will cut harder materials at a faster rate and has superior heat
hardness.
High speed steel is generally used on aluminum and other nonferrous alloys, while
carbide is used on high silicon aluminums, steels, stainless steels, and exotic
metals. Ceramic inserts are used on hard steels and exotic metals. Inserted carbide
tooling is becoming the preferred tooling for many NC applications.
Some carbide inserts are coated with special substances, such as titanium
nitride to improve the insert life. These coatings can increase tool life by up to
20 times when used in accordance with the manufacture's recommended cutting speeds
and feedrates.
2-4
TOOLING FOR HOLE OPERATIONS
There are four basic hole operations which are performed on NC machinery:
drilling, reaming, boring, and tapping.
〔Drilling〕
Drills are available in different styles for different materials. Fig.2-2 shows a
standard twist drill. Even with all the new tooling technology, twist drills remain
one of the most common tools for making holes. Drills have a tendency to walk as
they drill, resulting in a hole that is not truly straight. Centerdrills are often
used to predrill a pilot hole to help twist drills start straight. Drills also
produce triangular shaped holes.
If a hole tolerance is closer than .003 inch, a secondary hole operation should
be used to size the hole, such as boring or reaming. Large holes are sometimes
produced by spade drills. The flat blades allow good chip flow and economical
replacement of the drill tip.
Drill point angle must be considered when selecting a drill. The harder the
material to be cut, the greater the drill point angle needs to be to maintain
satisfactory tool life. Mild steel is usually cut with a 118-degree included angle
drill point. Stainless steels often use a 135-degree drill point.
Drills are available in different types. HSS drills are the most common, but
brazed carbide and solid carbide are also used. Carbide drills have a tendency to
chip when drilling holes. When drilling hard materials cobalt drills (HSS with
cobalt added to the alloy) are used. Cobalt drills have greater heat hardness than
HSS drills.
Special drills utilizing carbide inserts have been developed for NC applications
(Fig.2-3). The economics of using these tools should be considered by the programmer
when hard materials or high run quantities are involved.
FIG.2-3
2-5
〔Reaming〕
Reaming is used to remove a small amount of metal from an existing hole as a
finishing operation. Reaming is a precision operation which will hold a tolerance of
+ or -.0002 easily.
Reamers are made with two basic fluted designs: straight fluted (Fig.2-4) and
spiral fluted (Fig.2-5). Spiral fluted reamers produce better surface finishes than
straight flutes, but are more difficult to resharpen. Reamers are available in three
basic tool materials: high speed steel, brazed carbide, and solid carbide.
〔Boring〕
Boring removes metal from an existing hole with a single point boring bar.
Boring heads are available in two designs: offset boring heads, in which the boring
bar is a separate tool inserted into the head, and cartridge type. Cartridge boring
heads use an adjustable insert in place of a boring bar.
Boring bars are available in the four material types: high speed steel, solid
carbide, brazed carbide, and inserted carbide. Inserted carbide bars are used for
large holes, whereas brazed and solid carbide bars are usually supplied in smaller
sizes (up to 1/2-inch diameter).
〔Tapping〕
2-6
MILLING CUTTERS
The greatest advances in tooling for NC have taken place in the area of inserted
milling cutters. Milling allows the contouring capabilities of the NC machine to be
used to efficiently perform operations that would require special tooling if done
manually. Milling cutters can be placed in two basic categories: solid milling
cutters and inserted milling cutters. They can be further classified as end mills
and face mills.
〔End Mills〕
End mills are available in HSS and solid carbide from .032 inch to 2 inches in
diameter in two or four flute. Inserted end mills are available from .500 inch to 3
inch diameters. Fig.2-8 shows a four flute HSS end mill. Fig.2-9 shows a two flute
solid carbide end mill. Two flute cutters with their deeper gullets are well suited
for roughing operations. Four flute end mills, however, are more rigid because of
their thicker core. The programmer's experience will determine when to use a two or
four flute cutter.
Fig.2-10 and 2-11 illustrate two different types of inserted end mills. Inserted
cutters are preferred for NC applications. Inserts are less expensive to replace
than an entire tool. By indexing the inserts, four or six cutting edges can be used
on one insert. When the insert is used up, it is thrown away rather than resharpened.
Inserted cutters may also be used on many different types of workpiece materials by
simply changing the inserts from one designed for aluminum, for example, to one
designed for stainless steel.
Fig.2-12 and 2-13 show two different styles of inserted ball end mills. Ball end
mills are also available in HSS and solid carbide. Ball mills are used for three-,
four-, or five-axis contouring work, where the Z-axis will be used. They are also
used to produce a given radius on a part.
Fig.2-14 shows a special type of inserted end mill called a cyclo mill, designed
by Valenite GTE. It uses a series of round inserts staggered in a helical pattern.
This mill can remove large amounts of material at fairly high speeds. It is just one
example of inserted tooling that is being developed for NC use.
FIG.2-8 Single end, multiple flute end mill, standard length flutes
Style F Style G
3/4”-1”-1-1/4” 1-1/2”-2”
2-7
FIG.2-11 “Centerdex ”two-flute inserted end mills
2-8
FIG.2-14 “Cyclo Mill” special multi-inserted milling cutter
〔Face Mills〕
Face mills differ from end mills in their major application. Face mills are
designed to remove large amounts of material from the face of a workpiece. They are
manufactured in HSS, brazed carbide, and inserted carbide types.
Face mills are available in sizes from 2 inches to over 8 inches in diameter.
Inserted carbide is the most common type of facing tool. The costs of large brazed
carbide and HSS mills limit their application to special situations.
Fig.2-15 shows a common type of inserted face mill. Fig.2-16 shows a large
diameter face mill. Note the number of inserts used. In fig.2-17, a special type of
mill cutter is shown. This cutter is called a plunge and profile cutter. It is
designed to plunge into the material first and then begin the cutting path. This
design is a cross between an end mill and a face mill.
2-9
FIG.2-16 Large inserted face mill-note number of inserts on cutter
2-10
A PROCESSING EXAMPLE
・ The 4.000 diameter and .38 dimensions were completed in the previous operation
making this feature the logical choice for locating the part.
・ The run quantity is only 200 parts. The fixture design is simple, making it
economical to build.
・ The design is easy to load.
The sequence of the machining operation at the machining center was planned as
follows.
・ Face the 1.000 and .25 dimensions using a 31/4 carbide inserted face mill.
・ Center drill the .188 and .250 diameter holes. A 90-degree center drill was
chosen. The 90 degree-chamfer will provide an edge break at the drilled hole,
reducing the amount of deburr time.
・ Drill the .188 diameter holes using a 3/16 drill. Since drills almost always
drill .001 or more oversize, the hole will be comfortably within tolerance.
・ Drill the .250 diameter hole using a 1/4 drill.
・ Mill the 3.000 diameter using a 11/4 diameter inserted helical end mill. The end
mill has inserts up the sides of the insert, allowing side cutting up to 2.00
deep.
・ Using the same end mill, mill the 1.500 diameter bore.
2-11
FIG.2-18 Part drawing
2-12
FIG.2-20 Fixture concept
2-13
SPEEDS AND FEEDS
The efficiency and life of a cutting tool depend upon the cutting speed and the
feedrate at which it is run.
〔Cutting Speed〕
CS × 12
RPM = D × π
The cutting speed of a particular tool can be determined from the spindle speed, using th
e formula:
D × π × RPM
CS = 12
On the shop floor, the formulas are often simplified. The following formulas will
yield results similar to the formulas just given.
CS × 4
RPM = D
RPM × D
CS = 4
For turning applications, the diameter of the workpiece, rather than the tool
diameter is used to determine the cutting speed and spindle speed. For milling
applications, the diameter of the tool is used.
2-14
〔Feedrates〕
Feedrate is the velocity at which a tool is fed into a workpiece. Feedrates are
expressed two ways: inches per minute of spindle travel and inches per revolution of the spin
dle. For milling applications, feedrates are generally given in inches per
minute (IPM). For turning they are expressed most often in inches per revolution
(IPR).
Feedrates are critical to the effectiveness of a job. Too heavy a feedrate will
result in premature dulling and burning of tools. Feedrates which are too light will
result in tools chipping. This chipping will rapidly lead to tool burning and
breakage.
〔Drilling Feedrates〕
〔Milling Feedrates〕
Feeds used in milling depend not only on the spindle spindle, but also on the number
of teeth on the cutter. The milling feedrate is calculated to produce a desired chip l
oad on each tooth of the cutter. In end milling, for example, chip loadshould be .002 to .006
inch per tooth. The recommended chip loads for various mill cutters are given in machinist
s' handbooks. For inserted cutters, the insert manufacturer's catalog will list reco
mmended chip loads for a given insert. To calculate the feedrate for a mill cut, th
e following formula is used:
F = R × T × RPM
Milling feedrates are also affected by machine and setup rigidity, and by part
geometry.
2-15
In the case of inserted milling cutters, there is another factor which affects
feedrates: chip thickness. This is not the chip load on the tooth, but the actual
thickness of the chip produced at a given feedrate. Chip thickness will vary some
with the geometry of the cutter (positive rake, negative rake, neutral rake), but
should be maintained in the range of .004 to .008 inch. Chip thickness less than or
greater than these values will place either too little or too great a pressure on
the insert for efficient machining. Once a feedrate has been calculated, the chip
thickness it produces should be derived. If chip thickness is out of the recommended
range, the feedrate should be adjusted to bring it to acceptable limits.
Chip thickness can be calculated by the following formula:
CT = W × R
D
If the chip thickness is found to be too small, this modification of the preceding
formula can be used to determine an acceptable feedrate:
f = D × CT
W
This new calculated value of the feed per tooth can then be substituted back into
the feedrate formula, and a new feedrate calculated.
1000 × 12
RPM = 1.75 × 3.1416
12000
RPM = 5.4978
RPM = 2,183
2-16
The feedrate can now be determined using the feedrate formula. The machinist
handbook's tables give a recommended chip load of .002 to .006 inch. A value of .004
per tooth is selected. Using these values in the feedrate formura, the feedrate is
calculated.
F = 2,183 × 4 × .004
The chip thickness is then calculated to insure the inserts will not break down
prematurely. For this example, it will be assumed the width of the cut to be taken
is 1.000 inch wide. Using this value, the chip thickness is determined as follows:
CT = 1.000 × .004
1.750
CT = .755 × .004
CT = .00302
The chip thickness is less than the recommended minimum of .004. The feed per tooth
is therefore calculated as using the feed per tooth formula. A chip thickness of
.008 is used.
f = 1.750 × .008
1.000
f = 1.3229 × .008
f = .010
The new value for the chip load per tooth is substituted in the feedrate formula,
and the feedrate recalculated.
F = 2183 × 4 × .010
The 2183 MIN-1 ndle speed and 87.32 inches per minute feedrate are “book
value” rates. They will have to be adjusted up or down depending on the machine,
fixture, tool, and workpiece rigidity.
2-17
SUMMARY
・ Process planning is the term used to describe the steps the programmer uses to
develop and implement a part programming.
・ The steps in process planning are: determine the machine, determine the
workholding, determine the machining strategy, select the tools to be used.
・ Cutting tools for NC are made in high speed steel, tungsten carbide, and
ceramic.
・ Cutting speed is the edge speed of the tool; it is a function of the spindle
speed and the tool diameter.
・ Feedrates that are too heavy will result in excess tool wear and premature tool
failure.
・ Feedrates that are too light will result in chipping of tools and premature tool
failure.
2-18
◆3 Tool Changing and Tool Register
3 TOOL CHANGING AND TOOL REGISTERS
[OBJECTIVES] Upon completion of this chapter, you will be able to:
・ Explain why the speed, repeatability, and accuracy of tool changing are
important factors in numerical control.
・ Explain what tool registers are and what they are used for.
・ Explain how tool offsets may be entered by the operator during setup and how the
programmer allows for this.
This chapter deals with CNC tool changing and tool registers. A good general
understanding of these subjects is required for three-axis CNC programming.
TOOL STORAGE
As with tool changers, there are as many tool storage systems as there are
manufactures. However, there are e.g. two tool storage systems : drum type and chain
pot type.
Fig.3-1 shows the KITAMURA machining center M-1, M-2X, M3X employing drum type
magazines. The tool pots are always fixed and the next available tool is in the
waiting tool pot. This minimizes tool change time to the to the utmost. Fig.3-2
shows KITAMURA H-500 machining center with chain pot magazine. It's ATC uses the
Fixed Pot Method for placing tool back in the ATC magazine to make it easier for the
operators and eliminating downtime. The tool pots, spindle taper and tool tapers are
protected by a spindle air blast that cleans the coolant and chips from the tool
holder so that high accuracy can be maintained during machining. KITAMURA FIXED POT
system is able to identify each tool at ATC's magazine, and is equipped with the
manual roading feature allows the machine operator to easily and safely replace tool
even while the machine is cutting.
FIG.3-1 FIG.3-2
3-1
TOOL LENGTH AND OFFSET
Tools used for machining vary in length. When using three-axis NC machinery,
some means to compensate for the differing tool lengths must be employed. One method
of dealing with this problem is to measure the tools prior to writing the program,
so the programmed coordinates on any given tool movement will not interfere with the
part, a clamp, or the machine table. Typically, the tool lengths are specified in an
instruction sheet developed by the programmer that is sent to the shop floor for use
in setting up the machine for a particular run. Sometimes a tool setup drawing is
used. Special tool setting equipment is needed to measure the tools accurately. The
cost of this equipment, and the labor necessary to set the tools, must be included
in the cost of any numerical control system utilizing premeasured tooling. This
method of tool length compensation also makes the replacement of broken or dull
tools complicated, as such tools must be set to a specific length to function
properly. With tape machinery, however, measuring tools is usually the only way to
accommodate the various tool lengths.
The advent of CNC machinery has revolutionized tool setting by introducing the
programmable tool register. A tool register is a memory spot in the computer where
the length of a tool may be stored. When a particular tool is called up, the
computer checks the tool register to see how much offset has been programmed for
that tool (see the discussion on tool offset that follows). These offset figures are
usually entered by the operator at the time the machine is set up for the program
run.
[Tool Offset]
Tool length offset is not the length of a tool but the distance from the part to
the bottom of the tool (see Fig.3-3). After a Z0 point has been set, the longest
tool to be used is installed in the machine. The table or machine head is then
positioned with a specific distance between the tool and the workpiece. This
distance is determined by either the programmer or setup man and must be sufficient
to clear any clamps or other projections when the spindle is retracted (see
Fig.3-4). The programmer may have to leave empty lines in the program for the setup
operator to enter tool length offsets. To determine a particular tool offset, the
tool is installed in the spindle and the spindle lowered until the tool is at the
desired Z0 point on the part. The amount of offset for that tool will be displayed
in the axis readout on the MCU. This offset amount, the distance from the tool to
the part, is then entered in the MCU. The spindle can then be raised back to Z0, the
tool removed, and the procedure repeated for the next tool.
Each time a tool is called up by the program, the offset value for that tool is
used to shift the original Z0 point to the position on the part that the programmer
desires as the Z0 point for that tool. To fully retract the spindle, the tool offset
is cancelled, shifting the Z0 point back to its original position.
There are two basic types of tool offset methods being used on CNC machinery.
Some controllers separate the offset from the tool; that is, when a particular tool
is called up, the offset to be used with that tool must be called up separately
within the CNC program. On other controllers, the offset is associated with a
particular tool when it is entered in the machine control unit (MCU). When that
particular tool is called up, the offset is automatically included.
3-2
FIG.3-3 Tool length offset
3-3
SUMMARY
・ The speed, repeatability, and accuracy of a tool change greatly influence the
efficiency of numerical control.
・ Tool registers are places in the computer's memory to program tool offsets.
・ A tool offset is the distance from the bottom of the tool to the desired Z0
point on the part.
・ Tool offsets may be entered during setup. In this case the programmer leaves
empty blocks in the program in which the tool offsets are placed by the setup
man (or operator).
3-4
◆ 4 Programming Coordinates
4 PROGRAMMING COORDINATES
HOLE OPERATIONS
The same principles apply to the parts in Fig.4-1 and 4-2. The difference is that
X0/Y0 is located at the center of the part in Fig.4-2. Notice that the signs of X
and Y change as the coodinate locations move from quadrant to quadrant.
Fig.4-3 shows the same part as that in Fig.4-1 but delta dimensioned rather than
datum dimensioned. Try to derive the proper coordinates to drill the holes in
Fig.4-3, using an incremental positioning machine. The coordinates for the holes are
as follows:
#1 X0.7500, Y1.7500
#2 X1.2500, Y-1.5000
#3 X1.0000, Y0.75000
Notice that the sign of Y was negative when moving to hole #2. Since incremental
positioning was being used, hole #1 became the X0/Y0 point for the movement to hole
#2. With incremental drawings, it is necessary to add and subtract dimensions in
order to correctly program the part, even when using delta dimensioned drawings.
Referring again to Fig.4-2, assume that an incremental positioning machine is to
be used. Determine the coordinates necessary to drill the part. The correct
coordinates are:
4-1
#1 X1.0000, Y0.5000 #5 X0.0000, Y-1.0000
#2 X-0.5000, Y0.5000 #6 X0.5000, Y-0.5000
#3 X-1.0000, Y0.0000 #7 X1.0000, Y0.0000
#4 X-0.5000, Y-0.5000 #8 X0.5000, Y0.5000
FIG.4-1
FIG.4-2
FIG.4-3
4-2
MILLING OPERATIONS
The system of coordinates presented thus far is used for centering a spindle
over a particular location specified on a drawing. This means that when a coordinate
location is given to the machine, the center of the spindle is sent to that
location. In the case of milling cutters, this technique would cause a problem in
that more than the correct amount of stock would be removed from the part (an amount
equal to the radius of the cutter.) When positioning the spindle for a milling
operation, an allowance must be made for the radius of the cutter.
A .500-inch-diameter end mill is to be used to mill the part in Fig.4-4, and an
absolute positioning mill will be used. Sending the cutter to X0/Y0 to begin a
milling pass from location #1 to location #2 will remove an additional .250 inch of
metal from the part that is called out in the drawing. To allow for the radius of
the cutter, calculate the cutter coordinate by subtracting half the diameter of the
cutter from the coordinate location in each axis. For location #1 the coordinates
are X-0.2500, Y-0.2500. The coordinates for all four locations are as follows:
Try to determine the coordinates required to mill the parts in Fig.4-4 and 4-5,
using an incremental positioning machine. The correct coordinates for Fig.4-4 are as
follows:
Movement of the Z axis is easier than that of the X or Y axis. To drill any of
the parts examined in this chapter, all that is required is to give the Z axis a
coordinate that would place the end of the tool thru the part.
Assume that the zero point for the Z axis is the top of a .250-inch-thick part.
A 1/4-inch-diameter hole is to be used to drill a hole in the part. The coordinate
for the Z axis would be the thickness of the part plus the length of the drill
point. For a 1/4-inch drill the coordinate would be Z -0.3250. The length of a drill
point is calculated by multiplying the diameter of the drill by .3. In this case,
the drill point is .075 inch long. This length added to the part depth (.250 inch)
results in the .3250 length. In practice, it is wise to allow a small amount of
additional movement to compensate for differences in drill point and part thickness
tolerances. A movement toward the machine table would be a -Z movement. Movement
toward the head of the machine would be a +Z movement. Chapter 6 covers three-axis
milling and use of the Z axis in more detail. At this point, an understanding of the
X and Y movements necessary to program coordinates will suffice.
4-3
PART DRAWING CUTTER LOCATIONS
FIG.4-4
FIG.4-5
CNC machines are capable of both incremantal and absolute positioning. This
gives the programmer a great deal of flexibility in programming parts. Assume that
the part in Fig.4-6 is to be drilled using both absolute and incremental positioning.
Hole #1 is to be drilled first, using absolute positioning; holes #2, #3, and #4 are
to be drilled next, using incremental positioning; hole #5 is to be programmed next,
using absolute positioning; and holes #6, #7, and #8 will be drilled using incre-
mental positioning. Notice that the method of programming these coordinates is
similar to the dimensioning used on the part print. Determine the coordinates to
program the hole locations before looking at the following correct coordinates.
4-4
#1 X0.5000, Y-0.5000 #5 X2.7500, Y-2.0000
#2 X0.0000, Y-0.7500 #6 X0.0000, Y-0.7500
#3 X1.0000, Y0.0000 #7 X0.7500, Y0.0000
#4 X0.0000, Y0.7500 #8 X0.0000, Y0.7500
METRIC COORDINATES
Some industries have converted all or part of their operations to metric units
of measure. Most countries outside of the United States use metric measurement. It
is advantageous, therefore, for companies with worldwide markets to use this system
in manufacturing their products.
The metric system in use today is called the Systeme International d'Unites, or
the SI metric system. There are seven base units used in the metric system. Length
is based on the meter (m), mass on the kilogram (kg), time on the second (s), elec-
tric current on the ampere (A), temperature on the kelvin (k), amount of substance
on the mole (mol), and luminous intensity on the candela (cd). All metric units are
built on a base-ten system.
In the inch system, length measurement is based on the yard. Units smaller than
a yard are built on fractions of a yard, foot, or inch, whichever is most compatible
(one-half of a yard = 11/2 feet or 18 inches). In the machine shop, however,
measurement is referenced to thousandhs of inches. In the shop, 1" would be one
inch; .500" however, is not thought of as five-tenths of an inch but, rather, as
five-hundred thousandths of an inch. Therefore, .0005" is not usually called five
ten-thousands of an inch, but five tenths, meaning five tenths of one-thousandth of
an inch. When dealing with metric measurement in the shop, measurement is referenced
to millimeters. One centimeter (1 cm) is not spoken of as one centimeter but is
called ten millimeter (10mm); one millimeter is approximately .0394 inch. Units
smaller than one millimeter are also referenced in terms of millimeters; 0.01 is
one-hundredth of a millimeter; 0.001 is one-thousandth of a millimeter; 0.001 inch
is approximately .254 millimeter; and .0001 inch is approximately 0.00254 milli-
meter. Many times a metric print tolerance will call for a two-place decimal to be
held to + or -0.02 mm. This roughly corresponds to holding an inch dimension to
±.001 inch.
Metric units are easy to work with as long as a company's commitment to metric
conversion is carried all the way through from drafting room to tool crib. If metric
cutters are available, working with metric dimensions is no problem. Modern CNC
machinery has the capability to accept either metric or inch dimensions. The only
difference in writing a program in metric versus inch measurements is that the
coordinates are expressed differently. If inch tooling is used, it is necessary to
convert the cutter sizes to metric units, so that proper milling coordinates can be
programmed. To convert an inch dimension to a metric one, multiply the inch
dimension by 25.4. To convert a metric dimension to one of inches, multiply the
metric dimension by .03937 (or divide the metric dimension by 25.4).
Having learned the use of absolute and incremental positioning, and
understanding how the Cartesian coordinate system works, a numerical control program
may now be written.
4-5
PART X0/Y0 = UPPER LEFT CORNER OF THE PART
HOLE DRILLING SEQUENCE
FIG.4-6
SUMMARY
・ To program a hole location coordinate, the center line for the hole is used.
・ To program a coordinate for milling operations, the coordinate for the location
must include an appropriate allowance for the radius of the cutter.
・ For absolute positioning, the datum reference plane remains the X0, Y0 point for
all programmed moves.
・ For incremental positioning, the current coordinate location is the X0, Y0 point
for the next move.
・ CNC machines are capable of mixing absolute and incremental positioning. This
allows for flexibility in programming.
・ Metric measurement in the machine shop is based on the millimeter, where .02 mm
is roughly equivalent to .001 inch.
4-6
◆ 5 Two-Axis Programming
5 TWO-AXIS PROGRAMMING
・ Write simple two-axis programs in word address format to perform hole operations.
・ Write simple two-axis milling programs using word address programming format.
This text is concerned primarily with manual programming of CNC machinery. Each
successive chapter will introduce a more advanced level of numerical control
programming.
The machine to be programmed are a CNC mill using FANUC or YASNAC Controllers.T
his machine is a continuous-path machine that uses a programming format called word
address. Word address was developed as a tape programming format. Another name for
word address is variable block format, so named because the program lines (blocks)
may vary in length according to the information contained in them. Earlier tape
formats required an entry for all possible machine registers. In these earlier
formats, a zero was programmed as a null input if the register values were to be
unaffected, but in word address, the blocks need only contain necessary information.
Although developed as a tape format, word address is used as the format for manual
data input on many CNC machines.
〔Addresses〕
N-Designates the start of a block. Program lines or blocks are sometimes also
called“sequence lines.”On some machinery the address “O” may also be used to
start a block of information.
G-Initiates a preparatory function. Preparatory functions change the control mode
of the machine. Examples of preparatory functions are rapid/feedrate mode,
drilling mode, tapping mode, boring mode, and circular interpolation. Preparatory
functions are called“prep functions,”or more commonly,“G codes.”
X-Designates an X-axis coordinate. X is also used to enter a time interval for a
timed dwell.
Y-Designates a Y-axis coordinate.
Z-Designates a Z-axis coordinate.
I-Identifies the X-axis location of an arc centerpoint.
J-Identifies the Y-axis location of an arc centerpoint.
K-Identifies the Z-axis location of an arc centerpoint.
S-Sets the spindle speed.
F-Assigns a feedrate.
T-Specifies the tool to be used in a tool change.
5-1
M-Initiates miscellaneous functions (M functions). M functions control auxiliary
functions such as the turning on and off of the spindle and coolant, initiating
tool changes, and signaling the end of a program.
Other words used in word address will be explained as they are used. A list of
EIA codes for word address is contained.
Fig.5-3 contains a program written in the word address format to drill the part
in Fig.5-1. Fig.5-4 contains the program to drill the part in Fig.5-2. The specific
codes used in the programs are:
G00-Puts the machine in rapid traverse mode. All moves made with G00 active are
made in rapid traverse.
G01-Linear interpolation; puts the machine in feedrate mode. All moves made with
G01 active are made in a straight line at the programmed feedrate.
G04-Dwell commannd. Causes a halt in the program execution until the cycle start
button is depressed. Some controllers require the use of M00 rather than G04.
However, G04 will be used throughout this particular text as the dwell code.
G70-Selects inch input.
G71-Selects metric input.
G90-Selects absolute positioning.
G91-Selects incremental positioning.
M06-Institutes a tool change. In two-axis operation, this command functions as a
dwell.
M30-Signals the end of the program and resets the computer to the start of the
program.
5-2
FIG.5-2 Hole operations part drawing, metric.
5-3
PROGRAM EXPLANATION-ABSOLUTE POSITIONING
(Refer to Fig.5-3 and 5-4.)
NO10
■ NO10-The sequence number. The word is ignored by the controller. It is used
only to identify a block.
■ G00 -Puts the machine in rapid traverse mode. Moves will be made at rapid
traverse speed until the mode is cancelled with a G01,G02, or G03.
■ G70 -Selects inch input. All numbers entered will be inch coordinates.
■ G71 -Selects metric input for the metric program.
■ G90 -Selects absolute positioning.
■ X/Y coordinates of the tool change location-These coordinates are absolute
dimensions.
■ M06 -Tool change command. In a two-axis program, this command acts like a dwell.
The machine moves to the X/Y tool change coordinates and halts for a tool
change Note that on some controllers, the M06 command may have to be
placed on a program line by itself in order to function as explained here.
Also note that some controllers using word address format will not
recognize an M06 command when two axes are supplied on a machine. In these
cases a G04 (or M00) dwell command will be used.
NO20
■ NO20-The sequence number.
■ X/Y coordinates-To move from tool change to hole #1.
NO30
■ NO30-The sequence number.
■ G04 -The dwell command. The program halts its execution, allowing the operator
to drill the holes.
NO40
■ NO40-The sequence number.
■ X/Y coordinates-To move from hole #1 to hole #2.
NO50
■ NO50-The sequence number.
■ G04 -The dwell command. This halts the program so that hole #2 can be drilled.
NO60
■ NO60-The sequence number.
■ X/Y coordinates-To move from hole #2 to hole #3.
NO70
■ NO70-The sequence number.
■ G04 -The dwell command. Hole #3 is drilled.
NO80
■ NO80-The sequence number.
■ X/Y coordinates-To move from hole #3 to tool change.
NO90
■ NO90-The sequence number.
■ M30 -Signals that the program has ended and resets the computer's memory to the
start of the sequence.
5-4
PROGRAM EXPLANATION-INCREMENTAL POSITIONING
(Refer to Fig.5-5.)
NO10
■ NO10-The sequence number. The word is ignored by the conrtoller as it is used
only to identify a block.
■ G00 -Puts the machine in rapid traverse mode. Moves will be madae at rapid
traverse speed until the mode is cancelled with a G01, G02, or G03.
■ G70/G71-Selects inch or metric input.
■ G91 -Specifies that incremental positioning is to be used.
■ M06 -Tool change command. This halts the program to allow insertion of the
drill. Note that the spindle had been manually positioned at the tool
change location prior to the start of the first program cycle.
NO20
■ NO20-The sequence number.
■ X/Y -The incremental coordinates required to move from tool change to hole #1.
NO30
■ N030-The sequence number.
■ G04 -The dwell command. The program halts its execution, allowing the operator
to drill hole #1.
NO40
■ NO40-The sequence number.
■ X/Y -The incremental coordinates required to move from hole #1 to hole #2.
NO50
■ NO50-The sequence number.
■ G04 -The dwell command. This halts the program so that hole #2 can be drilled.
NO60
■ NO60-The sequence number.
■ X/Y -The incremental coordinates required to move from hole #2 to hole #3.
NO70
■ NO70-The sequence number.
■ G04 -The dwell command. Hole #3 is drilled.
NO80
■ NO80-The sequence number.
■ X/Y -The incremental coordinates required to move from hole #3 to tool change.
N090
■ NO90-The sequence number.
■ M30 -Signals that the program has ended and resets the computer's memory to the
start of the sequence.
5-5
FIG.5-5 Word address format drilling program,
metric incremental positioning, for the part in Fig.5-2
The part pictured in Fig.5-6 will now be milled using word address format.
Fig.5-10 is the word address program in absolute positioning. Fig.5-11 is the metric
version to mill the part in Fig.5-11. Fig.5-7 is an incremental program for the part
in Fig.5-6 and Fig.5-12 is the metric version to mill the part in Fig.5-7.
5-6
PROGRAM EXPLANATION-ABSOLUTE POSITIONING
(Refer to Fig.5-10 and 5-11.)
NO10
■ NO10-The sequence number.
■ G00 -Puts the machine in rapid traverse mode.
■ G70/G71-Specifies inch/metric input.
■ G90 -Specifies absolute positioning.
■ X/Y coordinates-To move to tool change.
■ M06 -Intiates a tool change. The .500-inch-diameter end mill (5 mm metric) is
installed in the spindle. As previously mentioned, some controllers will
not use this command on a manual tool change machine. In those cases, a
G04 (dwell) or an M00 (program stop) is used for manual tool changes.
NO20
■ NO20-The sequence number.
■ X/Y coordinates-To move from tool change to location #1 (see Fig.5-8).
NO30
■ NO30-The sequence number.
■ G04 -A dwell command. The operator is instructed to lower the spindle.
NO40
■ NO40-The sequence number.
■ G01 -Puts the machine in feedrate mode.
■ X coordinate-Required to move from location #1 to location #2 (see Fig.5-8).
■ F20 -Assigns a feedrate of 20 in./min (500 mm/min metric).
NO50
■ NO50-The sequence number.
■ Y coordinate-Required to move from location #2 to location #3.
NO60
■ NO60-The sequence number.
■ X coordinate-Required to move from location #3 to location #4.
NO70
■ NO70-The sequence number.
■ Y coordinate-Required to move from location #4 to location #1. This move
completes the milling roughing pass.
NO80
■ NO80-The sequence number.
■ X/Y coordinates-Required to move from location #1 to location #5. This is a
feed move to position the cutter for the finish pass.
NO90
■ NO90-The sequence number.
■ Y coordinate-To move from location #5 to location #6. Notice that this is a
down milling cut. Down milling gives a nice surface finish on aluminum
alloys such as the aluminum casting used for this example.
5-7
NO100
■ N100-The sequence number.
■ X coordinate-To move from location #6 to location #7.
NO110
■ N110-The sequence number.
■ Y coordinate-To move from location #7 to location #8.
NO120
■ N120-The sequence number.
■ X coordinate-To move from location #8 to location #5. This completes the finish
milling pass.
NO130
■ N130-The sequence number.
■ G04 -A dwell command. The operator is instructed to raise the spindle.
NO140
■ N140-The sequence number.
■ G00 -Puts the machine in rapid traverse mode.
■ X/Y coordinates-To move from location #5 to tool change.
NO150
■ N150-The sequence number.
■ M30 -Signals that the program has ended. The computer's memory is reset to the
start of the program.
5-8
FIG.5-9 Up milling and down milling.
5-9
PROGRAM EXPLANATION-INCREMENTAL POSITIONING
(Refer to Fig.5-12 and 5-13.)
NO10
■ NO10-The sequence number.
■ G00 -Puts the machine in rapid traverse mode.
■ G70/G71-Specifies inch/metric input.
■ G91 -Specifies incremental positioning.
■ M06 -Initiates a tool change. The .500-inch-diameter end mill (5 mm metric) is
installed in the spindle. For controllers that will not use this command
on a manual tool change machine, a G04 (dwell) or an M00 (program stop) is
used. To insure that the program started and stopped in the same location,
the spindle was positioned at the tool change location prior to starting
the program.
NO20
■ NO20-The sequence number.
■ X/Y incremental coordinates-To move from tool change to location #1(see fig.6-13).
NO30
■ NO30-The sequence number.
■ G04 -A dwell command. The operator is instructed to lower the spindle.
NO40
■ NO40-The sequence number.
■ G01 -Puts the machine in feedrate mode.
■ X incremental coordinate-Required to move from location #1 to location #2 (see
fig.5-8).
■ F20 -Assigns a feedrate of 20 in./min (500 mm/min metric).
NO50
■ NO50-The sequence number.
■ Y incremental coordinate-Required to move from location #2 to location #3.
NO60
■ NO60-The sequence number.
■ X incremental coordinate-Required to move from location #3 to location #4.
NO70
■ NO70-The sequence number.
■ Y incremental coordinate-Required to move from location #4 to location #1,
completing the milling roughing pass.
NO80
■ NO80-The sequence number.
■ X/Y incremental coordinates-Required to move from location #1 to location #5.
NO90
■ NO90-The sequence number.
■ Y incremental coordinate-To move from location #5 to location #6.
NO100
■ N100-The sequence number.
■ X incremental coordinate-To move from location #6 to location #7.
5-10
NO110
■ N110-The sequence number.
■ Y incremental coordinate-To move from location #7 to location #8.
NO120
■ N120-The sequence number.
■ X incremental coordinate-Required to move from location #8 to location #5,
completing the finish milling pass.
NO130
■ N130-The sequence number.
■ G04 -A dwell command. The operator is instructed to raise the spindle.
NO140
■ N140-The sequence number.
■ G00 -Puts the machine in rapid traverse mode.
■ X/Y incremental coordinates-To move from location #5 to tool change.
NO150
■ N150-The sequence number.
■ M30 -Signals that the program has ended. The computer's memory is reset to the
start of the program.
Note that the programming logic was identical for the absolute and incremental
positioning programs. Incremental positioning is primarily used within an absolute
program rather than as a program in and of itself. From this point on, incremental
coordinates will be used within the body of a general absolute program.
5-11
SUMMARY
・ Some procedure for tool change must be included in a program. For a manual tool
change mill, a tool change location is used to safely position the spindle away
from the part. The program must then be halted to allow the safe insertion of the
tool. In word address format, an M06 is used.
・ The spindle must be positioned safely out of the way at the end of the program to
allow safe loading and unloading of the workpiece. This is accomplished in both
the milling and drilling examples by sending the spindle back to its tool change
location at the end of the program.
・ Incremental programs differ from absolute programs only in the coordinates used.
Programs in absolute and incremetal positioning use the same programming logic.
In incremental positioning, it is imperative that the machine start and stop in
the same location. Failure to program for this will result in incorrect
positioning for the second cycle.
・ A dwell command is used at hole locations to halt the program and enable the
operator to drill the hole.
・ When programming coordinates for milling, an allowance must be made for the size
of the cutter.
5-12
◆ 6 Three-Axis Programming
6 THREE-AXIS PRPGRAMMING
・ Write simple programs to perform three-axis hole operations and simple milling
cuts using word address format.
・ Explain the difference between initial level and reference level on CNC
machinery.
In this chapter, drilling and milling operations are programmed using all three
machine axes. When writing three-axis programs using the CNC, one must either know
the lengths of the tools in their toolholders, or leave empty lines in the program
to allow the operator to enter the tool lengths. The concept of tool length offset
was discussed in Chapter 3. The programs in this chapter will put the concept to use.
The part in Fig.6-1 is to be milled. Fig.6-2 depicts the cutter paths necessary
to machine the part. In accordance with the cutter path drawing, the following
sequence of events is to be performed:
1. At the tool change location, place a drill into the spindle. Move to location
#1 and turn the spindle and coolant on.
2. Drill hole #1.
3. Drill hole #2.
4. Drill hole #3.
5. Drill hole #4.
6. Drill hole #5.
7. Turn off the spindle and coolant and return to tool change for a
1-inch-diameter end mill.
8. Move to location #6 at rapid traverse, turn the spindle and coolant on, and
plunge cut a hole thru the part.
9. Feed from #6 to #7.
10. Feed from #7 to #8.
11. Feed from #8 to #9.
12. Feed from #9 to #10.
13. Feed from #10 to #11.
14. Feed from #11 to #7.
15. Retract the spindle.
16. Turn the spindle and coolant off and return to tool change for a .500-inch-
diameter end mill.
17. Rapid traverse to location #12, and turn the spindle and coolant on.
18. Lower the spindle to depth.
19. Feed from #12 to #13.
20. Feed from #13 to #14.
21. Feed from #14 to #15.
22. Feed from #15 to #16.
6-1
23. Feed from #16 to #17.
24. Feed from #17 to #13.
25. Feed from #13 to #12.
26. Retract the spindle.
27. Rapid traverse from #12 to # 18.
28. Lower the spindle to depth.
29. Feed from #18 to #19.
30. Retract the spindle.
31. Rapid traverse from #19 to # 20, jumping over the clamps.
32. Lower the spindle to depth.
33. Feed from #20 to #21.
34. Retract the spindle.
35. Rapid traverse from #21 to # 18.
36. Lower the spindle to depth.
37. Feed from #18 to #22.
38. Feed from #22 to #23.
39. Retract the spindle.
40. Rapid traverse from #23 to # 24, jumping over the clamps.
41. Lower the spindle to depth.
42. Feed from #24 to #25.
43. Retract the spindle.
44. Turn the spindle and coolant off and rapid traverse to the spindle park
position, ending the task.
6-2
FIG.6-2 Cutter paths for drawing in FIG.6-1
The according program in the word address format would read as follows. An often
used code is the G code. This is a preparatory function. With three-axis operation,
many different cycles may be used, each called up by a G code. The G code G04 was
used in the last chapter to cause a dwell to occur.
6-3
G49-This is the tool length offset cancel code.
G81-This is the canned drill cycle.
G80-G80 cancels an 80 series canned cycle.
R-This address stands for reference level. The reference level is the spot where
the programmer desires the canned cycle to start feeding into the workpiece.
The reference level is also called the rapid or gage level. The reference level
is usually the same height as the buffer zone, but it may not be.
G98/G99-G 98 is the return to initial level command. G99 is the return to rapid
(reference) level command. When an 80 series canned cycle is active in word
address format, the spindle may be directed to return to the rapid level with a
G99. G99 is modal and will remain active until a G80 cancel code is issued, or
until canceled with a G98. If a clamp is in the path of movement, or if the
spindle is at the last location in a series, the spindle may be retracted to
the initial starting point in the cycle by using a G98 command.
M03-M functions, as briefly explained in Chapter 5, control a number of auxiliary
functions. M03 is the code for turning the spindle on in the clockwise
direction. In Appendix 3 is a list of common M functions used on numerical
control machinery.
M05-Turns the spindle off.
M06-Tool change code.
M08-Turns the coolant on.
M09-Turns the coolant off.
T-Selects the tool to be put in the spindle by the tool changer.
F-Assigns feedrates, as in two-axis programming.
S-Designates the spindle speed.
6-4
FIG.6-3 Word address format three-axis program, metric for the part in Fig.6-2
6-5
PROGRAM EXPLANATION (Refer Fig.6-3)
The machine used for the programs in Fig.6-3 is a vertical machining center
using automatic tool change such as that shown in Fig.6-4. Fig.6-3 is the metric
version of the program.
In the examples presented in this chapter, the basic drill cycle G81 was used.
There are a number of other G codes that can be used in CNC programs. A list of
these is contained in Appendix 3. Some of the more common codes are explained below.
These codes are diagrammed in Fig.6-5, 6-6 and 6-7.
G83-Peck drilling cycle. The spindle rapids to reference level, feeds in .050,
rapids out, feeds in .050 additional, and rapids out. This cycle repeats until
the programmed Z-axis depth is reached. The spindle then rapids out to either
the reference or initial level, depending on the program instructions. On some
controllers, the amount of the peck is programmable using G codes.
G81-Basic drilling cycle. The spindle rapids to reference level, feeds to z-axis
depth; and rapids out, returning to either reference or initial level.
G84-Tapping cycle. The spindle rapids to the reference level and feeds to Z-axis
depth; it then reverses direction, feeds to the reference level, and reverses
direction again. If G98 is programmed, the spindle rapids to the initial level;
if G99 is programmed, the spindle returns to reference level.
G85-Boring cycle, type A. The spindle rapids to the reference level, feeds to Z-axis
depth, and feeds to the reference level. If G98 is programmed, the spindle
rapids to the initial level.
G86-Borning cycle, type B. The spindle rapids to the reference level and feeds to
Z-axis depth; it then stops and rapids to the reference level. If G98 is
programmed, the spindle rapids to the initial level.
6-6
G89-Boring cycle, type C. The spindle rapids to the reference level, feeds to Z-axis
depth, dwells, and feeds to the reference level. If G98 is programmed, the
spindle rapids to the initial level.
6-7
SPECIAL CNC SECTION
This section has been inclUded to aid those with access to CNC machinery with
controllers. Fig.6-8 is a program to drill and mill the part in Fig.6-1.
・ O0701 is the program “O” number that identifies this program to the MCU.
・ N.. sequence numbers start at N1 and increment by one. There is no hardfast rule
for sequence numbers. The control does not need them. Each programmer chooses
their own numbering convention.
・ An absolute zero shift is used in lines N2 and N3. G28X0.Y0.Z0. returns the
spindle to home zero. G92X10.625Y7.5Z6. transfers the coordinate system to the
part.
・ The machine utilizes spindle direct tool change. An M06 is not necessary to
change tools. It is used where it is the tool number (T01 for tool 1, T02 for
tool 2, etc).
・ G80G00Z.. is the command sequence necessary to retract the spindle to the Z home
position prior to issuing a G49 offset cancel.
6-8
FIG.6-8
6-9
SUMMARY
・ Tool lengths in three-axis machines must be preset by the operator or set in the
program. It is word address format tool lengths are programmed by using G10 H##,
where ## is the tool register number.
・ A buffer zone is the distance between the top of the part and the feed
engagement point of the tool. The amount of buffer is determined by the
programmer and is built into the lengths at setup.
・ On word address CNC machinery, the initial level is the Z-axis spindle position
when an 80 series G code commences. A reference (or rapid) level is the Z-axis
feedrate engagement point selected by the programmer. G98 selects a return to
initial level, and G99 selects a return to reference level when using 80 series
G codes.
6-10
◆ 7 Math for Numerical Control Programming
7 MATH FOR NUMERICAL CONTROL PROGRAMMING
In the following chapters, the machining of arcs and angles will be discussed.
For students already possessing a good working knowledge of trigonometry, this
chapter will serve as a review. It is included here for students who have either not
taken a course in shop math or who feel a review is in order.
What the machinist is able to do by blending arcs and angles through skill and
feel for the craft, the NC part programmer must put into numeric coordinates. It is
necessary for the programmer to become proficient at trigonometry to accomplish this
task. Trigonometry has applications not only in NC programming but also in other
types of machining situations. It is easily mastered with a little practical
experience.
BASIC TRIGONOMETRY
SIDE OPPOSITE
TANGENT = SIDE ADJACENT
The other formulas are the inverses of these three. In the machine shop these three
will cover most situations.
Fig.7-2 will help to demonstrate the value of triangles in shop mathematics. If
the part in Fig.7-2 is to be drilled without using a rotary table, it will be
necessary to specify coordinates as dimensioned in Fig.7-2. These are known as jig
borer coordinates, because they are a common way of locating hole patterns on jig
borers. They are also commonly used with milling machines. They are especially
important in CNC programming.
The immediate problem in looking at Fig.7-2 is that only the dimensions for
holes #1 and #4 are known (they are located on the radius of the bolt circle).
However, dimensions a and b can be determined by using trigonometry.
Note that a triangle has been constructed in the first quadrant of the part. If
this triangle is solved for the length of its sides, it will supply the information
needed for the missing coordinates. The sides of this triangle are labeled a, b, and
1.5 (which is the hypotenuse of the triangle).
7-1
What is known about this triangle ? The length of the hypotenuse is half the
diameter of the bolt circle, or 1.500 inches. Angle A is also known; since the bolt
circle (of 360 degrees) is divided into six equal spaces, the angle between each
hole is 60 degrees. Half the distance to each hole lies on each side of the
centerline. Therefore, the angle from the centerline to either hole #2 or hole #3 is
30 degrees, which is angle A. The formula for the sine is found to be most practical.
OPPOSITE SIDE a
SINE A = HYPOTENUSE SIN 30 = 1.500
a
.500 = 1.500
.500×1.500 = a .750 = a
ADJACENT SIDE b
COSINE A = HYPOTENUSE COS A = 1.500
b
.866 = 1.500
.866 × 1.500 = b
1.299 = b
OPPOSITE SIDE
TAN 40 = ADJACENT SIDE
1.000
TAN 40 = b
1.000
.839 = b
.839 × b = 1.000
1.000
b = .839 b = 1.191
Dimension X equals 3.000 - 1.1191, or 1.809.
7-2
FIG.7-1 Right triangle
FIG.7-2
FIG.7-3
7-3
USING TRIGONOMETRY FOR CUTTER OFFSETS
The angles that will be used for the calculation are 25 degrees for triangle Y and
20 degrees for triangle X, as shown in the figure.
Solving triangle Y for △Y:
△Y
.250 = TAN 25
△Y = TAN 25(.250)
△Y = .46631(.250)
△Y = .11658 or .117
△Y
.250 = TAN 20
△X = TAN 20(.250)
△X = .36397(.250)
△X = .09099 or .091
The amount of offset can be added to or subtracted from points Y and X to arrive at
the correct cutter coordinates. In the next chapter this sort of calculation will be
performed for use with linear interpolation.
Refer to Fig.7-6 for right triangle solutions and to Fig.7-7 for oblique-angled
triangle solutions.
7-4
FIG.7-4
FIG.7-5
7-5
FIG.7-6 Solution of right triangles
7-6
A MILLING EXAMPLE
Fig.7-8 shows a goblet-shaped casting. A ledge .250 inch deep by 1.000 radius is
to be milled in three places, blending to the .120 thick cast web with a .125
radius. A 1/4 inch (.250 diameter) end mill can be used to mill the ledge. Six
cutter locations must be calculated. Since three of these locations are mirrors of
the other three, only the three locations P1, P2, and P3 need be calculated.
There are three triangles that must be solved to determine the proper
coordinates. There are two pieces of information known that will allow the solution
of P1, and determine angle θ: The radius from the center of the part to the center
of the .250 diameter cutter (1.0R - .125 R) and the .185 (.06 + .125) leg of
triangle A. Angle θ can also be determined from this same information as shown in
the fig. To determine angle θ the SIN function is used:
.185
SIN θ = .875 or .21143
θ = 12.206 degrees
P2:
X = .875(COSα) OR .83314
Y = -[.875(SINα)] or - .2674
P3:
X = -[ .875(COSβ)] OR .5878
Y = -[.875(SINβ)] or - .6481
7-7
FIG.7-8
A LATHE EXAMPLE
A = .250(TAN37) or .18839
△K = .005(TAN18.5) or .00167
△I = .005(TAN26.5) or .00249
7-8
To determine the cutter locations:
P1:
X = .55912 Z = - .015
P2:
Note: .55912 in X formula from P1 X calculation.
X = .57509 Z = .00704
P3:
X = .765 Z = -.25167
P4:
X = .76097 Z = -.23963
FIG.7-9
7-9
FIG.7-10
SUMMARY
・ The sine of an angle equals the side opposite the angle divided by the
hypotenuse of the triangle.
・ The cosine of an angle equals the side adjacent to the angle divided by the
hypotenuse of the triangle.
・ The tangent of an angle equals the side opposite the angle divided by the side
adjacent to the angle.
・ The use of trigonometry is necessary for determinig cutter offsets for linear
and circular interpolation and for determining other part information from a
blueprint.
7-10
◆ 8 Linear and Circular Interpolation
8 LINEAR AND CIRCULAR INTERPOLATION
・ Write programs using linear interpolation to cut simple angles in word address
format.
・ Write programs using circular interpolation to mill arcs in word address format.
Simply put, linear interpolation is the ability to cut angles, and circular
interpolation is the ability to cut arcs or arc segments. Without the ability to
cut arcs and angles, a CNC machine is quite limited in its uses. In this chapter
both concepts will be introduced.
LINEAR INTERPOLATION
Fig.8-1 shows a part on which an angle is to be milled. The cutter has already
been positioned at location #1, Fig.8-2. A .500-inch-diameter end mill is being
used. Before the angle can be cut, it is necessary first to position the spindle at
location #2, Fig.8-2. Notice that the Y axis coordinate for location #2, as
dimensioned on the part, is not the same point as the edge of the angle. In order to
determine this Y axis cutter offset, it will be necessary to determine the amount
that must be added to the dimension on the part print to place the spindle at
location #2. Similarly, it will be necessary to calculate an amount to be subtracted
from the point on the part designated as "P" to arrive at the X axis coordinate for
location #3. This is the same cutter offset situation presented in the last chapter.
Fig.8-3 represents an enlarged view of locations #2 and #3, illustrating the
triangles involved in determining the offsets. The formulas from Appendix 6, Fig.1,
can be used to determine the offsets as follows:
8-1
A given formula can be used to defermine the offsets as follows:
θ
△Y = CR TAN 2 (CR=cutter radius)
△Y = .25(TAN30)
△Y = .25(.5774)
△Y = .144
The △Y offset to be added to the part dimension to arrive at the Y coordinate for
location #2 is .144.
The offset for location #3 can be determined as follows:
α
△X = CR TAN 2
△X = .25 (TAN15)
△X = .25 (.26794)
△X = .067
Before using this information to determine the X axis coordinate, it will also
be necessary to calculate the coordinate location of point "P" along the X axis.
Again, using the trigonometry formulas, the coordinate can be calculated:
1.000
TAN 30 = b
1.000
.5774 = b
.5774 × b = 1.000
1.000
b = .5774
b = 1.732
Subtracting .067 (the △X offset) from 1.732 produces the X-axis coordinate for the
cutter, 1.665. The △Y offset, which was found earlier to be .144, can now be added
to the 1.000 Y-axis dimension on the part to arrive at a Y-axis coordinate of 1.144.
This information can now be used to write a program to mill the angle specified on
the part drawing.
8-2
FIG.8-1 Part drawing
8-3
〔Word Address Format〕
In writting the word address routine, the necessary coordinates are simply
programmed along with a G01, which causes a feedrate move. Any line is considered to
be an angle. A move along the X axis would cut an angle of 0 degrees. A move along
the Y axis would cut an angle of 90 degrees. The code GO1 is technically defined as
linear interpolation, with linear interpolation defined simply as a feedrate move
between two programmed points. The program necessary for the movement, illustrating
linear interpolation with word address is picked up at location #1 and reads as
follows:
N...GO1Y1.144
N...X1.665Y2.25
N...X4.25
A GO1 is given to institute a straight milling cut to location #2. Next the X/Y
coordinates calculated earlier are programmed. The coordinates are then given to
send the spindle to location #4.
〔Additional Example〕
Linear interpolation is not difficult. Aside from calculating the cutter offsets
necessary to positioning the spindle, it is the same as straight line milling. The
only real difference is that an X and a Y coordinate are specified for the ending
point of the angle since there is a change in position in both axes.
Fig.8-4 shows another cutter offset situation. This part has two angles which
intersect each other. In this case, the calculation of the cutter offsets becomes
somewhat more complicated. In order to program locations #1 and #3, the formula in
Appendix, Fig.1, can be used. For location #2, the formula from Appendix, Fig.2, can
be used. A .500-inch cutter will be assumed.
75
△Y = CR TAN △X = CR
2
△Y = .25 (TAN37.5)
△Y = .25(.7673)
△Y = .1918
8-4
For location #2:
45 15
SIN
△ X = CR × 2
45 15
COS 2
△X = .25 ×
SIN 30
COS15
△X = .25 ×
.5
.9659
△X = .25 × .5176
△X = .1294
45 15
COS
△ Y = CR × 2
45 15
COS 2
△Y = .25 ×
COS 30
COS15
△Y = .25 ×
.866
.9659
△Y = 2.5 × .8966
△Y = .2241
△X = .25(TAN22.5)
△X = .25(.4142)
△X = .1036
8-5
FIG.8-4 Part drawing with cutter path shown
CIRCULAR INTERPOLATION
In cutting arcs, the MCU uses its ability to generate angles to approximate an
arc. Since the machine axes do not revolve around a centerpoint in a typical
three-axis arrangement, the cutting of a true arc is not possible. The CNC machine
calculates and then cuts a series of chord segments to generate an arc, as
illustrated in Fig.8-5. These chord segments are very small and practically
indistinguishable from a true arc.
Fig.8-6 shows a part with a radius to be machined. In order to generate the
radius, circular interpolation will be used to send the cutter from location #3 to
location #4, Fig.8-7. A .500-inch-diameter end mill will be used.
8-6
FIG.8-6 Part with radius to be machined
〔Word Address〕
8-7
This text will use I, J, and K as the absolute coordinates of an arc center. It
should be noted that Fanuc and other similar controls use I, J, K as incremental
distances.
In word address format, a three-step process is followed to cut an arc. All
three steps are usually contained in one program line.
The blocks to cut the arc moving from location #1 to #5 are as follows:
N...G01 Y3
N...X2
N...G01 X3 Y2 I2 J2
N...G01 Y-.25
The first block is a straight milling cut to feed the cutter from location #1 to
location #2. The second block is a straight milling cut to feed the cutter from
location #2 to location #3 (the starting point of the arc cut). The third block
initiates circular interpolation in a clockwise direction using G02. The X/Y
coordinates of the arc endpoint and arc centerpoint are given, using I to define the
X-axis centerpoint and J to define the Y-axis centerpoint. This block programs the
entire arc, feeding the cutter from location #3 to location #4. The last block feeds
the cutter from location #4 to location #5. Note that G01 was spesified to put the
machine back into the feedrate mode.
N...G01 Y3
N...X2
N...G02 X3 Y2 R.75
N...G01 Y-.25
8-8
The first block is a straight milling cut to feed the cutter from location #1 to
location #2. The second block is a straight milling cut to feed the cutter from
location #2 to location #3 (the starting point of the arc cut). The third block
initiates circular interpolation in a clockwise direction using G02. X and Y define
the endpoint of the arc cut. The arc's radius is given using the R address. As in
the preceding example, this block programs the entire arc, feeding the cutter from
location #3 to location #4. The last block feeds the cutter from location #4 to
location #5.
〔Additional Example〕
The programs just given are for simple arcs which intersect a line parallel to
a machine axis. In many cases, however, an arc will intersect an angle or another
arc. Fig.8-8 and 8-9 are examples of such cases. The cutter offsets for these
situations can be found by using the formulas from Appendix. The cutter radius (CR)
in the following examples is .250 inch.
To calculate △X and △Y in Fig.8-8, it is necessary to calculate △i and △j:
△j = 1.25 - .75
△j = .5
△i = 1.25 2
.5 2
△i = 1.562 .25
△i = 1.312
△i = 1.1454
△Y = CR
△X = △i R CR 2 2△ j CR 2
△X = 1.1454 - 1 .0625
△X = 1.1454 - .9375
△X = 1.1454 - .96825
△X = .17715
8-9
To calculate △X and △Y in Fig.8-9:
△X = CR × SIN 45
△X = .25 × .7071
△X = .1769
△Y = CR × COS 45
△Y = .25 × .7071
△Y = .1769
In this case, since the angle is 45 degrees, the offsets for △X and △Y are the
same. Had a different angle been used, the offsets would be different.
FIG.8-8
8-10
FIG.8-9
8-11
SUMMARY
・ Circular interpolation is the ability to cut arcs or arc segments. Arcs are cut
by means of a series of chordal segments generated by the MCU to approximate the
arc curvature.
・ It is necessary to calculate the cutter offset coordinates when using linear and
circular interpolation.
・ G02 and G03 are used to institute circular interpolation in word address.
G02/G03 X...Y...I...J...
Where X and Y are the endpoint coordinates and I and J are the centerpoint
coordinates.
G02/G03 X...Y...R...
Where X and Y are the endpoint coordinates and R is the arc radius.
8-12
◆ 9 Cutter Diameter Compensation
9 CUTTER DIAMETER CONPENSATION
[OBJECTIVES] Upon completion of this chapter, you will be able to:
・ Describe ramp on and ramp off moves and explain their importance.
G41-Cutter diameter compensation left. Upon receiving a G41, the tool will
compensate to the left of the programmed surface. The tool will move to a
compensated position on the next X, Y, or Z axis move after the G41 is received.
Word address format allows compensation on any axis and uses a G code to
determine which axes combination is to be used. If the part is to be machined using
the X and Y axes, compensation is desired in the X/Y plane. If using the X and Z
axes, compensation in the X/Y plane is needed. If using the Y and Z axes,
compensation is needed in the Y/Z plane. The X/Y plane is used most commonly. The G
codes used to select the desired work plane in word address are:
9-1
Two terms are important for understanding cutter diameter compensation: ramp on
and ramp off. Fig.9-1 will help to illustrate their meaning. If a tool is moved from
point #1 to point #2 following a G41 command, the cutter will compensate in a plane
perpendicular to the part surface and the spindle will move to point #3 rather than
point #2. This initial compensation move is called the ramp on move. The machine is
in the process of adjusting its path for the entire move from point #1 to point #2.
By the time it reaches point #2, it has fully compensated its path.
In Fig.9-2 another type of situation is demonstrated. The cutter started at
point #1 in this illustration, presenting the possibility that the corner of the
part might be cut off in the process of moving to point #2 if the spindle were
moving downward or already positioned there. If point #1 was the desired tool change
location for this part, the spindle would need to be fully retracted and lowered
after reaching the programmed location. When clamps or fixturing devices do not
interfere, it is not uncommon to rapid the Z axis to depth on the same move that
positions X and Y. Some controllers do not allow cutter comp to be instituted in two
axes simultaneously. In these cases it is necessary to program a location away from
the part surface, and ramp on the compensation 90 degrees from the desired part
surface, as in Fig.9-3. Controllers are often particular about the manner in which
cutter comp is ramped on. It is advisable when programming several different
controllers or controllers of different ages to use the method in Fig.9-3. This is
the most successful method of ramping on cutter comp.
The ramp off move is the opposite of the ramp on move and the same precautions
are necessary. In Fig.9-2, assume that cutter comp is cancelled and a move is made
from point #2 to point #1. In this case, the corner of the part may also be cut off.
Remember, the compensation is not turned off completely until the ramp off move is
completed.
Two additional points should be noted. First, with many controllers, cutter comp
must be turned on after the length offset is initiated. Similarly, cutter comp must
be cancelled prior to cancelling the tool length offset. Failure to do this will
result in the controller halting executing of the program, and an alarm signaling at
the MCU console.
Second, in word address format controllers cutter comp must be commanded in
rapid or feedrate modes, not in circular interpolation mode. If G40, G41 or G42 are
commanded after G02 or G03, a machine controller alarm will result.
A short program to mill the part in Fig.9-4 is given in Fig.9-5 (word address
format). The program contains a roughing and a finishing cut. One way to accomplish
this without changing tools or programmed coordinates is to program the diameter of
the cutter as two separate diameters. This program uses a .500-inch-diameter end
mill. By defining it as both a .520-inch diameter and a .500-inch diameter and using
the same coordinates for both passes, the result is that .010 inch of stock is left
for the finish pass.
9-2
FIG.9-1 Ramp on move
FIG.9-2
9-3
FIG.9-3
FIG.9-4 Part drawing and cutter path for cutter diameter compensation
9-4
FIG.9-5 Cutter diameter compensation program to mill the part
in Fig.9-4, word address format.
N010
■ N010-The sequence number.
■ G00 -Puts the machine in rapid traverse mode.
■ G40 -Cancels any active cutter comp. This code and the other codes in this line
are used as a safety divice. If any program was run on the machine prior
to this one, there might be active codes detrimental to the execution of
this program.
This block eliminates any chance of accident.
■ G49 -Cancels any active tool offset.
■ G70 -Selects inch input.
■ G80 -Cancels any active canned cycle.
■ G90 -Selects absolute positioning.
N020
■ N020-The sequence number.
■ G10 -Tells the MCU that tool information is being defined.
■ H01 -Selects tool register #1 to hold the tool definition information.
■ X.25-Defines the tool diameter.
■ Z3 -Defines the tool length offset.
9-5
N030
■ N030-The sequence number.
■ G10 -Tells the MCU that tool information is being defined.
■ H02 -Selects tool register #2.
■ X.5 -Defines the tool diameter.
■ Z3 -Defines the tool length offset.
N040
■ N040-The sequence number.
■ M06 -Initiates an automatic tool change.
■ T1 -Selects tool #1 for use.
N050
■ N050 -The sequence number.
■ G45 H01-Calls up the offset in register #1 for use with the tool.
N060
■ N060 -The sequence number.
■ X-1 Y-.25-The coordinates of location #1.
■ S2500-Sets the spindle speed to 2500 RPM.
■ M03 -Turns the spindle on clockwise.
N070
■ N070-The sequence number.
■ Z0 -Rapids the spindle to the start of the buffer zone. A .100 buffer is being
used with this program.
N080
■ N080-The sequence number.
■ G01 -Puts the machine in feedrate mode.
■ Z-.62-The Z-axis coordinate to feed the cutter to depth.
■ F12.8-Assigns a feedrate to be used in feedrate moves.
■ M08 -Turns the coolant on.
N090
■ N090-The sequence number.
■ G17 -Selects the X/Y plane.
■ G41 -Initiates cutter diameter compensation left.
■ X0 -The coordinate of the part surface. Since a G41 was issude, the cutter will
be positioned the distance of the tool radius away from the cutter at
location #2. This tool was defined as having a .520-inch diameter. It is
in reality .500 inch. This will leave stock for finishing on the part.
N100
■ N100-The sequence number.
■ Y4 -Feeds the cutter from location #2 to location #3.
9-6
N110
■ N110-The sequence number.
■ G00 -Puts the machine in rapid traverse mode.
■ G18 -Selects the X/Z plane, since movement is required in Z to retract the
spindle to clear the clamps on the next move.
■ Z3 -Raises the spindle to clear the clamps. Since a 3-inch clearance was
specified to clear the clamps in the setup sheet, this is a valid move.
The disadvantage to this technique is that the setup man may not have
established the correct clearance. An alternative move would be to cancel
the cutter comp and tool offset, raise the spindle to Z0, and reinstitute
the tool offset and cutter comp after repositioning the X and Y axes.
N120
■ N120-The sequence number.
■ X6 -The coordinate to move from location #3 to location #4. The move is in
rapid traverse mode.
N130
■ N130-The sequence number.
■ Z0 -Rapids the cutter to the buffer height.
N140
■ N140-The sequence number.
■ G01 -Puts the machine in feedrate mode.
■ Z-.62-Feeds the cutter to proper milling depth.
N150
■ N150-The sequence number.
■ G17 -Selects the X/Y plane. It is used to reestablish movement along the X/Y
axes cancelled when the G18 was issued in block N110.
■ Y0 -The coordinate for the feedrate move from location #4 to location #5.
N160
■ N160-The sequence number.
■ G40 -Cancels the compensation.
■ X7 -Moves the cutter from location #5 to location #6. This is a ramp off move.
N170
■ N170-The sequence number.
■ G00 -Puts the machine in rapid traverse mode.
■ G49 -Cancells the active tool offset. Note that the compensation was cancelled first.
■ Z0 -Retracts the spindle.
N180
■ N180-The sequence number.
■ X-1 y-.25-The coordinates to rapid from location #6 to location #1.
N190
■ N190-The sequence number.
■ G45 H02-Calls up the tool information in register #2 for use with the tool.
Blocks N200 on repeat blocks N070 through N170. The coolant is turned off in
block N300, and the spindle is turned off in block N310.
9-7
SPECIAL CONSIDERATIONS
Fig.9-6 illustrates the correct method for turning compensation on or off when
maching an inside pocket. Point B must be a minimum of one cutter radius away from
the corner of the pocket. If point C were programmed as the ramp on move, the cutter
would cut into the corner as in Fig.9-7. The direction of the cut depends on whether
the X or Y axis is programmed as the first move following the G41.
Fig.9-8 illustrates the precautions necessary when ramping on or off an angle.
Point A should not be used for a ramp on or ramp off move since the corner of the
angle will be cut off the part, and there may also be damage to the cutter. Point C,
or some other point roughly perpendicular to the angle, should be used for the ramp
on or ramp off move.
Two different methods of positioning are used for cutter comp with respect to
angles, as demonstrated in Fig.9-9. On older CNC machinery, the machine positions
the cutter tangent to point A. A G code is then used to initiate the rotation from
Y1 to Y2. On newer machinery, the cutter is positioned directly to point P, tangent
to both line A and line Y. No special G codes are necessary in this instance. The
programming manual for a particular machine will tell the programmer whether a G
code is required.
FIG.9-7
9-8
FIG.9-8 Ramping on or off an angle
9-9
For Fig.9-11 (A):
Note that in each of these cases I is the X-axis component, and J is the Y-axis
component of a vector 1.0 inch long. This is called a unit vector. In Fig.9-12(A)
the approach angle is 30 degrees, therefore, I equals the sine of 30 degrees, while
J equals the cosine. In Fig.9-12(B) the approach angle is 60 degrees. I equals the
sine of 60 degrees, while J equals the cosine of 60 degrees. Since the approach
angle in Fig.9-12(C) is 90 degrees, I simply equals 1.0 and J equals zero.
Fig.9-13 shows a part to be milled using cutter diameter compensation. A program
to mill the part is given in Fig.9-14. It is assumued that the part is clamped
through two already existing holes. With the information given thus far, the student
should be able to follow this program without further explanation.
9-10
FIG.9-11 Cutter compensation vectors.
9-11
FIG.9-13
Up to this point, cutter diameter compensation has been used to program the part
line; the program coordinates have matched the part dimensions. Another way cutter
comp is employed is to fine tune the cutter path. In this type of programming, the
part is programmed using the parallel path method used in Chapters 5, 6, and 8.
Cutter comp is used to compensate for the difference between the programmed and
actual cutter diameter. For example, if a program is written for a .500 diameter
end mill, but a resharpened end mill measuring .490 diameter is used, the .020
diameter difference can be compensated for by using cutter comp.
In the fine tune method, cutter comp is usually used to compensate for a cutter
which is smaller than the programmed diameter. When using the part line method
exactly the opposite is the case. Cutter comp is used to compensate for a cutter
which is larger than the zero diameter cutter programmed (the part line). For this
reason it is necessary to use a minus (-) value in the cutter comp register when
using the fine tune method.
Fig.9-14 is a word address program for the part in Fig.9-12, illustrating the
fine tune method. Note that allowance is once again being made for the cutter
radius. The cutter diameter compensation allows reground, undersize cutters to be
used.
9-12
FIG.9-14
Fig.9-15 contains a program to mill the part in Fig.9-7 using half the cutter
diameter in the cutter comp register. Fig.9-16 contains a program to mill the part
in Fig.9-12 using the fine tune method. The programs are written for a H-500 four-
axis machining center with a Fanuc 11M control. It will be assumed that B0 positions
the rotary table to the proper position to machine the part. The B axis (rotary
motion around the Y axis) is commanded to B0 at the start of the program and left
there throughout the program cycle. There are several important differences between
this machine and the text examples that need to be understood.
Fanuc controls utilize a cutter comp called cutter radius offset (CRO). The
radius value of the cutter is entered in a register rather than the cutter diameter.
If using the fine tune method, it is the difference between the programmed cutter
radius and the actual cutter radius that is entered in the register. A“D”address isused to specify t
he register used.
Like many horizontal machining centers, the H-500 uses a preset tool change
position. On this machine, the spindle must be commanded to the tool change position.
The spindle must also be oriented to allow the tool changer to properly change the
tools. The command used to acoomplish this is G91G30Z0Y0Z0M19. The M19 orients the
spindle. The length offset is cancelled by returning the Z axis to the tool change
position. Once this is done, X and Y are returned to tool change as follows:
G91G30Z0M09
G30X0Y0M19
After changing tools, a T02 command is included on the line following the T01M06
command to place the next tool in the standby position, ready to be changed at the
next tool change command.
This machine also uses work coordinates. The G54 command follows the tool change
command line to call up the work coordinate. The work coordinate values have been
manually entered.
9-13
FIG.9-15 FIG.9-16
SUMMARY
・ The“ramp off”move is the opposite operation. Ramp off will occur 90 degrees
to the next axis movement following a G40. The compensation will be completely
eliminated by the end of this move.
9-14
◆10 Do loops and subroutines
10 DO LOOPS AND SUBROUTINES
・ Describe a do loop.
・ Describe a subroutine.
・ Write simple programs in word address using do loops, subroutines, and nested
loops.
DO LOOPS
FIG.10-1
1. G51 Nn
2. X/Y/Z
3. G50
10-1
Where G51 signals the start of a do loop, N is the address and n is the number of
times an operation is to be repeated, X/Y/Z is the program information contained in
the loop, and G50 signals the end of the do loop.
It should be noted here that the codes for do loops vary from one controller to
another. The programming manual will need to be consulted for the proper codes. The
coding used here is a type of General Numerics format used on FANUC controllers also.
PROGRAM EXPLANATION (Refer to Fig. 10-2)
N010
■ Safety line to cancel any active G codes and bring the spindle to home position.
N020-N030
■ Assigns tool information to tool length registers.
N040
■ M06 T1-Initiates an automatic tool change, selecting tool #1 from the storage
magazine.
N050
■ G45 H01-Calls up the tool offsets in register #1. Note that the codes for tool
offsets also differ from machine to machine. This is just one example of
tool offset coding. The important point is that tool offsets must be coded.
N060
■ S3500-Assigns the spindle speed.
■ F10.5-Assigns the feedrate. In this example, the feedrate moves are Z-axis
movement during the canned cycle operation.
■ M030 -Turns the spindle on clockwise.
N070
■ G81 -Initiates the canned drilling cycle.
■ G99 -Selects a Z-axis return to the reference (rapid) level, which is the
start of the buffer zone.
■ X.5 Y1-Coordinates of the first hole.
■ Z-.162-Z-axis center-drilling depth.
■ R0 -Sets reference level for the drilling cycle.
■ M08 -Turns the coolant on.
N080
■ G51 -Initiates the do loop.
■ N4 -Instructs the MCU to repeat the operation contained in the loop four times.
N090
■ G91 -Selects incremental positioning.
■ X1 -Incremental distance between the holes to be drilled inside the loop.
N100
■ G50 -Signals the end of the loop information.
10-2
N110
■ G80 -Cancels the G81.
■ G90 -Selects absolute positioning.
■ G49 -Cancels the active tool offset.
■ Z0 -Retracts the spindle.
■ M09 -Turns the coolant off.
N120
■ M06 T2-Initiates an automatic tool change, selecting the #2 position in the
storage magazine from which to take the new tool.
N130
■ G45 H02-Calls up the offsets contained in register #2.
N140
■ S3500-Sets the spindle speed.
■ F21 -Sets the feedrate.
■ M03 -Turns the spindle on clockwise.
N150
■ G81 -Initiates the canned drilling cycle.
■ G99 -Selects a return to reference (rapid level) A.
■ X.5 Y1-Coordinates of hole #1.
■ R0 -Sets the reference level for the drilling cycle.
■ M08 -Turns the coolant on.
N160
■ G51 -Initiates the do loop.
■ N4 -Instructs the MCU to perform the loop four times.
N170
■ G91 -Selects incremental positioning.
■ X1 -Incremental distance between the holes.
N180
■ G50 -Signals the end of the loop information.
N190
■ G80 -Cancels the canned drilling cycle.
■ G90 -Selects absolute positioning.
■ G49 -Cancels the tool offset.
■ Z0 -Retracts the spindle.
■ M09 -Turns off the coolant.
N200
■ X-12 Y8-Coordinates of the spindle park position. Any coordinates that safely
position the cutter out of the way are adequate.
■ M05 -Turns off the coolant.
N210
■ M30 -Signals the end of the program, resetting the computer memory to the start
of the sequence.
10-3
FIG.10-2 Do loop program for part in FIG.10-1, word address format.
SUBROUTINES
A subroutine is a program within a program, placed at the end of the main program.
For example, on the part in Fig.10-3, note that the holes occur in the same geometric
and dimensional pattern in four different locations. A do loop could be programmed to
drill the holes, but programming steps can be minimized by placing the pattern in a
subroutine. The drill can be sent to hole #1 and the subroutine called to drill the
four holes A, B, C, and D. Hole #2 can then be positioned and the subroutine called
again, and so on.
One way to use a subroutine is to place one or more do loops in the subroutine.
This is known as nesting. Subroutines may also be nested in other subroutines, or
nested within do loops. This gives the programmer a great deal of flexbility and a
powerful programming tool.
MOVES TO HOLES #1, #2, #3, #4 IN ABSOLUTE MOVES TO HOLES A, B, C, D IN ABSOLUTE ARE INCREMENTAL
10-4
〔Word Address Format〕
Where n1 is the block number that starts the subroutine, nn is the number of times
the subroutine is to be repeated, :PROG # is the sequence number of the subroutine,
N010 sets the sequence number of the subroutine equal to sequence number N010, and
n2 is the sequence number of the main program to be returned to. Some controllers
use an O (letter“O”) address in place of the colon.
N010-N030
■ Assigns the tool information to the tool registers.
N040
■ M06 T1-Initiates an automatic tool change, with tool position #1 being used for
the new tool.
N050
■ S3500-Sets the spindle speed to 3500 MIN-1.
■ F10.5-Sets the feedrate.
■ M03 -Turns the spindle on clockwise.
N060
■ G45 H01-Calls up the offsets in register #1, which will be used for the center
drill.
N070
■ G81 -Initiates the canned drilling cycle.
■ G99 -Selects a Z-axis return to the reference (rapid) level when the G81 is
cycled.
■ X1.5 Y1.5-Positiones the center drill over hole #1.
■ Z-.162-Z-axis depth for the center drilling.
■ R0 -Sets the reference level to Z0, which was set to be .100 off the top of
the part at setup.
■ M08 -Turns on the coolant.
10-5
N080
■ P300 -Sequence number of the subroutine starting location. P300 is used here
instead of N300.
■ M98 -Tells the machine to jump to the subroutine. The MCU will go to the
program block specified as P300, labeled:300, and execute the instructions
listed there. The last command in the subroutine instructs the MCU to
return to the main program.
N090
■ G91 -Selects absolute positioning. The subroutine coordinates are incremental;
therefore absolute must be specified here.
■ X4.5 Y1.5-Coordinates for hole #2. The G81 is still active so that a hole is
drilled at every programmed location.
N100
■ P300 M98-Again tell the MCU to carry out the instructions in the subroutine in
block : 300.
N110
■ G90 -Selects absolute positioning.
■ X7.5 Y1.5-Coordinates for hole #3.
N120
■ P300 M98-Initiate a jump to the subroutine.
N130
■ G90 -Selects absolute positioning.
■ X10.5 Y1.5-Coordinates for hole #4.
N140
■ P300 M98-Again causes a jump to the subroutine.
N150
■ G49 -Cancels the tool offset.
■ G80 -Cancels the drilling cycle.
■ G90 -Selects absolute posiyioning.
■ Z0 -Retracts the spindle.
■ M09 -Turns off the coolant.
N160
■ M06 T2-Initiates an automatic tool change, taking tool #2 from the magazine
and placing it in the spindle.
N170-N270
■ Duplicate blocks N050-N150.
N290
■ M30 -Signals the end of the program, resetting the computer memory to the start.
10-6
:300
■ :300 -Identifies this block as N300, the beginning of a subroutine.
■ N010 -Identifies this block N010 of the subroutine.
■ G91 -Selecting incremental positioning. Incremental coordinates are used
throughout this subroutine.
■ X-.5 Y.5-Incremental coordinates to move from the center of the hole pattern to
hole A.
N020
■ N020 -Identifies this as block N020 of the subroutine.
■ Y-1 -Incremental coodinates to move from hole A to hole B.
N030
■ N030 -Identifies this as block N030 of the subroutine.
■ X-1 -Incremental coodinates to move from hole B to hole C.
N040
■ N020 -Identifies this as block N040 of the subroutine.
■ Y-1 -Incremental coodinates to move from hole C to hole D.
N050
■ N050 -Identifies this as block N050 of the subroutine.
■ M99 -Instructs the MCU to return to the block in the main program following the
M98 that sent it to the subroutine. If a different return spot is desired,
a modifier can be added to this command using the P address to send the
MCU to another program line. M99 P090, for example, would return the
program to block N090 rather than the block following the M98 jump to the
subroutine.
10-7
〔Subroutines for Cutter Diameter Compensation〕
In Chapter 9 it was pointed out that subroutines are often used with cutter
diameter compensation. Fig.10-5 presents a program written in word address format
for the part shown in Chapter 9, Fig.9-12. The program utilized a subroutine to mill
the part periphery. The first time the subroutine is called, the .52 tool
compensation diameter is used with a .500-inch-diameter cutter. This procedure mills
the roughing pass. The second time the subroutine is called, the .5 offset is active,
resulting in the finish milling pass. The remark statements should make the program
self-explanatory. The machining sequence is identical to that used in Chapter 9. The
difference is that the duplication of coordinate locations is eliminated.
10-8
NESTED LOOPS
10-9
FIG.10-7
Fig.10-8 contains the program to drill the part in Fig.10-1 using a do loop.
Fig.10-9 is the program to drill the part in Fig.10-3 using a subprogram. CNC
controllers do not use subroutines as such. Each subroutine is actually a mini
program, stored in the controller under its own“O” number. The subroutines are
called subprograms for this reason. A colon (:) can be substituted for the letter
“O”if desired, as was done in the text examples.
The programs in Fig.10-8 and 10-9 were written for a horizontal machining center.
A work coordinate is used to origin the part coordinate system using G54.
The length offsets are picked up using a G43 command. They are cancelled by
returning the spindle to the home zero position, which is also the tool change
position, using a G28 command.
The M91 command issued as part of the program startup statements is a pallet
recognition command. This tells the controller the machine has been equipped with
the multipallet option. In the examples given in this section, only one pallet is
used.
10-10
FIG.10-8 FIG.10-9
10-11
SUMMARY
G51 N#
Programming information
G50
・ The format for a word address subroutine as used in the text examples is:
Where Pn1 = Sequence number at which subroutine starts, and Pn2 = the block
number of the main program to be returned to. If no block number is specified,
the MCU returns to the block following the M98 command last issued.
・ Nested loops are loops placed inside other loops or inside subroutines.
・ The codes for subroutines and do loops vary from controller to controller. To
program a particular machine, it will be necessary to consult the programming
manual for the machine in question.
10-12
◆11 Advanced CNC features
11 ADVANCED CNC FEATURES
・ Write simple programs in word address that employ polar rotation used in a do
loop.
MIRROR IMAGING
11-1
FIG.11-1 Part drawing.
11-2
On some CNC machines, mirror imaging is selected at the MDI console by means of
a switch. When programming such a machine, a dwell must be programmed at the place
where mirror imaging is to be instituted, and instructions given for the operator to
set the switches prior to restarting the program. The program to drill the part is
shown in Fig.11-3.
N010
■ This is the safety block, cancelling any codes that may have been left active
following a previous program.
N020-N030
■ These blocks assign the tool information and select the tool.
N040
■ S641 -Sets the spindle speed to 641 MIN-1.
■ F5 -Sets the feedrate.
■ M03 -Turns the spindle on clockwise.
N050
■ G45 H01-Call up the tool offsets in register #1.
N060
■ X0 Y0-Position the machine to the center of the part, where the subroutine
starts.
11-3
N070
■ G81 -Initiates the drilling cycle.
■ G99 -Selects a return to rapid level.
■ Z-.7 -Z-axis depth for drilling. Since a G81 code will not move the Z axis until
after an X, Y, or X/Y move, no movement takes place along the Z axis yet.
■ R0 -Sets the start of the buffer (Z0 with a tool offset active) at the rapid level.
■ M08 -Turns the coolant on.
N080
■ P190 M98-Instruct the MCU to jump to the subroutine that starts in block 190.
N090
■ M21 -Mirror images the X axis.
N100
■ P190 M98-Causes a jump to the subroutine.
N110
■ M22 -Mirror images the Y axis.
N120
■ P190 M98-Causes a jump to the subroutine.
N130
■ M23 -Cancels the active mirror image commands.
N140
■ M22 -Mirror images the Y axis. It was necessry to cancel the mirror image in
block N130 because the X axis was mirror imaged along with the Y. Once
cancelled, an M22 is used to reestablish the mirror image on the Y axis.
N150
■ P190 M98-Causes a jump to the subroutine.
N160
■ G80 -Cancels the drill cycle.
■ G49 -Cancels the tool offset.
■ Z0 -Retracts the spindle.
■ M09 -Turns off the coolant.
N170
■ X-12 Y8-Coordinates of the park position. As in other word address examples,
any place that safety positions the tool out of the way can be used. It
is assumed in these examples that the tool change location is at
approximately X-12, Y8 from the part X0/Y0.
N180
■ M30 -Signals the end of the main program and resets the computer memory.
:190
■ :190 -Identifies this as block 190 of the main program.
■ N01 0-Further identifies this as block N010 of the subroutine.
■ X1 Y1-Absolute coordinates to move from the center of the part to hole #1.
11-4
N020
■ G91 -Selects incremental positioning.
■ X-.5 Y.5-Incremental coordinates to move from hole #1 to hole #2.
N030
■ X1 -Incremental coordinate to move from hole #2 to hole #3.
N040
■ X1 -Incremental coordinate to move from hole #3 to hole #4.
N050
■ X1 -Incremental coordinate to move from hole #4 to hole #5.
N060
■ G90 -Selects absolute positioning.
■ M99 -Instructs the MCU to return to the main program.
POLAR ROTATION
Consider the part shown in Fig.11-4, in which four slots are to be milled. A
machinist making this part on a conventional vertical milling machine would probably
set up the workpiece on a rotary table, rotate 45 degrees from the nominal 0-degree
location, and mill the first slot. The other three slots could then be milled,
moving the various axes, or the machinist could simply index the part 90 degrees
from the first slot to mill the second without excess movement along the X and Y
axes. The same type of machining may be accomplished on a CNC machining center or
CNC mill equipped with polar rotation.
A polar axis coordinate system is formed by constructing a line whose slope is
not the same as either the X or Y axis. For example, in Fig.11-5, a line has been
constructed between the origin (point #1) and point #2 on the graph. That line is a
polar axis. Notice that point #2 is located 1.0 inch from the origin as measured
along the polar axis. If point #2 is specified as (1,0) measured along the polar
axis, then point #2 is called a polar coordinate. In mathematics more scientific
definitions exist for a polar axis, but for the purposes of CNC programming, polar
rotation can be thought of as rotating the Cartesian coordinate system.
When polar rotation is instituted in a CNC program, the MCU will triangulate the
points necessary to position the tool to the desired coordinates from the program
information that it is given. Polar rotation is supplied on most controllers as an
optional feature. As with most options, the coding for polar rotation varies greatly
from machine to machine. The example given here can serve only to demonstrate the
concept. The NC part programmer will have to consult the programming manual program
polar rotation successfully on a given machine.
Despite the differences in controllers, there is certain information that every
MCU needs in order to carry out a polar rotation:
11-5
・The amount of the rotation. Following the initial rotation to the index angle,
subsequent rotations may be specified as some angular value other than the index
angle. The rotations will occur in a counterclockwise direction. In the case
shown in Fig.11-4, this amount is 90 degrees. In other words, following the
initial index of the coordinate system 45 degrees, subsequent rotations will be
90 degrees until the cancel command is given.
・ A code to initiate polar rotation.
・ A code to cancel polar rotation.
FIG.11-4 FIG.11-5
The coding format in word address format is designed to be genetic for the
purposes of instruction. Every controller uses a different coding method for polar
rotations, and many controllers do not offer the capability. Polar rotation is used
generally on three-axis machinery to compensate for the lock of a fourth rotary axis.
The format for word address polar rotations used in this book is:
G61 X....Y....A...D...L..
Programming informatin
G60
11-6
Where G61 is the code to insitute polar rotation, X.... is the X axis center of
rotation, Y.... is the Y axis center of rotation, A.... is the index angle measured
in degrees from the X axis, D.... is the subsequent amount of rotation measured in
degrees, L.... is the number of rotations to be performed, and G60 is the code to
cancel the rotation.
N010-N040
■ These blocks assign the tool information, speed, and feedrate and turn the
spindle on clockwise.
N050
■ X0 Y0-Coordinates of the bolt circle diameter of the solts. The subroutine is
designed to start from this location.
N060
■ Z0 -Rapids the spindle to the rapid level.
■ M08 -Turns on the coolant.
N070
■ G61 -Initiates the first polar rotation. The first rotation will be to the
index angle.
■ X0 -Defines the X0 position as the X-axis center of the polar rotation.
■ Y0 -Defines the Y0 position as the Y-axis center of the polar rotation.
■ A45 -Defines the index angle as 45 degrees.
■ D90 -Defines the rotations to occur after the initial rotation to the index
angle as degrees.
■ L4 -Tells the MCU that four polar rotations will be performed.
N080
■ P180 M98-Instructs the MCU to jump to subroutine. Slot #1 is milled.
N090
■ G61 -Initiates the second polar rotation.
N100
■ P180 M98-Second jump to subroutine. Slot #2 is milled.
N110
■ G61 -Initiates the third polar rotation.
N120
■ P180 M98-Third jump to subroutine. Slot #3 is milled.
N130
■ G61 -Initiates the fourth polar rotation.
N140
■ P180 M98-Jumps to subroutine to mill slot #4.
11-7
N150
■ G00 -Selects rapid traverse mode.
■ G60 -Cancels the polar rotation.
■ G49 -Cancels the tool offset.
■ Z0 -Retracts the spindle.
■ M09 -Turns off the coolant.
N160
■ X-12 Y-8-Coordinates of park position.
■ M05 -Turns off the spindle.
N170
■ M30 -Signals the end of the program.
:180
■ :180 -Identifies this as main program block 180.
■ N010 -Further identifies this as subroutine block 010.
■ Z0 -Rapids the spindle to the rapid level.
N020
■ G01 -Selects feedrate mode.
■ Z-.36-Z-axis milling depth.
N030
■ X.5 -Polar coordinate to feed the tool from one end of the slot to the other.
N040
■ G00 -Selects rapid traverse mode.
■ Z0 -Retracts spindle to rapid level (tool offset is active).
N050
■ M99 -Return to main program command.
FIG.11-6 Polar rotation program for part in Fig.11-4, word address format.
11-8
HELICAL INTERPOLATION
L = P × I
Where L is the lead of the thread, P is the pitch of the thread, and I is the
number of leads on the thread. The pitch of a thread is 1 divided by N, where N is
the number of threads per inch. For a 20 thread, the pitch is 1 divied by 20 or .050
inch. The lead for a single lead 20 thread is .050 times 1, or .050. This means that
the thread will advance .050 inch in one revolution. Note that the value of the lead
and the pitch on a signal lead thread are identical; however, the lead and pitch are
not the same thing.
A 60-degree thread milling cutter is used to mill the thread on the part in
Fig.11-7. Set up as shown in Fig.11-8.
11-9
FIG.11-8
G17-X/Y plane
G18-X/Z plane
G19-Y/Z plane
・ For the X/Y plane - G17 G02/G03 X.... Y.... I.... J.... Z.... F...
・ For the X/Z plane - G18 G02/G03 X.... Y.... I.... K.... Z.... F...
・ For the Y/Z plane - G17 G02/G03 X.... Y.... J.... K.... Z.... F...
Where: G17, G18, and G19 select the plane, G02 and G03 select the direction of
helical interpolation (G02 clockwise, G03 counterclockwise), X, Y, and Z are the arc
endpoint coordinates, I, J and K are the arc centerpoint coordinates, F sets the
Z-axis feedrate.
To mill the part in Fig.11-7, the word address program in Fig.11-9 can be used.
11-10
PROGRAM EXPLANATION (Refer Fig.11-9)
N010-N040
■ These blocks assign the tool offset and set spindle speed.
N050
■ G00 X1.6 Y0-Position the cutter to the start position.
N060
■ Z -Position Z to the starting depth.
N070
■ G01 X.9694 F7.00-Feeds the cutter into the workpiece to the minor diameter of
the thread at a feedrate of 7 inches per minute.
N080
■ G17 -Selects the XY plane for interpolation..
■ G02 -Selects clockwise interpolation.
■ X.9694 Y0 Z-.8680-The endpoint coordinates of the first arc.
■ I0 J0-The centerpoint coordinates of the arc.
N090
■ G02 -Selects clockwise interpolation.
■ X.9694 Y0 Z-.9180-The endpoint coordinates of the second arc.
■ I0 J0-The centerpoint coordinates of the arc.
N100
■ G02 -Selects clockwise interpolation.
■ X.9694 Y0 Z-.9680-The endpoint coordinates of the third arc.
■ I0 J0-The centerpoint coordinates of the arc.
N110
■ G01 X1.6-Withdraws the cutter from the part at feedrate.
N120
■ G00 G49 Z0-Cancels the tool offset, retracting the Z axis at rapid.
■ M09 -Turns off the coolant.
N130
■ X-12 Y8-Rapids to tool change position.
■ M05 -Turns off the coolant.
N140
■ M30 -Signals end of program.
11-11
SUMMARY
・ Polar rotation may be used to perform operations that otherwise would require
the use of a rotary axis or lengthy coordinate calculations.
・ Care must be taken in calculating the number of turns and the lead of a helix,
be it a thread or other type of part.
11-12
◆Appendix
A number following address G determines the meaning of the command for the
concerned block.
G codes are divided into the following two types.
Type Meaning
〔Example〕
G01 and G00 are modal G codes in group 01.
G01X ;
Z ; G01 is effective in this range.
X ;
G00Z ;
12-1
〔0-MATE〕
12-2
G code Group Function
12-3
〔0-MC〕
NOTE 1. G codes marked ▼ are initial G codes when turning power on. For G20 and
G21,the G code before turning power off remains. G00,G01,G90 or G91 can
be selected by parameter setting.
NOTE 2. G codes of group 00 are not modal. They are only effective in the block
in which they are specified.
NOTE 4. A number of G codes can be specified in the same block. When more than
one G code of the same group is specified, the G code specified fast is
effective.
NOTE 5. If any G code of group 01 is specified in a canned cycle mode, the canned
cycle is automatically cancelled and the G80 condition is entered.
However, a G code of group 01 is not affected by any of the canned cycle
G codes.
12-4
G code Group Function
12-5
G code Group Function
12-6
〔15M〕
NOTE 1. The G codes marked ▼ are initial G codes in each group. That is, these G
codes are set when the power is turned on or when the reset button is
pressed while the system parameter specifying to initialize G codes is
effective. For G22 and G23, G22 is selected when the power is turned on.
After reset, G22 or G23 (the one effective before resetting) is set. For
G00 and G01, G17 and G18, G43, G44 and G49, G94 and G95, G90 and G91, the
value selected for the initial G codes is specified by parameter NO.2401
(G01, G18, G43, G44, G95 and G90), respectively. For G20 and G21, the one
in effect before the power was cut or the reset button was pressed is
selected.
NOTE 2. G codes of group 00 are not modal. They are effective only in the block in
which they are specified.
NOTE 3. An alarm occurs when a G code not listed in the following table is
specified or when an optional G code not defined in the controller is
specified(PS010).
NOTE 4. A number of G codes can be specified in a block even if they do not belong
to the same group. When a number of G codes of the same group are specified,
the G code specified last is effective.
G04 Dwell
00
G05.1 Multi buffer
12-7
G CODE GROUP FUNCTION
12-8
G CODE GROUP FUNCTION
12-9
G CODE GROUP FUNCTION
12-10
G CODE GROUP FUNCTION
G73 Peck drilling cycle
13
▼G97 Constant surface speed control cancel
▼G98 Canned cycle initial level return
10
G99 Canned cycle R point level return
12-11
MISCELLANEOUS (M) FUNCTIONS USED
IN MILLING AND TURNING
M00-Program stop.
M01-Optional stop.
M02-End of program.
M03-Spindle start clockwise.
M04-Spindle start counterclockwise.
M05-Spindle stop.
M06-Tool change.
M07-Coolant No.2 ON.
M08-Coolant No.1 ON.
M09-Coolant off.
M10-Add axis clamp.
M11-Add axis unclamp.
M17-External system on.
M18-External system off.
M19-Spindle orient and stop.
M20-Additional N function M20.
M21-Additional M function M21.
M22-Additional N function M22.
M23-Additional M function M23.
M28-Chip conveyor ON.
M29-Chip conveyor OFF.
M30-End of program, memory reset.
M48-Override cancel OFF.
M49-Override cancel ON.
M50-Coolant No.3 ON.
M51-Oil mist ON.
M52-Air mist ON.
M57-Mirror image X axis.
M58-Mirror image Y axis.
M59-Mirror image OFF.
M70-Tool skip.
M98-Jump to subroutine.
M99-Return from subroutine.
12-12
APPENDIX 2
SAFETY RULES FOR NUMERICAL CONTROL
12-13
SAFETY RULES FOR PROGRAMMERS
12-14
APPENDIX 3
USEFUL MACHINING FORMULAS AND DATA
MACHINING FORMULAS
RPM = CS 4
D
Where: CS is the material cutting speed in surface feet per minute, D is the diameter
of the part or cutter revolving in the spindle, and RPM is the spindle speed
in revolutions per minute.
To determani feedrates:
1. Milling feedrates:
FEED = RPM × T × N
Where: T is the chip load per tooth and N is the number of teeth on the cutter.
LEAD = P × I
Where: P is the pitch of a thread and I is the number of leads on the thread:
PITCH = 1/N
MD - 1.08254 %
N
12-15
To determine length of a drill point:
DEPTH = A - (B × C)
Where: A is the diameter of coutersink desired, B is the diameter of the hole, and C
is a constant as follows:
AREA = PI × RADIUS2
1 1
AREA = C × D
2 2
SURFACE = DIAMETER2 × PI
12-16
CUTTING SPEED DATA
The following rates are averages for high-speed steel cutters. For carbide
cutters, double the cutting speed value.
Tool steel 50
Cast iron 60
Tool steel 50
Cast iron 60
Tool steel 40
Cast iron 50
Mild steel 80
12-17
FEEDRATE DATA
> 1.000 .025
12-18
CUTTER CENTERLINE FORMULAS
FIG.1
12-19
FIG.3 Line not parallel to a machine axis tangent to a circle.
12-20
FIG.5 Intersection of a circle and a line parallel to a machine axis.
12-21
12-22
◆GLOSSARY
GLOSSARY
The majority of this glossary is from Luggen, Fundamentals of Numerical Control, copyright 19
84 by Dalmer Publishers Inc. Reprinted with permission.
──────────────────────────────────────────
TERM AND DEFINITION EXAMPLE
──────────────────────────────────────────
A AXIS
The axis of circular motion of a machine tool member
or slide about the X axis. (Usually called alpha.)
──────────────────────────────────────────
ABSOLUTE ACCURACY
Accuracy as measured from a reference which must be specified.
──────────────────────────────────────────
ABSOLUTE READOUT
A display of the true slide position as derived from the position commands within
the control system.
──────────────────────────────────────────
ABSOLUTE SYSTEM
A numerical control system in which all positional
dimensions, both input and feedback, are given
with respect to a common datum point. The
alternative is the incremental system.
13-1
──────────────────────────────────────────
ACCURACY
1. Measured by the difference between the actual
position of the machine slide and the position
demanded.
2. Conformity of an indicated value to a true
value, i.e., an actual or an accepted standard
value. The accuracy of a control system is
expressed as the daviation (the difference
between the ultimately controlled variable and
its ideal value), usually in the steady state
or at sampled instants.
──────────────────────────────────────────
AD-APT
An Air Force adaptation of APT program language
with limited vocabulary. It can be used on some
small to medium sizes of U.S. computers for NC
programming.
──────────────────────────────────────────
ADAPTIVE CONTROL
A technique which automatically adjusts feeds
and/or speeds to an optimum by sending cutting
conditions and acting upon them.
──────────────────────────────────────────
ADDRESS
1. A symbol indicating the significance of the
information immediately following.
2. A means of identifying information or a
location in a control system.
3. Anumber which identifies one location in memory.
──────────────────────────────────────────
ALPHANUMERIC CODING
A system in which the characters are letters A
through Z and numerals 0 through 9.
──────────────────────────────────────────
ANALOG
1. Applies to a system which uses electrical voltage magnitudes or ratios to
represent physical axis positions.
2. Pertains to information which can have continuously variable values.
──────────────────────────────────────────
ANALYST
A person skilled in the definition and development of techniques to solve problems.
13-2
──────────────────────────────────────────
APT
(Automatic Programmed Tool) A universal computer-
assisted program system for multiaxis contouring
programming. APT III provides for five axes of
machine tool motion.
──────────────────────────────────────────
ARC CLOCKWISE
An arc generated by the coordinated motion of
two axes, in which curvature of the tool path
with respect to the workpiece is clockwise,
when viewing the plane of motion from the
positive direction of the perpendicular axis.
──────────────────────────────────────────
ARC COUNTERCLOCKWISE
An arc generated by the coordinated motion of
two axes, in which curvature of the tool path
with respect to the workpiece is counterclockwise,
when viewing the plane of motion from the positive
direction of the perpendicular axis.
──────────────────────────────────────────
ASCII
(American Standard Code for Information Interchange) A date transmission code which
has been established as an American standard by the American Standards Association.
It is a code in which seven bits are used to represent each character. Formerly USASCII.
──────────────────────────────────────────
AUTO-MAP
An abbreviation for AUTOmatic MAchining Programming. A computer-aided programming
language which is a subset of APT. It is used for simple contouring and straight
line programming.
──────────────────────────────────────────
AUTOMATION
1. The implementation of processes by automatic means.
2. The investigation, design, development, and application of methods to render
processes automatic, self-moving, or self-controlling.
──────────────────────────────────────────
AUTOSPOT
(Automatic System for Positioning of Tools) A computer-assigned program for NC
positioning and straight-cut systems, developed in the U.S. by the IBM Space
Guidance Center. It is maintained and taught by IBM.
──────────────────────────────────────────
AUXILIARY FUNCTION
A programmable function of a machine other than
the control of the coordinate movements or cutter.
13-3
──────────────────────────────────────────
AXIS
A principal direction along which the relative movements of the tool or workpiece
occur. There are usually three linear axes, mutually at right angles, designated as
X, Y, and Z.
──────────────────────────────────────────
AXIS INHIBIT
A feature of an NC unit which enables the operator to withhold command information
from a machine tool slide.
──────────────────────────────────────────
AXIS INTERCHANGE
The capability of inputting the informationconcerning one axis into the storage of
another axis.
──────────────────────────────────────────
AXIS INVERSION
The reversal of plus and minus values along an
axis. This allows the machining of a left-handed
part from right-handed programming or vice versa.
──────────────────────────────────────────
B (BETA) AXIS
The axis of circular motion of a machine tool
member or slide absolute the Y axis.
──────────────────────────────────────────
BACKLASH
A relative movement between interacting mechanical parts as a result of looseness.
──────────────────────────────────────────
BCD
(Binary-coded decimal) A system of number
representation in which each decimal digit is
represented by a group of binary digits forming
a character.
13-4
──────────────────────────────────────────
BINARY CODE
Based on binary numbers, which are expressed as
either 1 or 0, true or false, on or off.
──────────────────────────────────────────
BIT
(Binary digit) 1. Binary digit having only two possible states.
2. single character of a language using exactly two distinct kinds of characters.
3. A magnetized spot on any storage device.
──────────────────────────────────────────
BLOCK
A word, or group of words, considered as a unit.
A block is separated from other units by an end of
block character. On punched tape, a block of date
provides sufficient information for an operation.
──────────────────────────────────────────
BLOCK DELETE
Permits selected blocks of tape to be ignored by
the control system, at the operator's discretion
with permission of the programmer.
13-5
──────────────────────────────────────────
BUFFER STORAGE
A place for storing information in a control system or computer for planned use.
Information from the buffer storage section of a control system can be transferred
almost instantly to active storage (that portion of the control system commanding
the operation at the particular time). Buffer storage allows a control system to
act immediately on stored information rather than wait for the information to be
read into the machine from the tape reader.
──────────────────────────────────────────
BUG
1. A mistake or malfunction. 2. An integrated circuit (slang).
──────────────────────────────────────────
BYTE
A sequence of adjacent binary digits usually
operated on as a unit and shorter than a
computer word.
──────────────────────────────────────────
CAD
Computer-aided design.
──────────────────────────────────────────
CAM
(Computer Aided manufacturing) The use of computers to assist in phases of
manufacturing.
──────────────────────────────────────────
CAM-I
(Computer Aided Manufacturing International) The outgrowth and replacement
organization of the APT Long Range Program.
──────────────────────────────────────────
CANCEL
A command which will discontinue any canned cycles or sequence commands.
──────────────────────────────────────────
CANNED CYCLE
A preset sequence of events initiated by a single command. For example, code G84
will perform tap cycle by NC.
──────────────────────────────────────────
CARTESIAN COORDINATES
A means whereby the position of a point can be
defined with reference to a set of axes at right
angles to each other.
13-6
──────────────────────────────────────────
C AXIS
Normally the axis of circular motion of a machine
tool member or slide about the Z axis.
──────────────────────────────────────────
CHAD
Pieces of material removed in card or tape operations.
──────────────────────────────────────────
CHANNELS
Paths parallel to the edge of the tape along which
information may be stored by the presence or
absence of holes or magnetized areas. This term
is also known as level or track. The EIA standard
one-inch-wide tape has eight channels.
──────────────────────────────────────────
CHARACTERS
A general term for all symbols, such as alphabetic
letters, numerals, and punctuation marks. It is
also the coded representation of such symbols.
──────────────────────────────────────────
CHIP
A single piece of silicon cut from a slice by scribing and breaking. It can contain
one or more circuits but is packaged as a unit.
──────────────────────────────────────────
CIRCULAR INTERPOLATION
1. Capability of generating up to 360 degrees of
arc using only one block of information as defined
by EIA.
2. A mode of contouring control which uses the
information contained in a single block to produce
an arc of a circle.
13-7
──────────────────────────────────────────
CLOSED-LOOP SYSTEM
A system in which the output, or some result of
the output, is measured and fed back for
comparison with the input. In an NC system, the
output is the position of the table or head; the
input is the tape information which ordinarily
differs from the output. This difference is
measured and results in a machine movement to
reduce and eliminate the variance.
──────────────────────────────────────────
CNC
Computer numerical control
──────────────────────────────────────────
CODE
A system describing the formation of characters on a tape for representing
information, in a language that can be understood and handled by the control system.
──────────────────────────────────────────
COMMAND
A signal, or series of signals, initiating one step in the execution of a program.
──────────────────────────────────────────
COMMAND READOUT
A display of the slide position as commanded from the control system.
──────────────────────────────────────────
COMPUTER NUMERICAL CONTROL
A numerical control system utilizing an onboard computer as an MCU.
──────────────────────────────────────────
CONSTANT CUTTING SPEED
The condition achieved by varying the speed of
rotation of the workpiece relative to the tool,
inversely proportional to the distance of the
tool from the center of rotation.
──────────────────────────────────────────
CONTINUOUS-PATH OPERATION
An operation in which rate and direction of
realative movement of machine members is under
continuous numerical control. There is no pause
for data reading.
──────────────────────────────────────────
CONTOURING CONTROL SYSTEM
An NC system for controlling a machine (e.g.,
milling, drafting) in a path resulting from the
coordinated, simultaneous motion of two or more
axes.
13-8
──────────────────────────────────────────
CPU
Central processing unit of a computer. The memory or logic of a computer that
includes overall circuits, processing, and execution of instructions.
──────────────────────────────────────────
CRT
(Cathode Ray Tube) A device that represents data (alphanumeric or graphic) form by
means of a controlled electron beam directed against a fluorescent coating in the
tube.
──────────────────────────────────────────
CUTTER DIAMETER COMPENSATION
A system in which the programmed path may be
altered to allow for the difference between actual
and programmed cutter diameters.
──────────────────────────────────────────
CUTTER OFFSET
The distance from the part surface to the axial
center of a cutter.
──────────────────────────────────────────
CUTTER PATH
The path defined by the center of a cutter.
──────────────────────────────────────────
CYCLE
1. A sequence of operations that is repeated regularly.
2. The time it takes for one such sequence to occur.
──────────────────────────────────────────
DATA
A representation of information in the form of words, symbols, numbers, letters,
characters, digits etc.
──────────────────────────────────────────
DATUM DIMENSIONING
A system of dimensioning based on a common starting
point.
13-9
DEBUG
1. To detect, locate, and remove mistakes from a program.
2. Troubleshoot.
──────────────────────────────────────────
DECIMAL CODE
A code in which each allowable position has one of ten possible states. (The
conventional decimal number system is a decimal code.)
──────────────────────────────────────────
DELETE CHARACTER
A character used primarily to obliterate any
erroneous or unwanted characters on punched tape.
The delete character consists of perforations in
all punching positions.
──────────────────────────────────────────
DELTA DIMENSIONING
A system used defining part dimensions on a part
drawing in which each dimension is referenced from
the preceding one. Also known as incremental
dimensioning in some shops.
──────────────────────────────────────────
DIAGNOSTIC TEST
The running of a machine program or routine to discover a failure or potential
failure of a machine element and to determine its location.
──────────────────────────────────────────
DIGIT
A character in any numbering system.
──────────────────────────────────────────
DIGITAL
1. Refers to discrete states of a signal (on or off). A combination of these makes
up a specific value.
2. Relating to data in the form digits.
──────────────────────────────────────────
DISPLAY
A visual representation of data.
──────────────────────────────────────────
DOCUMENTATION
Manuals and other printed materials (tables, magnetic tape, listing, diagrams) which provide informat
ion for use and maintenance of a manufactured product, both
hardware and software.
──────────────────────────────────────────
DWELL
A timed or untimed delay in a program's execution. A timed dwell will resume the
program after the programmed duration. An untimed dwell requires operation
intervention to continue the program.
─────────────────────────────────────────
EDIT
To modify the form of data.
13-10
──────────────────────────────────────────
EIA STANDARD CODE
A standard code for positioning, straight-cut, and contouring control systems
proposed by the U.S.EIA in their Standard RS-244. Eight-track paper (one-inch wide) has been
accepted by the American Standards Association as an American standard for numerical control.
──────────────────────────────────────────
END OF BLOCK CHARACTER
1.A character indicating the end of a block of the
tape information. Used to stop the tape reader after
a block has been read.
2. The typewriter function of the carriage return
when preparing machine control types.
──────────────────────────────────────────
END OF PROGRAM
A miscellaneous function (M02) indicating the completion of a workpiece. Stops spindle, coolant,
and feed after completion of all commands in the block. Used to reset control and/or machine.
──────────────────────────────────────────
END OF TAPE
A miscellaneous function (M30) which stops spindle, coolant and feed after completion
all commands in the block. Used to reset control and/or machine.
──────────────────────────────────────────
END POINT
The extremities of a span.
──────────────────────────────────────────
ERROR SIGNAL
Indication of a difference between the output and input signals in a servo system.
──────────────────────────────────────────
EXECUTIVE PROGRAM
A series of programming instructions enabling a dedicated minicomputer to produce
specific output control. For example, it is the executive program in a CNC unit that
enables the control to think like a lathe or machining center.
──────────────────────────────────────────
FEED
The programmed or manually established rate of movement of the cutting tool into the
workpiece for the required machining operation.
──────────────────────────────────────────
FEEDBACK
The transmission of a signal from a late to an earlier stage in a system. In a
closed-loop NC system, a signal of the machine slide position is fed back and
compared with the input signal, which specifies the demanded position. These two
signals are compared and generate an error signal if a difference exists.
──────────────────────────────────────────
FEED FUNCTION
The relative motion between the tool or instrument and work due to motion of the
programmed axis.
──────────────────────────────────────────
FEEDRATE (CODE WORD)
A multiple-character code containing the letter F followed by digits. It determines
the machine slide rate of feed.
──────────────────────────────────────────
FFEDRATE DIVIDER
A feature of some machine control units that gives the capability of dividing the
programmed feedrate by a selected amount as provided for in the machine control unit.
13-11
──────────────────────────────────────────
FFEDRATE MULTIPLIER
A feature of some machine control units that gives the capability of multiplying the programmed
feedrate by a selected amount as provided for in the machine control unit.
──────────────────────────────────────────
FEEDRATE OVERRIDE
A variable manual control function directing the
control system to reduce the programmed feedrate.
──────────────────────────────────────────
FIXED BLOCK FORMAT
A format in which the number and sequence of words and characters appearing in
successive blocks is constant.
──────────────────────────────────────────
FIXED CYCLE
See canned cycle.
──────────────────────────────────────────
FIXED SEQUENTIAL FORMAT
A means of identifying a word by its location in a block of information. Words must
be presented in a specific order, and all possible words preceding the last desired
word must be present in the block.
──────────────────────────────────────────
FLOATING ZERO
A characteristic of a machine control unit permitting
the zero reference point on an axis to be established
readily at any point in the travel.
──────────────────────────────────────────
FORMAT (TAPE)
The general order in which information appears on the input media, such as the
location of holes on a punched tape or the magnetized areas on a magnetic tape.
──────────────────────────────────────────
FULL RANGE FLOATING ZERO
A characteristic of a numerical machine tool
control permitting the zero point on an axis to
be shifted readily over a specified range. The
control retains information on the location of
permanent zero.
13-12
──────────────────────────────────────────
GAGE HEIGHT
A predetermined partial retraction point along the
Z axis to which the cutter retreats from time to
time to allow safe XY table travel. Also called
the reference or rapid level.
──────────────────────────────────────────
G CODE
A word addressed by the letter G and followed by
a numerical code defining preparatory functions
or cycle types in a numerical control system.
──────────────────────────────────────────
GENERAL PROCESSOR
1.A computer program for converting geometric input data into cutter path data
required by an NC machine. 2.A fixed software program designed for a specific
logical manipulation of data.
──────────────────────────────────────────
HARD COPY
A readable form of data output on paper.
──────────────────────────────────────────
HARDWARE
The component parts used to build a computer or a control system, e.g. integrated
circuits, diodes, transistors.
──────────────────────────────────────────
HARD-WIRED
Having logic circuits interconnected on a backplane to give a fixed pattern of events.
──────────────────────────────────────────
HIGH-SPEED READER
A reading device which can be connected to a computer or control so as to operate on
line without seriously holding up the computer or control.
13-13
──────────────────────────────────────────
INCREMENTAL SYSTEM
A control system in which each coordinate or
positional dimension, both input and feedback,
is taken from the past position rather than from
a common datum point, as in the absolute system.
──────────────────────────────────────────
INDEX TABLE
A multiple-character code containing the letter
B followed by digits. This code determines the
position of the rotary index table in degrees.
──────────────────────────────────────────
INHIBIT
To prevent an action or acceptance of data by applying an appropriate signal to the
appropriate input.
──────────────────────────────────────────
INITIAL LEVEL
The position of the spindle at the beginning of a
canned cycle operation.
──────────────────────────────────────────
INPUT
Transfer external information into the control system.
──────────────────────────────────────────
INPUT MEDIA
1. The form of input such as punched cards and tape or magnetic tape.
2. The device used to input information.
──────────────────────────────────────────
INTERCHANGEABLE VARIABLE BLOCK FORMAT
A programming arrangement consisting of a
combination of the word address and tab
sequential formats to provide greater
compatibility in programming. Words are
interchangeable within the block. Length of
block varies since words may be omitted.
──────────────────────────────────────────
INTERCHANGE STATION
The position where a tool of an automatic tool changing machine awaits automatic
transfer to either the spindle or the appropriate coded drum station.
13-14
──────────────────────────────────────────
INTERMEDIATE TRANSFER ARM
The mechanical device in automatic tool changing that grips and removes a programmed
tool from the coded drum station and places it into the interchange station, where
it awaits transfer to the machine spindle. This device then automatically grips and
removes the used tool from the interchange station and returns it to the appropriate
coded drum station.
──────────────────────────────────────────
INTERPOLATION
1. The insertion of intermediate information based on an assumed order or computation.2. A functio
n of a control whereby data points are generated between given coordinatepositions.
──────────────────────────────────────────
INTERPOLATOR
A device which is part of a numerical control system and performs interpolation.
──────────────────────────────────────────
ISO
International Organization for Standardization.
──────────────────────────────────────────
JOG
A control function which momentarily operates a drive to the machine.
──────────────────────────────────────────
LEADING ZEROES
Redundant zeroes to the left of a number.
──────────────────────────────────────────
LEADING ZERO SUPPRESSION
See zero suppression.
──────────────────────────────────────────
LETTER ADDRESS
The method by which information is directed to
different parts of the system. All information
must be preceded by its proper letter address,
e.g.,X, Y, Z, M.
──────────────────────────────────────────
LINEAR INTERPOLATION
A function of a control whereby data points are
generated between given coordinate positions to
allow simultaneous movement of two or more axes
of motion in a linear (straight) path.
──────────────────────────────────────────
LOOP TAPE
A short piece of tape, with joined ends, which contains a complete program or
operation.
13-15
──────────────────────────────────────────
MACHINING CENTER
Machine tools, usually numerically controlled, capable of automatically drilling,
reaming, tapping, milling, and boring multiple faces of a part. Equipped with a
system for automatically changing cutting tools.
──────────────────────────────────────────
MACRO
A group of instructions which can be stored and
recalled as a group to solve a recurring problem.
──────────────────────────────────────────
MAGIC-THREE CODING
A feedrate code that uses three digits of data in
the F word. The first digit defines the power of
ten multiplier. It determines the positioning of
the floating decimal point. The last two digits
are the most significant digits of the desired
feedrate.
──────────────────────────────────────────
MAGNETIC TAPE
A tape made of plastic and coated with magnetic material. It stores information by
selective polarization of portions of the surface.
──────────────────────────────────────────
MANUAL DATA INPUT
A mode or control that enables an operator to insert data into the control system.
The data are identical to information that could be inserted by tape.
──────────────────────────────────────────
MANUAL PART PROGRAMMING
The preparation of a manuscript in machine control
language and format to define a sequence of
commands for use on an NC machine.
──────────────────────────────────────────
MANUSCRIPT
A written or printed copy, in symbolic form, containing the same data as that punched
on cards or tape or retained in a memory unit.
13-16
──────────────────────────────────────────
MEMORY
An organized collection of storage elements,
e.g., disc, drum, ferrite cores into which a unit
of information consisting of a binary digit can
be stored and from which it can later be retrieved.
──────────────────────────────────────────
MIRROR IMAGE
See axis inversion.
──────────────────────────────────────────
MODAL
Information that is retained by the system until new information is obtained and replaces it.
──────────────────────────────────────────
MODULE
An interchangeable plug-in item containing components.
──────────────────────────────────────────
NC (Numerical control)
The technique of controlling a machine or process by using command instructions in
coded numerical form.
──────────────────────────────────────────
NULL
1. Pertaining to no deflection from a center or end position.
2. Pertaining to a balanced or zero output from a device.
──────────────────────────────────────────
NUMERICAL CONTROL SYSTEM
A system in which programmed numerical values are directly inserted, stored on some
form of input medium, and automatically read and decoded to cause a corresponding
movement in a machine or process.
──────────────────────────────────────────
OFFLINE PROGRAMMING
The development of an NC part program away from the machine console to be transferred
to the MCU at a later time.
──────────────────────────────────────────
OFFSET
A displacement in the axial direction of the tool which is the difference between the
actual tool length and the programmed tool length.
──────────────────────────────────────────
OPEN-LOOP SYSTEM
A control system that has no means of comparing
the output with the input for control purposes.
No feedback.
──────────────────────────────────────────
OPTIMIZE
To rearrange the instructions or data in storage so that a minimum number of
transfers are required in the running of a program. To obtain maximum accuracy and
minimum part production time by manipulation of the program.
──────────────────────────────────────────
OPTIONAL STOP
A miscellaneous function (M01) command similar to Program Stop except the control
ignores the command unless the operator has previously pushed a button to validate
the command.
13-17
──────────────────────────────────────────
OVERSHOOT
A term applied when the motion exceeds the target
value. The amount of overshoot depends on the
feedrate, the acceleration of the slide unit, or
the angular change in direction.
──────────────────────────────────────────
PARABOLA
A plane curve generated by a point moving so that its distance from a fixed second
point is equal to its distance from a fixed line.
──────────────────────────────────────────
PARABOLIC INTERPOLATION
Control of cutter path by interpolation between three fixed points by assuming the
intermediate points on a parabola.
──────────────────────────────────────────
PARITY CHECK
1. A hole punched in one of the tape channels
whenever total number of holes is even, to obtain
an odd number, or vice versa depending on whether
the check is even or odd.
2. A check that tests whether the number of ones
(or zeroes) in any array of binary digits is odd
or even.
──────────────────────────────────────────
PART PROGRAM
A specific and complete set of data and instructions written in source languages for
computer processing or in machine language for manual programming to manufacture a
part on an NC machine.
──────────────────────────────────────────
PART PROGRAMMER
A person who prepares the planned sequence of events for the operation of a
numerically controlled machine tool.
──────────────────────────────────────────
PERFORATED TAPE
A tape on which a pattern of holes or cuts is used to represent data.
──────────────────────────────────────────
PLOTTER
A device which will draw a plot or trace from coded NC data input.
13-18
──────────────────────────────────────────
POINT-TO-POINT CONTROL SYSTEM
A numerical control system in which controlled
motion is required only to reach a given end point,
with no path control during the transition from one
end point to the next.
──────────────────────────────────────────
POSITIONING/CONTOURING
A type of numerical control system that has the capability of contouring, without
buffer storage, in two axes and positioning in a third axis for such operations as
drilling, tapping, and boring.
──────────────────────────────────────────
POSITIONING SYSTEM
See point-to-point control system.
──────────────────────────────────────────
POSITION READOUT
A display of absolute slide position as derived from a position feedback device
(transducer) normally attached to the lead screw of the machine. See command readout.
──────────────────────────────────────────
POSTPROCESSOR
The part of the software which converts the cutter path coordinate data into a form
which the machine control can interpret correctly. The cutter path coordinate data
are obtained from the general processor and all other programming instructions and
specifications for the particular machine and control.
──────────────────────────────────────────
PEPARATORY FUNCTION
An NC command on the input tape changing the mode
of operation of the control. (Generally noted at
the beginning of a block by the letter G plus two
digits.)
──────────────────────────────────────────
PROGRAM
A sequence of steps to be executed by a control or a computer to perform a given
function.
──────────────────────────────────────────
PROGRAMMED DWELL
The capability of commanding delays in program execution for a programmable length of
time.
──────────────────────────────────────────
PROGRAMMER (PART PROGRAMMER)
A person who prepares the planned sequence of
events for the operation of a numerically
controlled machine tool. The programmer's principal
tool is the manuscript on which the instructions
are recorded.
13-19
──────────────────────────────────────────
PROGRAM STOP
A miscellaneous function (M00) command to stop the spindle, coolant, and feed after
completion of the dimensional move commanded in the block. To continue with the
remainder of the program, the operator must push a button.
──────────────────────────────────────────
QUADRANT
Any of the four parts into which a plane is divided
by rectangular coordinate axes in that plane.
──────────────────────────────────────────
RANDOM
Not necessarily in a logical order of arrangement according to usage, but having the
ability to select from any location and in any order from the storage system.
──────────────────────────────────────────
RAPID
Positioning the cutter and workpiece into close proximity with one another at a high
rate of travel speed, usually 150 to 400 inches per minute (IPM) before the cut is
started.
──────────────────────────────────────────
READER
A pneumatic, photoelectric, or mechanical device used to sense bits of information on
punched cards, punched tape, or magnetic tape.
──────────────────────────────────────────
REGISTER
An internal array of hardware binary circuits for temporary storage of information.
──────────────────────────────────────────
REPEATABILITY
Closeness of, or agreement in, repeated measurements of the same characteristics by
the same method, using the same conditions.
──────────────────────────────────────────
RESET
To return a register or storage location to zero or to a specified initial condition.
──────────────────────────────────────────
ROW (TAPE)
A path perpendicular to the edge of the tape along
which information may be stored by the presence or
absence of holes or magnetized areas. A character
would be represented by a combination of holes.
──────────────────────────────────────────
SEQUENCE NUMBER (CODE WORD)
A series of numerals programmed on a tape or card
and sometimes displayed as a readout; normally
used as a data location reference or for card
sequencing.
13-20
──────────────────────────────────────────
SEQUENCE READOUT
A display of the number of the block of tape being read by the tape reader.
──────────────────────────────────────────
SEQUENTAL
Arranged in some predetermined logical order.
──────────────────────────────────────────
SINGNIFICANT DIGIT
A digit that must be kept to preserve a specific
accuracy or precision.
──────────────────────────────────────────
SLOW-DOWN SPAN
A span of information having the necessary length
to allow the machine to decelerate from the
initial feedrate to the maximum allowable
cornering feedrate that maintains the specified
tolerance.
──────────────────────────────────────────
SOFTWARE
Intructional literature and computer programs used
to aid in part programming, operating, and
maintaining the machining center.
──────────────────────────────────────────
SPAN
A certain distance or section of a program
designated by two end points for linear
interpolation; a beginning point, a center
point, and an ending point for circular
interpolation; and two end points and a
diameter point for parabolic interpolation.
──────────────────────────────────────────
SPINDLE SPEED (CODE WORD)
A multiple-character code containing the letter S followed by digits. This code
determines the RPM of the cutting spindle of the machine.
──────────────────────────────────────────
STORAGE
A device into which information can be introduced, held, and then extracted at a later time.
──────────────────────────────────────────
STORAGE MEDIA
A device onto which information can be transferred and retained for later use.
Storage media may also be used as input media, thereby serving a dual purpose.
13-21
──────────────────────────────────────────
TAB
A nonprinting spacing action on tape preparation
equipment. A tab code is used to separate words
or groups of characters in the tab sequential
format. The spacing action sets typewritten
information on a manuscript into tabular form.
──────────────────────────────────────────
TAB SEQUENTIAL FORMAT
Means of identifying a word by the number of tab
characters preceding the word in a block. The
first characters of each word is a tab character.
Words must be presented in a specific order, but
all characters in a word, except the tab character,
may be omitted when the command represented by
that word is not desired.
──────────────────────────────────────────
TAPE
A magnetic or perforated paper medium for storing information.
──────────────────────────────────────────
TAPE LAGGER The trailing end portion of a tape.
TAPE LEADER The front or lead portion of a tape.
──────────────────────────────────────────
TOOL FUNCTION
A tape command identifying a tool and calling for
its selection. The address is normally a T word.
──────────────────────────────────────────
TOOL LENGTH COMPENSATION A manual input, by means of selector switches, to eliminate
the need for preset tooling; allows the programmer to program all tools as if they
are of equal length.
──────────────────────────────────────────
TOOL OFFSET
1. A correction for tool position parallel to a
controlled axis.
2. The ability to reset tool position manually to
compensate for tool wear, finish cuts, and tool
exchange.
──────────────────────────────────────────
TRAILING ZERO SUPPRESSION
See zero suppression.
13-22
──────────────────────────────────────────────────────
TURNKEY SYSTEM
A term applied to an agreement whereby a supplier will install an NC or computer system so that
he has total responsibility for building, installing, and testing the
system.
──────────────────────────────────────────────────────
US ASCII
United States of America Standard Code for Information Interchange. See ASCII.
──────────────────────────────────────────────────────
VARIABLE BLOCK FORMAT (TAPE) Some as word address. Avartiable block means
the length of the blocks can vary depending on what
A format which allows the quantity of words in information needs to be conveyed in a given block.
successive blocks to vary. See block
──────────────────────────────────────────────────────
VECTOR
A quantity that has magnitude, direction, and sense; is represented by a
directed line segment whose length represents the magnitude and whose orientatio in
space represents the direction.
──────────────────────────────────────────────────────
VECTOR FEEDRATE
The feedrate at which a cutter or tool moves with respect to the work surface. The individual slide
s may move slower or faster than the programmed
rate, but the resultant movement is equal to the programmed rate.
──────────────────────────────────────────────────────
WORD
An ordered set of characters which is the normal
unit in which information may be stored,
transmitted, or operated upon.
──────────────────────────────────────────────────────
WORD ADDRESS FORMAT
The specific arrangement of addressing each word
in a block of information by one or more
alphabetical characters which identify the
meaning of the word.
──────────────────────────────────────────────────────
WORD LENGTH
The number of bits or characters in a word. See word
──────────────────────────────────────────────────────
X AXIS
Axis of motion that is always horizontal and parallel to the workholding surface.
──────────────────────────────────────────────────────
Y AXIS
Axis of motion that is perpendicular to both the X and Z axes.
──────────────────────────────────────────────────────
Z AXIS
Axis of motion that is always parallel to the principal spindle of the machine.
──────────────────────────────────────────────────────
ZERO OFFSET See full
A characteristic of a numerical machine tool r
control permitting zero point on an axis to be
shifted readily over a specified range. The
control retains information on the location of
the permanent zero.
13-23
──────────────────────────────────────────
ZERO SHIFT A characteristic of a numerical
machine tool control permitting the zero See floating zero. Consult 4 for additionl
point on an axis to be shifted readily over a x201. detailes
specified range. (The control does not retain
information on the location of the permanent zero.)
──────────────────────────────────────────
ZERO SUPPRESSION
Leading zero suppression: the elimination of Leading zero suppression
insignificant leading zeroes to X + 0043500
the left of significant digits usually before Insignification digit
printing. Trailing zero suppression: the
elimination of insignificant trailing zeroes Could be written as:
to the right of significant digits usually X + 43500
before printing.
Trailing zero suppression
X + 0043500
Insignification digit
13-24