3. 03/30/15
Brief History of Machine Tool
• Basic machining, as early as 700 B.C.
• Metal machining, 15th
century
• Invention of high speed steel, early 20th
century
• Automated machine controlled by
mechanical devices, first two decades of 20th
century
• Fixed automation, 1930s and 1940s
• A machine tool is coupled with a computer,
1947
• A first NC prototype, 1952
4. 03/30/15
Definition of Numerical Control
• A system in which actions are controlled by
direct insertion of numerical data at some
point. The system must automatically
interpret at least some portion of this data.
6. 03/30/15
NC classification regarding
• Motion control: PTP versus continuous
path
• Control loops: open versus close
• Power drives: hydraulic, electric, or
pneumatic
• Positioning systems: incremental or
absolute positioning
• Hard-wired NC and soft-wired CNC
13. 03/30/15
Accuracy and repeatability
• Accuracy
• Repeatability
• Spindle and axis-motor horsepower
• Number of controlled axes
• Dimension of the workspace
• Features of the machine and the controller
14. 03/30/15
Motion control for NC
Inverse kinematics is to convert
the position and orientation
commands into the machines
axes commands
Interpolation is to
coordinate multiple
axes to move the tool
on a desired trajectory
29. 03/30/15
NC Manual Programming
• One needs to tell the controller what needs to be
done in order to machine a particular component.
CNC programs are the means of achieving this.
• CNC programs are made up of a series of commands
or blocks that inform the controller what must be
done, step by step. A CNC program is sequentially
executed, one step at a time and the controller
executes the commands in the same order as
encountered.
• Programming can be done in several ways:
– On line—using the machine’s controller
– Off line—coding and later downloading using tapes, etc.
30. 03/30/15
N005 G00 X10 Y 10 Z10 M 03
word word word
B lock or C ommand
NC Programming Languages
• There does not exist a standard NC programming
language
• Every CNC machine manufacturer has a special
language for programming their machines.
• The closest to a standard language are G/M codes.
– A G/M code CNC program is made up of a series of
commands. Each command or block is made up of words
– Each word is composed of a letter address (X,Y,Z,R, etc.)
and a numerical value.
31. 03/30/15
NC program functions
• Preparatory functions
• Coordinates
• Machining parameters: feed and speed
• Tool control
• Cycle functions
• Coolant control
• Miscellaneous control
• Interpolators
32. 03/30/15
Reference Points
• Machine Reference Zero:
– Each axis of motion has a reference point which provides a
starting point for each axis
• All positions are measured with respect to this point.
– The reference points of all the axes determine a machine’s
reference zero point.
• All distances are measured with respect to this point.
• Program Reference Zero:
– Reference point for measuring distance on the part or
drawing.
• Local Reference Zero:
– Temporary reference point from which distances can be
measured.
34. 03/30/15
Absolute Vs. Incremental Mode
• Absolute Mode
– the distances moved are relative to the program zero.
• Incremental Mode:
– the distances moved are relative to the machine’s current position.
• Absolute Mode: To what position does the m/c move?
• Incremental Mode: How far does the m/c move?
35. 03/30/15
Figure
1
7
6
5
43
2
1 432 5
14325
Point Absolute Mode Incremental Mode
1 X 1.0 Y 1.0 X 1.0 Y 1.0
2 X 2.0 Y 1.0 X 1.0 Y 0.0
3 X 3.0 Y 2.0 X 1.0 Y 1.0
4 X 4.0 Y 2.0 X 1.0 Y 0.0
5 X 4.0 Y 4.0 X 0.0 Y 2.0
6 X 5.0 Y 2.0 X 1.0 Y –2.0
7 X 5.0 Y 5.0 X 0.0 Y 3.0
37. 03/30/15
Components of a G/M Code Program
• N: Specifies a sequence number for program command
identification (e.g., N05, N0010, ..., etc.)
• G: Specifies Preparatory Functions which allow various modes
to be set from within the program (e.g., G90-sets absolute
mode, etc.)
• X,Y,Z: Specify linear movement along the axes (e.g., X10 means
move 10 units in the +x direction)
• A,B,C: Specify the rotary motions
• F: Specifies the desired feed rate (e.g., F3.5 means 3.5 distance
units/time unit)
• S: Specifies the spindle speed (usually in rpm) (e.g., S2000
means spindle rotates at 2000 rpm)
• M: Specifies Miscellaneous functions like spindle stop (M05)
38. 03/30/15
• 3-axis Vertical milling machine
In all movements, consider tool tip as moving, NOT the
axes
spindle
cutting tool
table
-X +X
-Z
+z
+Y
-Y
Machine Axes
39. 03/30/15
• Program Reference Zero (PRZ)
• PRZ can be set up manually or within NC program
– Nxx G92 Xxx Yxx Zxx
– e.g. N020 G92 X5.000 Y6.000 Z7.000
==> Location of Home Zero is (5,6,7)
(i.e., the zero point has been shifted)
program reference zero
(-5,-6,-7)
workpiece
table
(0,0,0) m/c home zero
Machine Home Zero
40. 03/30/15
Before Writing Any NC Program
• Develop a sequence of operations.
• Do all math necessary and “mark up” your blueprint.
• Program zero & absolute mode (incremental mode)
• Determine the Tool Motion:
– Rapid motion G00
– St. Line Cutting Motion G01
– Circular Motion G02 CW; G03 CCW Depends on the tool
thread direction.
– All these are MODAL commands
41. 03/30/15
Sample G/M Code
N015 G00 X5.0 Y5.0
– rapid rate
– minimize “air cutting”
– need not be in a straight. line
Tool at
start
position
Program Zero
5.0
5.0
42. 03/30/15
Sample G/M Code
Centerline Movements
– Tool moves along straight line at specified feed rate
– Feed Rate is also a modal command.
– Used for operations like: drilling a hole, milling a straight
surface, milling an angular surface.
Start
End
Program
Zero
5
5
N025G01X5.Y5.F3.5
3.5ipm
44. 03/30/15
Preparatory Functions (G Codes) - Partial List
G00: Rapid Traverse
G01: Linear Interpolation
G02: Clockwise Circular
Interpolation
G03: Counterclockwise
Circular
Interpolation
G04: Dwell (G04 10.0 - for 10
secs)
G17: XY—Plane Selection
G20: Measurement in inches
G21: Measurement in mm.
G28: Return to reference
position
G40: Cutter
Compensation/Offset
Cancel
G41: Cutter Compensation—
Left
G42: Cutter Compensation—
Right
G80: Cancel Canned Cycles
G90: Absolute Format
G91: Incremental Format
G92: Program Zero Definition
G94: Feedrate in inches/min.
45. 03/30/15
Auxiliary Functions (M Codes) - Partial List
M00: Halt
M02: Program End
M03: Spindle On (CW)
M04: Spindle On (CCW)
M05: Spindle Off
M08: Coolant On
M09: Coolant Off
M30: End Newpart
• Program end must contain M02 or M30.
• Always turn on spindle before entering workpiece.
• Never turn off spindle before retracting from
workpiece.
46. 03/30/15
– Identify PRZ, cutter radius
– Calculate coordinates of “important” points on the offset
tool path
• A: (-0.25, -0.25); C: (3.25, 2.25)
• B: (-0.25, 2.25); D: (3.25, -0.25)
Developing NC Programs
D
C
Path of the cutter center
2” 1/4”
3”
B
A
47. 03/30/15
Developing NC Programs (contd)
• Cutter diameter = 0.5”
• P1: X of P1 = 4 - 0.25 = 3.75
Y of P1 = 4 - 0.25 * tan 67.5” = 3.396
• Calculate intersection points
1. Use geometric calculation
2. Solving the equation
P1 (3.75,3.396)
P1
P2
P3
48. 03/30/15
An Developing NC Programs (contd)
• Cutter diameter = 0.25”
• P2: (4-0.25, 9+0.25) = (3.75, 9.25)
• Way1: P3: (x, 9.125), x=
• Way2: assume the circle center =(0,0)
0.75
P3
P2
0.75
P3
P2
Transfer coordinate back:
Final important offset
points
49. 03/30/15
Developing NC Programs (contd)
N10 F60 S400 M03
N20 G01 X3.75 Y3.396
N30 G01 Y9.25
N40 G01 X5.793 Y9.25
N50 G03 X7.207 Y9.25 I 0.707_ J_-0.25_ or R 0.75
N60 G01 X9. 604
N70 G01 X3.75 Y3.396
N80 G01 X0. Y0 M05 M30
To decide the I, J vector that rep the radius:
(I,J) = start (x,y)→ center (x,y)
I=6.5- 5.793 = 0.707_
J=9 – 9.25 =_-0.25_
Ending point of G03
50. 03/30/15
Cutter Radius Compensation
• Allows programmer to:
– forget about radius of milling cutter as program is written
– program only workpiece coordinates
• Used only when you are milling on the “side” of the
cutter. Not used for drills, tapes, reamers, face mills,
etc.
• 3 basic steps to using cutter radius compensation
– Initialize cutter radius compensation
– Make tool movements using cutter radius compensation
– Cancel cutter radius compensation
51. 03/30/15
• To initialize, first determine whether cutter is to the
LEFT or the RIGHT of the workpiece during the cut
– G41: Left
– G42: Right
• D word stores cutter radius information e.g.. D1 =>
radius of tool 1
G42 Cutter Right
G42 Cutter Right
G41 Cutter left
G41 Cutter left
Cutter Radius Compensation (contd.)
52. 03/30/15
Cutter Radius Compensation (contd.)
Tool Position prior to initialization:
• Position the tool so that as we instate cutter radius
compensation, and begin cutting, a right angle is
formed.
– G41, G42 are modal commands canceled using G40.
• Get tool out of workpiece before canceling cutter
radius compensation.
• G43 for tool length compensation
• H word H1: length of tool 1.
• Now let’s try to put it all together and look at a full
example of cutter radius compensation.