0 ratings0% found this document useful (0 votes) 483 views48 pagesChapter-13 (CNC Programming)
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content,
claim it here.
Available Formats
Download as PDF or read online on Scribd
mir Arndt
CAD | f i] li] Second Edition
PS MUM) ltr ClayAa
CNC Programming
Objectives
CNC part program is a detailed list of instructions that need to be executed by the machine
control unit (MCU) to achieve the final component shape. The machining sequence needed
to manufacture a given part is broken down into small elements and written in a specific
format understood by the MCU. The programming language needs to be studied to develop
meaningful part programs. After completing the snidy of this chapter the reader should be
able to
© Understand the fundamentals of part programming in terms of the various steps needed
to be taken for completing a successful CNC part program
Comprehend the elements of manual part programming methods using word address
format and the ISO G-coding systems
Learn the part programming fundamentals related to the use of various word addresses.
Appreciate different preparatory (G codes) and miscellaneous functions (M codes) as
used in CNC part programs
Write and prove sample part programs for CNC machining centres in planar milling
operations using the word address format
Understand the concept of canned or fixed cycles for the hole making operations
Learn the use of cutter diameter and length compensation while using with multiple
cutting tools
{ST PART PROGRAMMING FUNDAMENTALS ST
To be a good CNC programmer, one should have a fair knowledge about the machine tools, cutting
tools and fixtures to be used and the manufacturing process. He also should have a good understand-
ing of geometry, algebra and trigonometry. In fact, machine shop experience is the prerequisite for a
00d programmer as only careful process planning can lead to efficient and practical programs.Ea Manufacturing Aspects of Industrial Products
The total steps involved in the development of a part program and its proving is shown in
Fig. 13.1. The following are some of the steps that are detailed below:
Process planning ‘© Job and tool setup planning
‘© Axes selection ‘© Machining path planning
© Tool selection ‘Part program writing ;
© Cutting process parameters planning ‘© Part program proving
——__——
Study Part Print
-
Identity Machine Too! }~
Teentify Operations
) Sapam | i -+——_r_4
Scan and Tooling
Toole
Determine Feeds,
| __ Speeds, Depts,
Power
ability
Database
Prepare Set up Sheet
-———_ wiih Work Setting and
Tooling Assembly
L
Develop Part Program
‘Simulate Too! Path
7 ae
Dry Run
er
(Cut the First Part
I
Inspect the Pat = {>} Proven Part
Bl Fig. 13.1. Steps Involved in the Development of a Proven Part Program in NC Machiningwc Programming P33]
Process plan is a detailed plan of the steps involved in manufacturing (machining) a given part. The
following are the contents of a process plan:
Machine tool used
= Fixture(s) required
* Sequence of operations
* For cach of operation
™ Cutting tools required
= Process parameters
A programmer is supposed to carry out a careful study of the part drawing to prepare the process
Plan. The choice of the machine tool used depends upon the operations required, accuracy require-
ments, machine tool capability and availability, cutting tool availability and the shop practices. A
careful choice of various options at this stage would decide on the final cost of manufacture of the
Part. A typical process plan is shown in Table 13.1 for the part to be machined as shown in Fig. 13.
13.1.1 Process Planning
Table 13.1. Process Plan for the Component Shown in Fig. 13.2
Op. No. Description Tools
10 End mill the top face, 100 » 100 mm Shell end mill, $60 mm
20 End mill the steps, 20 x 100 x $ mum Shell end mill, $60 mm
30 Mill pocket, 40 x 40 x 8 mm HSS End mill, $10 mm
40 Drill the six holes, 96 x 15 mm HSS twist drill, 96 mm
pis : By
10
+204
+
p ] :
6
10-4
on
Leope! b+-—ao—+1
opts
i
13.2 A Typical Component for NC MachiningManufacturing Aspects of Industrial Products
13.1.2 Axes Selection
All the CNC machine tvols rely on the axes system for describing the axes motion. To correctly
describe the motion, it is therefore necessary to establish the axes system to be followed with the
Particular part, The ISO designation of axes was discussed in Chapter 10. In tune with that axes
system, one has to choose the axes. However, it is also necessary for one to choose the axes system as
appropriate to the machine tool coordinate system in question.
The axes system of all the CNC machine tools would generally have a fixed datum position as
designated by the machine tool manufacture, It may be called as reference position, fixed datum or
home position. This absolute datum position of the CNC machine tool may not be very convenient for
setting the job, Hence. most of the CNC machine tools come with “Floating Datum’. In this case the
Programmer can select the part datum anywhere in the machining limits of the machine tool based on
the geometry of the part being machined
The reference axes should be chosen so that coordinates for various features can be determined
(Fig. 13.3), Here, X and Y are the reterence axes. For the sake of convenience, the orthographic views
of the component are shown,
L— ss,
‘50 —>4
> x
so—+!
-9—
T
T
L
BS] Fig. 13.3 Part for NC Machining Shown with Axes System at the Centre
The basis for choosing the axes system is more to do with the part geometry and the type of
machine tool being used. When the operator is developing the program. it becomes extremely impor:
tant to choose the right type of datum, since a careful selection climinates a large amount of calcula-
tion process. Also the part program becomes simple, being able to make use of the advanced software
facilities such as mirror imaging, etc.HC trae Ea
The first principle w be used while arriving at the datuin is that: if pansible Keep all the part in the
first quadrant OF the coordinate system, This would help in having all the courdinate values as
positive. I helps the fist thine programmer in eliminating ax many errors ax possible. Once enoughs
experience is gained, it would be possible for the programmer to carefully adjust the values, Similarly
touching the two sides of the pre-machined workpiece can easily do the setting of the tool,
‘The Zaxis datuin is kept ly to match with the top surface of the workpiece. This helps in
two ways, First all positive values of % coordinate would keep the tool away from the workpiece, #0
that the collision of tool With the work is avoided, Secondly when the tool is to be set, the tool tip can
be casily matched with the workpicce twp surface.
Sometimes the could be choxen as the geometric centre of the workpiece if all the xeometry
is symmetrical as shown in Fig. 13.3, In such a choice. the geometry calculation effort reduces to 4
minimum, Also the mirror image facility available in the controller can be effectively exploited. The
H nuinber of dimensions required to describe the component. All the other
al about the axes system chosen, For the same component choosing the left
is the datum
reader ean nolice the s
100
a
2S
Lc
+-—s0
[) Fig. 13.4 Same Part as in Fig. 13.3 but wlth Axes System at the Bottom Left Corner
13.1.3 Tool Selection
The choice of cutting tools is a very important function, since for a given operation many a tools are
feasible, but some of them would be more economical than others, Therefore, in the economy of
Manufacture, it is essential to choose the right tool for the job. As a rule, we will only select the
‘egular cutting tuls for using in CNC machine tools. No special tooling is gencrally suggested, since
‘he geometry can very well be generated by the CNC control,Eg Manufacturing Aspects of Industrial Products
As an example when a contour is being milled, the choice can be an end mill or a slot drill. End
mill is stronger and can take deeper cuts than a corresponding slot drill. However, slot drill can enter
into a solid material, but an end mill cannot in view of the fact that the cutting edge in the bottom
does not extend to the centre of the tool. As a result, an end mill should always approach the
workpiece from the side while the slot drill ean approach from the side or from the top.
Also the size of an end mill or stot drill depends on the contour to be machined. You should
choose the largest size of end mill available for better surface finish and higher material removal rate,
However, the tool radius may be limited often by the radius of curvature b generated,
For example, some times a tapered end mill or slot drill would make the machining very simple in
generating the draft surfaces of dies and moulds. Otherwise, generating a draft angle may take a large
amount of programming. Details of tooling were covered in Chapter 11
13.1.4 Cutting Process Parameters Planning
For a given tool and the operation selected, the appropriate process parameters arc to be selected.
These are to be generally taken from the handbooks supplied by the cutting tool manufacturers or
based on the shop experience. It is important in the context of CNC manufacture that the feeds and
speeds selected should be as high as possible to reduce the machining time consistent with the
product quality achieved. Details of process parameter selection were covered in Chapter 11
13.1.5 Job and Tool Setup Planning
This is basically aimed at setting the job on the machine tool and adjusting the cutting tool to the
correct position. This is important since the accuracy of the geometry generated by the CNC machine
tool is dependent on the initial position carefully defined.
13.1.6 Machining Path Planning
‘This is a very important aspect of programming wherein the knowledge of machining operations plays
a vital rule. A careful planning of the tool path cnsurcs that the requisite manufacturing specifications
are achieved at the lowest cost. With the availability of complex canned cycles with many of the
present day controllers, this aspect has been simplified for the programmer by the careful choice of
the cycles. The details of stock removal cycles are covered in Chapters 14 and 15.
13.1.7 Part Program Writing
This aspect deals with the actual writing of the part programs undertaking the furiuat and syntax
restrictions into account.
13.1.8 Part Program Proving
This is another aspect, which the programmer should very carefully undertake before the part program
is released to the shop. Once the program is made, it should be verified before it can be loaded on the
machine tool controller for the manufacture of the component. It is obvious that a faulty program can
cause damage to the tool, workpiece and the machine tool itself. Sometimes, these accidents can
prove grave tor the operator and others around. One of the preliminary ways of avoiding such
possibilities is to carry out a visual check of the program manuscript and of the displayed program 0D
the VDU of the controller.
But this is understandably not enough in itself. A trial run can be carried out with or without the
tool or workpiece to enable visualisation of movements taking place and of any collisions possible
between the tool, the workpiece and the clamping device. At this stage. it is worthwhile stressing theCNC Programming El
point that while the program js being prepared, the positions of the clamps should have been taken
into account and that they be clearly indicated in instructions to the operator. This is vital for
climinating the possibility of collisions gccurring during machining.
During trial runs, feed and speed override control should be used so that the operator works at such
values that enable him to exercise manual control comfortably and operate the emergency switch well
in time. The program is run block by block, i.e. after execution of each block, the machine waits till
the operator manually presses the switch on the machine console for execution of the next block.
With the job and tool in position, dry runs are made, ie. keeping a safe distance in between the
tool and the job; the motions can be visualised for correctness. If during these trials, any mistakes are
noticed, the program is examined and the necessary corrections made. After this, one component is
made and checked. Based on this, speeds and feeds ure modified and further corrections carried out so
that correct profiles are obtained. Sometimes only one job, which may be quite complex and precise,
needs to be made. This could even be of an expensive material. In such cases, the program is tried
first on a cheap material, say wood, Perspex etc. Only when the first uials are approved, the updated
program is permitted to be used for further production.
Today, graphical simulation packages are ayailable on CNC systems, which facilitate a graphical
‘output on the VDU screen. This output shows the workpiece and the tool, the motion of the tool and
> semoval of material as the program proceeds. Visualisation of this animation of the
the progressive 1... : m ¢
e * wert program before any actual mact is yu.
verifications are carried out at a fast speed and thus the proving v1 we nah
much loss of time. A typical example is shown in Fig. 13.5, which shows in two dimensions tne paws
taken by the cutting tool centre.
1G) Fig. 13.5 Tool Path of the Part for Proving the NC Part Program
Itis also possible that the verification can be carried out on a microcomputer screen. Through this,
"is possible to see how the tool path is programmed, A more advanced version is the programs,
Which can shaw how the material is heing removed, so that the actual geometry generated can also be
Seen in these systems, This enables a fast detection of mistakes and their correction without loss of
Production time of the CNC machine tools. Many of these systems have the capability of showing the
Clamps and other elements, which are likely to interfere with the tool movement. Also some systemsLy
Manufacturing Aspects of Industrial Products
have the capability of dynamically simulating the actual sized tool through the work material to make
the simulation more realistic. A typical example is shown in Fig. 13.6, which shows visually the
Femoval of material by the tool and consequent generation of the geometry from the blank geome
Another simple method of verifying the program is that of plotting. However, it should be under
Stood that this would give only a two dimcusiunal picture. The plotter is connected through an.
interface for obtaining the plot. The plot can be examined and compared with the component drawing
for any cur in the tool path,
ee G6, ew realy Poca San psc) Hee
Wy i
13.6 Shaded 3D Image of the Tool Cutting the Part for Providing more Realistic Proving
of the NC Part Program (Courtesy: Viral Gibbs Inc.)
13.1.9 Documentation for NC
1 would now be amply clear that documentation is the most essential aspect of the CNC manufactur:
ing practice. Therefore, it is worthwhile to list these as a checklist.
1. Component drawing
2. Process planning sheet: As discussed earlict, this should contai
operations, the machine tool used, the tools used wit
3. Tool cards: These should show each tool in assembl
numbers for each element (tool, callet, chuck etc.),
4. Setup sheet: This would show all tools required, with their identification numbers, and the
seiting instructions for the component on the machine tool table as shown in Fig. 13.7
5. Prugrauming sheets,
6. Punched paper tape, if this is the input form used,
in details of the sequence of the
ith their numbers, speeds, feeds ete.
led form with dimensions and identification‘CNC Programming
Setup Sheet
Op. Tool Description Catalogue | Insert | Comment
No. number
10 Slot drill HSS VRT-123456 6 mm dia
20 Twist drill HSS VRT-156756 12 mm dia
30 Twist drill HSS VRT-234589 3mm dia
Set up Instructions Set up Sketch
The blank to be machined to the 80 x %
80 mm size is to be mounted in a
machine vice fixed to the machining
centre table as shown. eee &
OR
Vice
(5) Fig. 13.7 Setup Sheet for a Machining Cenire Part
‘The originals of these documents are kept in the programming room records cabinet while copies
are sent to the shop floor as per the production planning. Whenever any changes are to be made, all
issued copies are recalled and destroyed. The originals are updated (or made afresh) and copies are
released accordingly.
Inthe earlier days, a number of formats for NC part programs were used such as fixed sequence or tab
sequential, These systems required giving a large number of unwanted or duplicate information in
cach block of a part program. These are now replaced by means of a system called ‘Word Address
Format’ in which each of the information or data to be input in the form of numerical digits is
Preceded by a word address in the form of an English alphabet. For example N105 means that N is theF330 | Mansoing Apes of Inds Prods
address for the numerical data 105. Thus the controller can very casily and quickly process all the
data entered in this format. A typical block of word address format may look as follows:
4 N115 G81 X120.5 ¥55.0 Z-12.0 R2.0 F150 M3
? tar ASO Standards for Coding
In the early years of development of Numerical Control standardisation has been given due impor-
(ance, As a result many of the things that we use in NC are standardised and many of the manufactur-
ers follow the standards to a great extent. One of the first thing to be standardised is the word
addresses to be used in programming. All the 26 letters of the English alphabet was standardised and
given meaning as follows:
Character Address For
Angular dimension around X axis
Angular dimension around Y axis
Angular dimension around Z axis
Angular dimension around special axis or third feed function*
Angular dimension around special axis or second feed function*
Feed function
Preparatory function
Unassigned
Distance to arc centre or thread lead parallel to X
Distance to arc centre or thread lead parallel to ¥
Distance to are centre or thread lead parallel to Z
Do not tise
es
: Miscellaneous function \
’ . Sequence number tris 2%
Reference rewind stop
‘Third rapid trayerse dimension or tertiary motion dimension parallel to X*
~ Second rapid traverse dimension or tertiary motion dimension parallel to ¥*
First rapid traverse dimension or tertiary motion dimension parallel to Z*
5 Spindle speed function
’ Tool function
Secondary mation dimension parallel to X*
& Secondary motion dimension parallel to Y*
ar; Secondary motion dimension parallel to Z*
yo: Primary X motion dimension
arom Primary Y motion dimension
e {: Primary Z motion dimension
* where D, E, P, Q, 8. U. V, and W are not used as indicated, they may be used elsewhere.
*Gl7 XY Plane selection
+ Gis XZ Plane selection
+ om YZ Plane selection
Cutter compensation group
* 4640 Cutter compensation, Cancel
* G41 Cutter radius Compensation left
tm. G42 Cutter radius Compensation right
Units group
1 *610 Inch units
. on Metric units
Hole making canned cycle group
G80 Canned Cycle Cancel
G81-G89 Canned Cycles definition and ON
Coordinate system group
+ *G90 ‘Absolute coordinate system
d GOL Incremental coordinate system
Preset
« G92 Absolute pre-set, Change the damm positiona a
The * sign indicates the generally accepted default or tum on code in operation. However, some
control manufacturers allow this to be modified to whatever suits them. The above is only a possible
indication but not in any way standardised by ISO.
In the following sections we will give a description of the way to use these G codes.
13.3.1 Coordinate System Group, G90 and G91
‘The input of dimensional information can be done either in the absolute or in the incremental system,
‘The preparatory function G90 is used for absolute programming. In absolute system, the dimensions
are given with respect to a common datum chosen by the programmer. It must be programmed and
can be cancelled by function G91 (and also when the program statement has the word M02 or M30).
In Fig. 13.8, OX and OY are the datum.
Y
5 2 35 x
BBY Fig. 13.8 Absolute (G90) and Incremental (G91) Systems
Whatever may be the route of the move, the programmed X and Y values of each position remain
the same. Suppose the route to be 0-A-B-C, then
NOO7 G90 GO1 x5.0 Y10.0 F200
NOO8 X25.0 Y15.0
NOO9 X35.0 Y5.0
This system is generally advisable for programming, as there are few chances of errors. When the
tool is in a particular quadrant, such as the first, then all the coordinate values would be positive.
Similarly with all the other quadrants of geometry. Thus it is suggested that the new programmers
should always make use of the absolute system till they become familiar with the programming
system.
The incremental type, denoted in the program by the word G91, is also available on all NC
equipments. This is generally the “Turn on mode" and can be cancelled by the word G90. The end of
the program words M02 or M30 also sels it. In the incremental system, the data is incremental to the
previous block. Unlike as with G90, the programmed data changes only if the route of the move is
altered. Referring to the same figure (Fig. 13.8), the program for route 0-A-B-C would be
NOO7 G91 G01 Xx5.0 Y10.0 F200
NOOB X20.0 Y5.0
NoO9 X10.0 Y-10.0Cx Propnnin
If the route is changed. then the program changes accordingly. Incremental programming is useful
when the features are dimensioned in a continuous chain, e.g., 5 holes, 31.250 mm apart along X axis
would simply be programmed for each feature as X31.25; while in absolute programming, one
would have to calculate the value for each position, i.e., X31.25, X62.5, X93.75, ... It is also
important while one follows the incremental programming system, to take care of the direction in
which the movement is taking place, irrespective of the quadrant in which the tool is moving.
In a program, both the systems may be followed but it should be done carefully. The incremental
system any error done in a single block carry forward and nv correction can be donc. Also the crrors
in the transmission system would result in having the errors accumulated, while that does not happen
in the case of absolute coordinate system.
13.3.2. Units Group, G70, G71
This group of codes specifies the units in which the program is to be interpreted. G70 stands for
programming in inch units while G71 stands for programming in mm units. Any one of these can be
made as turn on code depending upon the default units likely to be used. Most of the controls destined
for areas other than North America would generally have default G71. This can be easily changed
when necessary. In any case, it would be a better practice to make the habit of giving this code as the
very first code in the part program.
A given program should be written only in either inch or
mm units, but not both. Hence, only one of the two codes
should be present in one program. In Fanuc controls normally
G20 and G21 are used for the units in place of G70 and G71.
This can be changed optionally to 70 and 71 using the pro-
‘grammable functions of the control system.
13.3.3 Active Plane Solection Group, G17, G18, G19
‘Some of the functions in NC control can only work in a plane
rather than in all the 3 possible coordinate axes. This there-
fore requires the selection of active plane. This can be done
by using these codes. The typical coordinate system and the
corresponding plane labelling are shown in Fig. 13.9.
G17 __XY Plane selection
This is the default tun un code. This allows fur Ue
working to be carried out in the horizontal plane in
case of vertical axis milling machines as shown in
Fig. 13.9. In the case of 2.5 axes machines, in a
given block only X and Y coordinates are to be speci-
fied while the Z coordinates are to be specified in a
separate block. For a horizontal axis machine, the
working plane is the vertical plane perpendicular to
the spindle axis. Similar XY plane selection
for horizontal axis machining centres is shown in jag Fig, 13.10 XY Plane Selection
Fig. 13.10. for Horizontal Axis
Milling Machines
Fig. 13.9 XY Plane Selection
or Vertical Axis Mill-
ing Machines
xManufacturing Aspects of Industrial Products
GI8 XZ Plane selection
This allows the working to be carried out in XZ plane (Fig. 13.11). In the case of 2.5 axes
machines, in a given block only X and Z coordinates are to be specified while the Y
coordinates are to be specified in a separate block.
BB] Fig. 13.11 Xz Plane Selection for Hori- _|&5) Fig. 13.12 YZ Plane Selection for Hori-
zontal Axis Milling Machines zontal Axis Milling Machines
Gia YZ Plane selection
‘This allows the working to be carried out in YZ plane (Fig. 13.12). In the case of 2.5 axes
machines, in a given block only Y and Z coordinates are to be specified while the X
coordinates are to be specified in a separate block.
13.3.4 Preset, G92
As described earlier, each of the machine tool has a separate machine reference point. However, this
point is not very convenient to use as a coordinate datum for the part. Most of the NC machine tools
allow for a ‘Floating Datum’ to be fixed anywhere in the machining envelope of the machine tool. AS
a result, the programmer can choose a convenient position on the part as datum, which may be
referred to as ‘Program Zero Point’. The same will have to be communicated to the NC controller as
datum. The choice of the datum as explained earlier to suit either the setting of the component or to
simplify the coordinate calculations.
It is necessary in the beginning to make the system understand the coordinate datum position of the
part, which is different from the machine reference point. To do this, we make use uf the G92 cude.
‘The part, which was pre machined, is clamped at a suitable position on the machine table, A known
tool or a setting uraudiel of kuown diameter is kept in the machine spindle. This tool is then brought
to a known position near or on the workpiece blank, called the set point. The same is then pro-
grammed in the part program using the G92 code. For example, in Fig. 13.13, the workpiece of
dimensions 200 x 170 x 30 mm is located on machine bed with the longer edge along X-axis, The tip
of the setting tool, held in the spindle, is made to touch the point A, i.e., the setting position. At that
instant, the program block entered is
NO1S G92 X200.0 Y170.0 Z50.0
Depending upon the point being touched, the coordinate can be specified, taking the diameter of the
probe touching the workpiece. The tool tip is to be set at a distance of 50 from the top surface by
means of a suitable gage.NC Programming
Machine
Zero Point
KO
~OO
alias
Program
Zero Point
IS) Fig. 13.13. Setung the Workpiece on the Machine Table
G53 to G56 are the other codes used for setting the programmable datum positions. These would
allow for fixing a number of positions on the machine table whose coordinates can be entered into the
controller as a permanent memory, When required, their positions can be simply called by giving the
particular G code in the program. This would also be useful for machining a batch of components all
‘of which are located on the machine table each at the positions indicated by G93, G54, etc.
13.3.5 Motion Group, G00, G01, G02, G03
‘This is the most important group of codes used in part programming. G00 is the turn on code from
this list. More explanation is given below:
Rapid Positioning, GOO
This is used for moving the woul at a rapid sate (normally
the maximum available feed rate such as 8000 or 40 000
mnvmin) along the axes involved for achieving the posi-
tion programmed. It is not important for this code, the
path taken by the tool to reach the programmed point.
This is a modal (stays active till cancelled by any
other function of its family, i.e., G01, G02, G03) func-
tion and is also the ‘tum on mode’ (available as soon as,
the system is switched on or when a new program starts).
Referring to Fig. 13.14, from position A, itis required to
achieve position B.
This is typical to all machining situations when the
tool has to he bronght close to the component before any
vy
BB) Fig. 13.14 Positivning, Preparatory
Function GOOaa Manufacturing Aspects of Industrial Products
‘eutting commences. It is obvious that this movement is in the air (cutting air) and so to minimise the
idle time, it should take place at the maximum feed rate of various slides involved. For this, the
Program block would be
N105 G90 GOO X150.0 30.0
It can be noticed that the initial path is at 45 degrees because both the X and Y slides move at the
same feed rate (assuming the motors are of the same rating) till the required Y ordinate value is
achieved, after which only the X slide moves till position B is achieved. This is one way of achieving
the final position. There cuuld Le uilie: pussible methods implemented by different controllers
The rapid positioning is actually a 3D positioning, such
that positioning can be achieved simultaneously in all the
3 axes as shown in Fig. 13.15
Absolute programming A to B
N110 G90 GOO X50.0 45.0 Z 40.0
N120 X90.0 Y90.0 270.0
Incremental programming A to B
N110 G90 GOO X50.0 45.0 Z 40.0
N120 G91 X40.0 Y45.0 230.0
Incremental programming B to A
N110 G90 GOO x90.0 Y90.0 Zz 70.0
N120 G91 X-40.0 Y-45.0 2-30.0
Linear or Straight line Interpolation, GO1
This code is generally used when the material is to be cut
using a feed rate When the motion is desired along a
straight line at a given feed rate, this function is used. It [88] Fig. 13.15 Positioning, Prepara-
is modal. If a cut has to be made from D to E (Fig. 13.16) tory Function GOO in 3
at a feed rate of 250 mm per minute, then the block Dimensions
would be D
N115 GO1 X110.0 Y30.0 F250 fie le tS
In this case the controller moves all the three axes at a
rate such that the resultant velocity along the line matches
\
\
the programmed feed rate. i 100 ! WN
‘Similarly for the motion command Shown in Fig. 13.15, ' le
Absolute programming A to B ia =
N110 G90 G00 X50.0 Y45.0 2 40.0 Pale | 1
N120 GO1 X90.0 Y90.0 270.0 F350 et
Incremental programming A to B Day
N110 690 GOO Xx50.0 Y45.0 Z 40.0 BS] Fig. 13.16 Linear Interpolation,
N120 G91 GO1 X40.0 Y45.0 230.0 F350 Preparatory Function
1CNC Programming
Incremental programming B to A
NI1U GYU GU X¥U.0 Y90.0 Z 70.0
N120 G91 GO1 X-40.0 Y-45.0 Z-30.0 F350
Circular Interpolation, G02 / G03
When an arc is to be traversed in a plane, the function G02 or
G03 is used if the direction of the motion is clockwise or anti-
clockwise respectively, looking in the negative direction of the
axis perpendicular to the plane. Referring to Fig. 13.17, when
the motion is from F to G in XY plane, the program block
would be, as per ISO,
J N125 G02 X65.0 Y60.0 135.0 J-10.0 F250
But, if the motion were from G to F, then it would be
4 130 GO3 x15.0 ¥20.0 1-15.0 J-40.0 F250
Here, (X, Y) are the coordinates of the destination and
(L, J) the distances, along the reference axes of the centre of
the are from the starting point of the arc. It is essential that the Circular inerpola-
coordinates of the destination should be correct and within the tion, Preparatory
prescribed limits. In some systems, (I, J) are the coordinates of Function G02/G03
the centre of the arc.
‘Some systems carry out circular interpolation when the value of the arc radius is given, being
positive if the angle subtended by the arc at the centre is less then 180 degrees, and negative, if
otherwise. Assuming the radius and the angle subtended to be 40 mm and 100 degrees respectively,
then
4-130 G02 X65.0 Y60.0 R40.0 F250
Itis possible to draw a complete circle, which would mean
that the destination coincides with the starting point. Then
~ 310 G02 135.0 J-10.0 F250
It will be noted that the destination need not be stated,
since its coordinates are the same as that of the starting point
already entered in the previous block. One should check up
from the controller programming manual as to which proce-
dure is to be followed. It may be noted that a full circle cannot
be obtained with R-val
The circular interpolation is 2D interpolation and can only
be carried out in any plane. For example, in Fig. 13.18 is Mx
shown a typical circular slot in the XY-plane which can be [GJ Fig. 13.18 Circular Interpola-
machined using a slot drill in a vertical axis milling machine, tion in XY Plane
This will be the most common form of usage. However, some Using G17 Plane
times it may be necessary to machine circular profiles in other SelectionPlanes as well. An example is shown in Fig. 13.19 for XZ
Plane. In such cases it becomes necessary to specify the
plane to be used with G17, G8 or G19 codes.
Dwell, G04
This is to give a delay in the program. When the G04 code
is encountered, the controller stops at that particular point
for a specified time mentioned in the block. After that
time the controller continues to execute the next block in
the program. The delay time is normally weutivued iu
Manufacturing Aspects of Industrial Products
seconds using the X word address. In some controls, other
than X may also be used. For example in Fanuc controls,
P word address is used to specify the dwell time in milli-
seconds. An example is shown below: a
NO45 GO4 X3.0 This calls for a stoppage of the [&3] Fig. 13.19 Circular Interpolation
control for a period of 3 seconds. in XZ Plane using
NO45 G04 P3000 This calls for a stoppage of the GI8 Plane Selection
control for a period of 3 seconds.
No decimal point programming with P word address in Fanuc controls.
These functions actually operate some controls on the machine tool and thus affect the running of the
machine. Gencrally only onc-M cude is supposed to be given in a single block. However, some
controllers allow for two or more M codes to be given in a block, provided these are not mutually
exclusive, ¢.g., coolant ON (MO7) and OFF (M09) cannot be given in one block.
Less number of M codes have been standardised by ISO compared to G codes in view of the direct
control exercised by these on the machine tool. The ISO standard M codes are shown below:
CODE
‘M00
Vio
M02
* M03
* M04
+ MOS
M06
“M07
* M08
+ M09
M10
MUL
M12
M13
FUNCTION
Program stop, spindle and coolant off
Optional programmable stop
End of program-often interchangeable with M30
Spindle on, CW
Spindle on, CCW
Spindle stop
Tool change
Coolant supply No. 1 on
Coolant supply No. 2 on
Coolant off
Clamp
Unclamp
Unassigned
Spindle on, CW + coolant onCNC Programming
Mi4 Spindle on, CCW + coolant on
MIS Rapid traverse in + direction
M16 Rapid traverse in — direction
MIT-MI8, Unassigned
M19 Spindle stop at specified angular position
M20-M29 Unassigned
+ M30 Program stop at end tape + tape rewind
M31 Interlock by-pass
‘M32-M35 Constant cutting velocity
‘M36-M39 Unassigned
‘MA0-MAS Gear changes; otherwise unassigned
M46-M49 Unassigned
‘M50 Coolant supply No. 3 on
M51 Coolant supply No. 4 on
MS52-M54 Unassigned
MSS Linear cutter offset No. 1 shift
MS6 Linear cutter offset No, 2 shift
‘MS7-MS9 Unassigned
M60 Piece part change
MOL Linear piece part shift, location 1
M62 Linear piece part shift, location 2
M63-M67 Unassigned
M68 Clamp piece part
M69 ‘Unclamp piece part
M70 Unassigned
mq Angular piece: part shift, location 1
MI2 Angular piece part shift, location 2
M73-M77 Unassigned
MIB Clamp non-activated machine bed-ways
M719 Unclamp non-activated machine bed-ways
‘M80-M99 Unassigned
‘Some of the common miscellaneous functions ofien found in many a conuoller are:
7MO00 This would terminate the auto operation of the machine after completing the instructions in
the block in which it has been programmed. This is called ‘Program stop’ and if it is
required to continue with the rest of the program. the ‘start’ button on the console is to be
pressed. This is useful for changing the clamp position or to carry out inspection of a
particular dimension after a machining cut is taken. This being a pause function, calls for
the attention of the operator, delays the completion of the program and therefore should be
avoided as far as possible.
MO1 This is ‘Optional stop’ and stops the machine, as in the case of M00, only if the “Optional
stop” switch on the controller console is ‘ON’. This is useful when inspection is to be
carried out on some components and not all in a given hatch
M02 This is ‘End of program’ and it causes the stopping of the machine and clearing of all the
control registers. Another code 30 also does the same function.‘Manufacturing Aspects of Industrial Products
M03 the miscellaneous function for machine spindle control for clockwise rotation. This starts
the spindle tv muve in the clockwise directiu at the speed set earlier using the $ word
address. When it is given in a block would be the first code to be executed before all the
other codes in a block are acted upon.
M04 the miscellaneous function for machine spindle control for counter clockwise rotation, This
starts the spindle to move in the counter clockwise direction at the speed set earlier using
the S word address. When it is given in a block would be the first code to be executed
before all the other codes in a block are acted upon.
MOS is the miscellaneous function for stopping the machine spindle. When it is given in a block
would be the last code to be executed afier all the other codes in a block are acted upon.
M06 ~ is for tool change. '
MO7 are for ‘Coolant 1 On’
M08 are for ‘Coolant 2 On’
M09 is for ‘Coolant Off",
M13 the miscellaneous function for machine spindle control for clockwise rotation and the start-
ing of the coolant simultancously. This starts the spindle to move in the clockwise direction
at the speed set earlier using the $ word address. When it is given in a block would be the
first code to be executed before all the other codes in a block are acted upon,
M30 is similar to M02. It indicates ‘End of tape’ and ‘tape rewind’. If a paper tape is used, the
tape is rewind till the % sign is encountered. For machines working with RAM, the active
Program comes to the beginning. Many a times M02 and M30 are synonymous in operation
in modem day controllers.
PISSPROCRAM NUMBER
In many of the latest CNC systems, there is a provision for labelling the program at the start itself
which facilitates searching from stored programs. The symbol used for the program number in Fanuc
controls is “O” or “:”, followed by its number. For example, 0238 or :238. Such information does not
interfere with the NC program.
Invariably, in most of the components there are a number of repetitive features, ¢.g., pattem of
holes, profiles etc. Instead of writing blocks for each of them repeatedly in the program as per process
plan, the facility exists for writing the sub programs for each feature and entering them with labels at
the end of the main program. In the main program where these are required, they are called by an
appropriate block e.g. in Fanuc controls, MY8 PI0UL, i.e., miscellaneous function 98 is call for sub
program (also called subroutine), the number after ‘P’ referring to the sub program being called. The
sub programs are ended with the word ‘M99" in Fanuc controls
ie component to be machined is shown in Fig. 13.20. It is assumed that the pocket is through and
hence only outside is to be machined as a finish cut of the pocket. The tool to be used is a 20 mm
diameter slot drill. If an end mill is to be used the program should be modified with a hole to be
_ drilled at B first, before the end mill is used. The setting is done with point A as reférence (0, 0.0).
and the reference axes are along X and Y directions. A typical program, as per ISO (except the
' decimal point), for this would be:CNC Programming
x
Sears |
4 I 40
+
[SI Fig. 13.20. Example of a Component to be Machined
NOO1 G92 XO YO z0 absolute presetting at A.
N002 G90 absolute programming |
NOO3 GOO X25.0 25.0 22.0 TO1 $3000 MO3 tool brought rapidly at B, 2 mm above
XY plane
GO1 Z-12.0 F120 tool gocs down to full depth.
Y75.0 aa proceeds to C.
X65.0 745, proceeds towards right to D.
G02 Y25.0 10 J-25.0e “Qo 245 cuts curved profile till E.
G01 x25.0 we proceeds to B.
22.0 tool moves 2 mm above the XY plane
G00 250.0 MOS spindle stops and rapidly moves up
i Noll XO YO rapid move to start position 0.0
No12 M30 end of program and tape rewind
The graphical simulation of the above is shown in Fig. 13.21, simulating the material removal
process on the machine tool.
apie 13.2
“pe component to be machined is shown in Fig: 13.22. The outer profile needs to be machined
using a slot drill of #16 mm.
‘The axes system chosen for the component is given in Fig. 13.23. The path to be taken by the
tool is shown as centreline. The complete part program with all the necessary M codes is given
below:
4 bs
01002 (Program number)
NO10°G71 G92 x0 YQ 250 (Set point)Manufacturing Aspects of Industrial Products
[8] Fig. 13.21 Simulation of the Ahove Part Program for Component Shown in Fig. 13.20
jhe — 1% ——1
wi] (oF "3,
The hots 9°
i
so {100
4 —-— onl
=]
Pye
:
{%) Fig. 13.22 Component for Example 13.2
NO15 G90 (Absolute programming)
No20 TO1 $500 M06 (Tool change speed setting)
NO25 GOOx¥2.0 M03 (Rapid move to clearance plane)
NO30 GO1 2-5.0 F100 (Feed to the required depth)
NO35 Y80.0 F120 iN (Cut along straight line)
NO40 G02 X20.0 Y98.0 R20.0 F100 (Circular move)
NO45 GO1 x98.0 (Cut along straight line)
NO5O Y20 (Cut along straight line)
NOS5 G02 x80.0 Y2.0 R18.0 (Circular move)
NO6O G01 X18.757 (Straight line to the intersection
M065 X2.0 Y18.757 (Straight line to the intersection point)ENC Progranuning
5-798 ——. >
ns
(8) Pig. 13.23 Toot Pash for Machining the Component for Exumple 13.22
NO70 22.0 MOS (Feed to clearance plane Stop spindle)
NO75 GO XO YO 250 (Rapid to set point)
NO80 M02 (End of program) i
/ The reader would have noticed that the tool has been moved along a path which is offset from the
original contour by a value equal to the radius of the cutter. Further, it became necessary to calculate
the new intersection points which sometimes require the use of wigonometry. For example see the
path taken by a cutter of radius R as shown in Fig. 13.24. To calculate the actual cutter path, it is
necessary to evaluate the (AX and AY using the following formulae.
| w 'L ee
Me
BS] Fig. 13.24 ogser Tool Pash for Machining Conours shat are not Paraltel to the Principal
ods Ates a0
wre wn GO ae Mewes
q7 she
z
ae FigMansacaring Aspects of Industrial Prout
abe rtan s)
(3
¥ =
At fan *: 2)
ILis possible to derive similar formulae for other contour situations as well. Further, most of the
hew controllers are provided with cutter radius compensation options. In such cases, it is not neces-
Sary to calculate such intersection values. The details are given later.
The graphical simulation of the above is shown in Fig. 13.25, simulating the material removal
Process on the machine tool
% Fig, 13.25 Simulation of the Above Part Program for Component Shown in Fig. 13.22
"iBI9”“TOOL LENGTHY COMPENSATION”
SRERRAUEEEEECEe
In the programs discussed so far. only ane tool was used to perform the machining function. Hence,
the workpiece setting is performed with the single tool. However, in cases where there is more than
one tool, then programming becomes cumbersome, if the programmer has to take care of the indi.
vidual tool lengths for the purpose of programming the Z depth in each case.
Jn NC practice, al tots are measured in the assembled state using a tool presetter as explained in
Chapter 11, and this information is always kept up to date (Fig. 13.26). For the tools being used, the
difference in length, with respect to the pre-setting tool, is recorded and is manually entered and
stored with the associated tool number. Whenever these twols are called into action by programmed
instruction, the respective compensation values are activated and automatically taken into account in
the tool motion. The following program example explains how tool length compensation is automati-
cally taken care of. .
NOO3 MOé TOL W
NoO6 Moe TOCNC Programming
2 Tool
la
oe 1 x
[SS] Fig. 13.26 Too! Length Compensation
In these program blocks, M06 refers to tool change and TO1, TO2,.... refer to the tools to be loaded.
‘Whenever the tool is ground or replaced, the new values are entered to replace the earlier ones and
thus the program remains unchanged. This is an essential facility, without which the multiplicity of
the programs for each job/tool combination would be enormous and futile. It will be understood that
the values entered compensate for the difference in lengths and thus all tools “effectively” become
independent of tool dimensions, if the dimensions of all the tools are stored. When programming, the
tool dimensions are not considered since the compensation values are calculated by the control system
itself during manufacturing.
It is found that a series of motions are to be repeated a number of times, many of which are fairly
common to’all the positions. For example, in the case of drilling operation the tool (twist drill) has to
position a little above the hole in rapid position, then move to the required depth with the given feed
rate and then the tool has to return to the top of the hole as shown in Fig. 13.27.
The same actions are to be repeated for each of the holes. For each of the operation 3 NC blocks to
be written, out of which two blocks need to be repeated without any change for each of the hole to be
drilled in the same plane. It is therefore possible to define a canned cycle or fixed cycle which can
repeat all these motions without having to repeat the same information for each of the hole. The most
common cycles that would be useful are for the hole making operations such as drilling. reaming,
tapping, etc. The advantages to be derived in using the canned cycles can be gauged by looking at the
part programs below for the component shown in Fig. 13.28.
For the component shown in Fig. 13.28, the NC program for drilling the three holes without using
canned cycles is shown below:
NO10 GOO X25.0 ¥35.0 22 *
NO15 GOl Z-18.0 F125 *
No20 GOO 22.0 *Manufacturing Aspects of Industrial Products
Clearance Plane
Breakthrough
Distance
x
a
Bl Fig. 13.28 Example for Canned Cycles
NOZ5 X55.0 50.0 *
NO35 GO1 Z-18.0 F125 *
i No40 GOO 22.0 *
NO45 X75.0 Y70.0 *
NOSO GO1 Z-18.0 F125 *
NO55 GOO 22.0 *
NO65 XO YO 250 *CNC Programming 351
For the same component the NC program using canned cycles is shown below:
NO1O G81 X25.0 Y35.0 2-18.0 R2.0 F125 *
t NO15 X55.0 Y50.0 + 5
NO2O X75.0 70.0 * ND
6 NO25 G80 XO YO z50 * (x Bo
In the canned cycles the additional data such as the clearance plane position will have to be
specified. For example, G81 canned cycle is used for carrying out the drilling operations for through
holes. The actual operations embedded in G81 canned cycle are shown in Fig. 13.27. The format to be
used as follows:
NGBl1XYZR
X, ¥ Refer to the centre coordinates of the point where the drilling is to be carried out.
Z Refers to the final depth of the hole to be drilled
R Refers to the position of the clearance plane (same as the Z-axis position of the clearance plane)
G81 is a canned cycle, which is modal. As a result, any point specified when G81 is in force the
drilling action will be repeated. As a result, to cancel the canned cycle, it is necessary to use the code
G80. The effect of G80 is to cancel the existing canned cycle in force and make GOO operational, Any
coordinates to which the spindle should move can be programmed in G80 block,
There are a number of canned cycles identified by ISO in this category. The typical motions
embedded in various canned cycles as per ISO are shown in Table 13.2.
Table 13.2 Standard Canned Cycle Motions
Canned cycle Feed from At programmed depth (end of fe Used for
surface ell Spindle speed Spindle ré
or = Stop = Cancel eanned eyele
Constant — ~ Ropid Drilling, centre drilling
Constant = Yess — Rapid Counter sinking, Counter boring
Intermittent — = Rapid Decp hole drilling
Constant == — Reverse Feed Tapping
Constant = — = Feed Reaming
Constam = — Stop Rapid Boring
Constant = — Stop Manual Multiple Boring
Constam —--Yes_—«—= Stop Manual Boring
Constant____Yes_ = Feed Boring
Example 13.3
‘The component to be machined is shown in Fig. 13.29. All the hole making operations are to be
‘machined using the tools specified.
‘The point to be noted in the above component is that the top surface is at three different levels
and as such the clearance plane will be different for each of these planes. Hence, the part program
| will have to take this into account while using the appropriate canned cycle. Following part
program machines the part completely.a
01245
NO10
NO15
NO20
NO25
N030
NO35
NO40
NO45
NOSO
NOSS
NO6O
NO6S
NU/U
NO75
No8so
NO85
No90
NO9S
N100
N105
N110
N115
Manufacturing Aspects of Industrial Products
¥ p-———_115 ——___+}
____ 95 >|
{HHT
tatty
EL? oP Tie i)
20,
ban —+|
Cutting tools:
eal 1 1. Gente dil
TAB Fray — emmetvoom
0 + 2. Twiot drill g8.5 mm.
J 7
BS) Fig. 13.29 Component for NC Program in Example 13.3
G71 G92 x0 YO z50
G90
TO1 S800 M06 (Centre drill all holes)
GB2 X20 Y34 2-5 R2 F125 MO3
x20 Y84
G80 x60 Y16
G82 X60 Y16 2-25 RIB F125
Y40
y6o
ved
G80 76
GB2 X95 Y16 Z-13 Rb F125
yea
X115
Y84
G80 22 M05
T02 S800 M06 Finish Drill the 96 holes)
G81 X60 Y16 Z-43 R18 F125
Y40
y60
ve4
G80 22 M05N120 TO3 S800 M06
N125 G81 X20 Y34 2-15 R2 F125 NO3
yaa
N130 X20
N135 G80 X95 Y16
N140 G81 X95 Y1G 2-23 R-6 F125
N145 84
N150 X115
N155 Y16
N160 G80 22 MOS
N165 TO4 S200 M06
N175 G84 X20 Y34 Z-15 RZ F300 M03
Y84
N180 X20
N185 G80 X95 Y16
N190 G84 X95 Y16 2-23 R-6 F300
NL9S Y84
N200 X115
N205 Y16
N210 G80 22 MOS
N?15 TOO MO6
N220 GO 750
N225 x0 YO
N230 M02
‘The graphical simulation of the above is shown in
Fig. 13.30, simulating the material removal process on
the machine tool.
In contouring operations, it becomes necessary to calcu
late the tool path for preparing the program by affset-
ting the contour by an amount equal to the radius of the
cutter. Figure 13.31 shows the part contour and the tool
path for a typical component. Apart from the problem
of calculating, one should realise that whenever the cut-
ter size changes, the program would need editing. How-
ever, if a compensation equal to the radius of the cutter
is entered and stored in the control system, then the
(Pre-drill the tapped holes)
(Tap all the holes)
QS) Fig. 13.30 Simulation of the Above
Part Program for Compo-
nent Shown in Fig. 13.29
program could be written for the component profile and thus no change in program would be
required. It is as it the program is written with a cutter uf cero radius,
‘The preparatory functions G4U, G41 and G42 are used for radius compensation and form one
group. These are modal and the one programmed in any block remains active till cancelled by the
other.Manufacturing Aspects of Industrial Products
Programmod Path
Offset Path of Cutter
[SB] Fig. 13.31 Cutter Radius Compensation
G40 Compensation ‘off’.
G41 _ used when the cutter is on the left of the programmed path when looking in the direction of
} the tool movement, i.c. the radius compensation is considered to the left of the programmed
profile.
| G42__used when the cutter is on the right of the programmed path when looking in the direction
i of the tool movement i.e. radius compensation is to the right of the programmed profile (In
some systems, cutter diameter compensation is possible and in these cases, the value of the
| diameter is entered as the compensation value). The tool radius entry is always positive. If
: the programmed path is determined for a particular size of the cutter, the compensation
| value would be ‘+" or ‘—" depending on whether the cutter used for machi ing is oversized
or undersized.
During the operation with cutter radius compensation on, the control automatically calculates the
tool path as offset in the correct direction by the radius of the tool in the spindle, However, during the
startup and cancelling of the compensation the actual position is dependent upon the next or previous
move.
Consider the cutter moves as shown in Fig, 13.32. The program, which actually shows the actual
coordinates is given in the part print. The actual motion of the tool during the machining process is
shown with a centre line,
NO30 G42 GOO X110 Y140 (Startup command A - 1) p>
NO35 GO1 XO F120 (Move | - 2)
NO40 YO (Move 2 - 3)
NO45 X60 (Move 3 - 4)
NOSO x110 (Moye 4 - 5)
NOSS Y140 (Move 5 - 6)
No60 G40 GRO x160 Y170 (Cancel compensation, 6 - A)
|
|
|CNC Programming
Sot point
[WB] Fig. 13.32. Ecample Showing ine Cuter Radius Compensauion using the G Codes G42
During the startup move (A-1), the tool is actually positioned at a point which is normal to the next
move, which is shown in Fig. 13.32 as 1. This move is called the ramp-on move. Similarly, when the”
compensation is cancelled, the tool will be positioned at a point normal to the previous move shown
as 6 in Fig, 13.32. This is termed as ramp-off move.
| Example 13.4
To following program will illustrate the use of these preparatory functions. Figure 13.33 shows the
top view and the top of the component surface is taken as Z = 0,
M SSS,
200.
igs 13.33 Example Showing the Cutter Radius Compensation using the G Codes G41 and
Ga%
NOlO G71 G92 XO YO Z250.0 (Absolute preset at A, 50: mm above
work surface)
'NO20 690 (Absolute programming)
NO30 TOL MOG
+ NO40 GOO 22 M03 S600 + (Rapid plane positioning)
NOSO G41 GO1 x100 Y-60 F100 (culter compensation ON; tool moves
along the path left of the programmed
contour)
NOSS 25.0 (Move to required depth)
NO6O ¥300.0
NO70 Y-260.0
NO80 X100.0
NO90 Y-60.0 .
N100 G40 GOO xO YU (culter radius compensation OFF)
N10 250.0 TO MOS (compensation value for tool 71
sancelled)
N120 MOG ToO2 (Second tool for internal profile)
N130 X200.0 Y-120.0 22.0 S600 M03
N140 GOl 2-5.0 F100
N1S0 G42 Y-100.0 (cutter compensation ON; tool path right
of programmed contour)
N160 G02 10 J-60.0
N170 GOO 250.0
N180 G40 XO YO M05
N190 TO M06
N200 M02
In the block 050, the programmed position Is 8, but the cutter centre comes to the position F such
that BF is perpendicular to the next move BC (Block NU60), programmed in the next block. AF is
some times called *Ramp-on-move in view of its shape. Similarly, in the block 1V150, the programmed
position is L but the cutter centre attains the position M, such that LM is perpendicular to the direction
Of the next move i.e. tangent to the circle (Block V160). In the block N10O, the compensation is
deactivated by the word G40, which is entered after the programmed position B. The cutter stops at K,
such that KB is perpendicular to the direction of the previous move i.e. EB. KA is called ‘Ramp - off
+ move".
In the blocks 110 and W180, TO causes cancellation of the compensation values for the tool in
action at that time. Radius compensation is also used when similar profiles are to be cut with different
depths of cut e.g, rough cut and finish cut. When a rough cut is made, a compensation equal to the
thickness of the material to be left for finish is entered and during the finish cut this compensation is
taken off. In view of identical programmed paths in roughing and finishing, such programming is
done by using subroutines. For the roughing cut, the subroutine is called in the main Program using
the compensation and for the finish cut, the same subroutine is called using the same tool without
compensation.CNC Programming
‘Compensation for tool length and radius can be specific to a tool and if so, when the word 703
occurs in a block, it calls the tvul number 3 into action with the compensatjon pre-registered for it.
However, in many CNC systems the compensation values (MDI entry) are stored separately, irrespec-
tive of the tools being used. This helps in calling different compensation values even with the same
tool when used on different occasions. For example, 70104 word would mean that tool number 01
would be used with the compensation value, entered in the register against identificr 04. Before
commencing Work on the machine, the operator must examine the compensation values stored and
verify them with the list of values supplied to him. Negligence on this count could be very serious.
In some of the popular control systems, the pre-registered compensation values are called in the
program block by the words D ... and H... which refer to the tool radius and length compensations
respectively. For example,
NO17 MO6 TO2
NO18 G81 X170.0 100.0 265.0 R48.0 HO7 F100 M03
would mean that the drilling operation will take place with tool Number 02 with a length compensa-
tion corresponding to the entry against the identifier 07. Similarly,
NO74 MO6 TO6
NO75 GO1l X70.0 DO3 F150 MO3
would mean that milling will take place with tool number 06 with a radius compensation correspond-
ing to the entry in the register against the identifier 03.
Example 13.5
| A complete part program using the ISO codes for the following component for the external contour
» for the component shown in Fig. 13.34 using the cutter radius compensation.
j— 70.432 —»| 10
[84.574
“bpita” | ecb |
Fo
|. 124,853 ————>]
[+ 134.7099 ————>}
Lo
Be
[B) Fig. 13.34 Example for Contour Programming using the Cutter Radius CompensationEJ Manfecing Apc of Ids Pradcts
G71 G92 X-100 Y-100 250
G90
TOl M06
G42 GOO x0 YO 22 D1
GO1 2-10 F120 M03
GO Y15
G02 X4.393 ¥25.607 RIS
G01 X70.432 Y91.645
G02 X 84.574 ¥77.503 R10
GO] x46.642 39.571
GO3 X53.713 ¥22.5 R10
G1 x120
G02 x134.8 Y10 R15
Gol x124.853 ¥o
xo 0
zz
G40 GOO X-100 Y-100 250 MOS :
TOO M06
M02
The graphical simulation of the above is shown in Fig. 13.35, simulating the material removal
Process on the machine tool.
| Fig. 13.35 Simulation of the Above Part Program for Component Shown in Fig. 13.34
Summary )-
Part programming ‘for CNC machine tools is an activity that requires knowledge of the
‘machine tool characteristics as well as the machining practices. A lot of previous knowledge
and experience in these arcas will improve the part programming ability.
(Contd)CNC Programming
(Contd)
a Part programming is @ systematic activity and following the steps in proper sequence
will help in developing efficient part programs,
Selection of the part coordinate axes system with respect to the part geometry help in
reducing the mathematical calculations that are needed to write the part program.
+ ISO standard for part programming utilises all the 26 characters of English alphabet as.
word addresses in a part program.
«Preparatory functions or G-codes control the geometrical nature of the data input as well
aS operation of some of the data in a program. A large number of these codes are
standardised by ISO.
* Motion commands are the most important part of the G-codes used to control the
motion in rapid (G00). linear interpolation (G01) and Circular interpolation (G02 and
G03)
* Miscellaneous functions or M-codes are used to specify the machine tool functions in
the program. Less number of codes are standardised in view of these being machine
specific.
* For programs involving multiple tools, tool length compensatiun can be activated by the
use of tool offset registers.
‘* Canned or fixed cycles offer the facility to reduce the bulk of program by canning the
often repeated commands into a single G-code. Examples are for the drilling of holes
(G81).
+ In milling of contours large amount of complex calculations are often required to take
multiple cuts. This can be reduced by the use of cutter diameter compensation (G41 and
G42).
Z 13.1 What is the knowledge that a Computer Numerical Control programmer
should have for developing the programs?
poten 13.2 What are the most important functions that would be used for program
ming?
Questiony 135 Explain the function of the preparatory functions. Give the functioning of
— any one G code used for the purpose.
13.4 What is dwell? Fxplain its function and how it is specified in part pro-
gram,
13.5 Explain the method used for specitying the tool specification in a CNC
part program.
13.6 Explain the concept of ‘Floating Datum’ and ‘Sct Point’ with reference to
CNC Part programming, What is their relationship? Explain how they are
used in programming in ISO Format.
13.7 How is the tool length compensation specified in a machining centre?
13.8 Explain with neat sketch the operation of the canned cycle G81 as per
Iso.
13.9 What are the various functions embedded in the G82 canned cycle? Ex-
plain their use with examples in ISO Format.wPractice
ProMems
Aaanigcenegg tyne oF Dastsinasd Puungns
ARQ WAG A year Banderstant AY thy wpAL OUNNT CVERE AL ENN ARE PO:
geunannag PAQUAAL WA AE MboAETIN A eToEINDE NAMEN AN ANA:
DARE OE ANS ORAL VERE GAT ANT GR
ARLE RW is CREE QNNRANALTNL GAVE OL ANE OE OF A MNATANNE ovine”
NaI WDE AAMUAIONRE, QUAL AY a
UO,
coe AERA CAAT?
AAD Boe rhe BMWS CORRE CA. EST ELE A RT NERO
ARAL OER QQRAL WRN INO) seh Oot TR: wed
RAMEE BS ATST LOM) stack CR). OW Ee See POE NE kee et ES
SKE OF EE UE, Drogaaee addy the pa ADA at th ENS Eee
I. SR all ado caatoarkatlonts HE OLA,
WSS vot
Y dete oat
2 Nast ona a one
RWSL Ht ND ak
AS aE AND
ASD Branine the tathowing CNC pat prgean fe a aahdaiay oowere I
WA a cont Alloy IND stantand, Wenn ay ape fun ae
‘Program and also explain the ems,
%
NPQOL s
Re G7] *
NP G90 *CNC Programming
N3 Tl M6 *
N4 GO X75.0 Y100.0 *
NS Gl 2-3 *
N6 X175.0 Floo *
N7 25.0 *
NS X75.0 *
NO Y100.0 *
N10 M30*
For the above program prepare the gcometry of the part generated, if the
diameter of the slot drill used is 10.0 mm.
13.3 For the program shown in Question 2 above, prepare the geometry of the
part generated, if the diameter of the slot drill used is 5 mm.
13.4 For the following component (Fig. 13.37) make a part program on a
Vertical axis machining centre, Clearly show the set point and axes on the
sketch of the part, Prepare also the planning sheet as used in the labora-
ad ;
[| {
Four Holes Drill through
Dia 4.0 CBore Dia
} 9.0 x 5.0 Deep
vso0 f
2500 >) a
om +
L = ! fag Os }
-
+006
L— zo00'o00 1000-1
BS Fe. 13.37
13.5 Examine the following CNC part
grams and also explain the errors.
@ %
07001 *
N2 GO X3.0 Y4.0 *
N3 Gl X7.0 F100 *
programs. Give the errors in the pro-Manufacturing Aspects of Industrial Products
Na Y1.0 *
N5 X3.0 *
N6 Y4.0 *
N10 MO2 *
() %
o94ani*
Nl G17 Tl M6 *
N2 692 x90.0 Y70.0 +
N3 G81 2.0 Z-10.0 F200 S500 M3*
NS GOl X4.0 Y12.0 F150 *
N10 Moz *
13.6 Explain the mistakes found in the following statements.
(a) NOS GO1 X12.3 Y23.0 F120 *
(b) N25 G04 X?.0 1234 *
() N45 GOO T1001 S400 *
(@) N75 G03 x0 20 F120 +
(©) N60 M01 T1000 Yo *
13.7 For the component shown in Fig, 13.38 make a part program on a ma-
shining centre equipped with the ISO controller. Clearly show the set
point and axes on the sketch of the part. Show all the necessary ealcula-
tions,
ce.
LO) OT
Lo #6
£25 Stoo!
+
BH Fe. 13.38
13.8 For the components shown in Fig. 13.39 to Fig. 13.49 make part pro-
‘grams for machining on a CNC machining centre equipped with the ISO
Controller. Clearly show the set point and axcs om the sketch of the part,
Shaw all the necessary calculations,Se ee
Manufacturing Aspects of Industrial Products
ot
BS) Fig. 13.42
y
+80»
15>}
Bi
mo J
ea
30 rer
— poy
3 1
a
27
{Took End mail 9 10 mm
BS) Fie. 13.43CNC Programming
Cutting Tools
1, Contro dill
2 Twist dail 06 mm
10 100 3, Slot drill @10 mm
i
io
Ded ®
1S F
[SI Fig. 13.44
a0
Soy 8 —— 28 |
Eee re ae
}-—t-—-
“10 Drill 18 C'Bore
4.5 Doop - 2 Holos
19Manufacturing Aspects of Industrial Products
RSI Fig. 13.47
-8 $8 Be [ &
er 2 7 ef ‘ Her
- sf _f 7
el] Oy Ts
lle eo =
@367
NC Programming
+30
foram
T
a
I
Fofolle
%) Fig. 13.48
Q |
ee
Sy) Fig. 13.49
Lp ti az ety peeberg tb bLG eee