06/20/22 Numerical Control and Programming
Jun 24, 2015
04/13/23
Numerical Control and Programming
04/13/23
An NC system for large parts
04/13/23
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
04/13/23
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.
04/13/23
NC motion-control commands
Commands for individual components
Commands for motion
04/13/23
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
04/13/23
A point-to-point NC system
04/13/23
Continuous-path control using linear interpolation
04/13/23
The structure of an NC machine
04/13/23
Major components comprising an NC machine tool
04/13/23
Leadscrew and machine ways (Courtesy of Cincinnati Milacron)
04/13/23
A typical screw thread
04/13/23
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
04/13/23
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
04/13/23
Interpretation: Linear path
Interpolation is important when we try to control the path of the tool.
04/13/23
A DDA
04/13/23
Two-axis control
04/13/23
A linear interpolator example
04/13/23
04/13/23
Machine Kinematics: A Cartesian machine
04/13/23
A lathe
04/13/23
A three-axis vertical milling machine
04/13/23
5-axis machine - 1
04/13/23
5-axis machine - 2
04/13/23
5-axis machine - 3
04/13/23
Rotary table attachment (Courtesy of Fadal Machine)
04/13/23
Five-axis machine coordinate systems
04/13/23
Relating the workpiece coordinate system with the 5-axis coordinate system
04/13/23
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.
04/13/23
N005 G00 X10 Y10 Z10 M03
word word word
Block or Command
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.
04/13/23
NC program functions
• Preparatory functions• Coordinates• Machining parameters: feed and speed• Tool control• Cycle functions• Coolant control• Miscellaneous control• Interpolators
04/13/23
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.
04/13/23
Reference Points (contd)
program reference zero
(-5,-6,-7)
workpiece
table
(0,0,0) m/c home zeroLRZ
Tool
04/13/23
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?
04/13/23
Figure
1
7
6
5
43
2
1 432 5
14
32
5 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
04/13/23
Machine Configuration
Y
Z
X
Vertical Milling Machine
X
Z
Y
Horizontal Milling Machine
04/13/23
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)
04/13/23
• 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
04/13/23
• 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
04/13/23
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
04/13/23
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
04/13/23
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
5N025 G01 X5. Y5. F3.5
3.5 ipm
04/13/23
Sample G/M Code
Use R. or I, J to specify radius
N015 G03 X5.0 Y5.0 I-2.0J0.0F3.5
Start
End
5
5
N015 G03 X5. Y5. R2. F3.5
2” radius
2.0
04/13/23
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.
04/13/23
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.
04/13/23
– 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
04/13/23
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
04/13/23
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)
2 26.5 0.75 0.25 5.793
0.75P3
P20.75
P3
P2
2 2 2' ' 0.75, ' 5
' 0.25
x yx
y
6.5 ' 6.5 5, y 9 ' 9.25x x y Transfer coordinate back:
Final important offset
points
04/13/23
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
04/13/23
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
04/13/23
• 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.)
04/13/23
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.
04/13/23
Cutter Radius Compensation - Examples
4.00
6.00
1” Radius (typ)0.5 Wall (typ)
1” cutter
2.00
1.50
0.50
04/13/23
Cutter Radius Compensation - Examples (contd)
N005 G92 X10. Y10. Z10 (Set up program zero; just example numbers)
N010 G90 S400 M03 (Select absolute mode and turn the spindle on CLW at 400 RPM)
N015 G00 X1.5 Y2. (Move over to first X Y position, still tool centerline coordinates.)
N020 G43 N01 Z.1 M06 (Instate tool length compensation, move tool down, and turn on the coolant)
N025 G01 Z-.5 F6.5 (Plunge tool into work surface at 6.5 IPM)
N030 G42 D31 X.5 F3.0 (Instate cutter radius compensation.)
N035 Y2.5
N040 G02 X1.5 Y3.5 R1.
N045 G01 X4.5
N050 G02 X5.5 Y2.5 R1.
N055 G01 Y1.5.
N060 G02 X4.5 Y.5 R1.
N065 G01 X1.5
N070 G02 X.5 Y1.5 R1.
N075 G01 Y2.0 (Last cutting move back to Y2.0)
N080 G00 Z.1 (Move tool up to clear workpiece in Z)
N085 G40 M09 (Cancel cutter radius compensation and turn off coolant)
N090 G91 G28 X0 Y0 Z0 (Send the machine to home position)
N095 M30 (End of program)
04/13/23
Cutter Radius Compensation - Examples (contd)
2.0
3.0
4.0
2.6
0.2
1.0 1.0
R 0.4
0.2
0.2
0.2
1.0
0.2
Program Zero
04/13/23
Cutter Radius Compensation - Examples (contd)
N010 G90 S305 M03 (1” End Mill)
N015 G00 X4.6 Y-.6
N020 G43 H01 Z.1 M08
N025 G01 Z.-2 F30.
N030 G42 D31 X3.8 F4.0 (NOTE: “D31” would be “H31” for 0M or 3M control)
N035 Y2.4
N040 G03 X3.4 Y2.8 R.4
N045 G01 X3.0
N050 X2.0 Y2.6
N055 X1.0 Y2.8
N058 X.6
N060 G03 X.2 Y2.4 R.4
N065 G01 Y.6
N070 G03 X.6 Y.2 R.4
N075 G01 X3.4
N080 G03 X3.8 Y.6 R.4
N085 G00 Z.1
N090 G40 M09
N095 G91 G28 Z0 (NOTE: No need for “M19” because only one tool in program)
N100 G28 X0 Y0
N105 M30
04/13/23
More example
04/13/23
Solution
04/13/23
Example
04/13/23
Solution
04/13/23
Example
04/13/23
Solution