CNC Mill Programming PDF M

Download as pdf or txt
Download as pdf or txt
You are on page 1of 35

CNC Mill

Programming

PDF Manual
 You must complete safety instruction before using tools and equipment in
the Medical Device Center, ME Student Shop and CSE Workshops.
 All machinery can be dangerous. You must have a trained individual instruct
you first when using unfamiliar equipment.
 Only authorized and trained individuals may operate CNC equipment.
 Code examples shown are for illustration purposes only, and are not meant
for operation or programming actual equipment. They may be incomplete or
contain errors.
 Always abide by shop safety instructions and never engage in horseplay.
 Remember to wear OSHA approved eye protection in the shop, short sleeves,
leather or steel toed shoes, and secure long hair, avoid loose clothing, and
take off rings, watches and bracelets when using power equipment.
 These slides are part of the “Introductory Medical Device Prototyping” course
at the University of Minnesota, and are not meant for any other purpose.
 Formal training in Haas is available from Productivity, Inc.
Image courtesy of Productivity and Haas
Image courtesy of Productivity and Haas
A Fourth Axis Rotation (Around the X axis)
B Fifth Axis Rotation (Around the Y axis)
C Auxiliary External Rotary Axis (Around Z)
D Tool diameter offset from the Tool Offset
Page – D01 to D200.
F Speed of the movement of the spindle in the material
in inches per minute (IPM). e.g. F10.0 = 10 linear IPM.
G Preparatory function - modes of operation
H Tool length offset from the Tool Offset Page –
e.g. #01. H02 – Tool Length Value #2.
I Arc – distance from center to X axis
J Arc – distance from center Y axis
K Arc – distance from center to X axis
L Loop count for repeated cycles
M Turning off and on machine functions. e.g. M3 and M4
turn the spindle on, M5 off. M8 coolant on, M9 coolant
off.
N Block line numbers. M97 functions may address an N
line number.
O Program name: Onnnnn
P Delay time or program jump
R Rapid plane – how far above the part to rapid the tool
to. Also radius of an arc.
T Tool selection position in the tool changer.
X, Y, Z Linear motions in these axis.
 Come in groups – each establishing a mode
of operation.
 No more than one G code in a group in a
block.
 Model G codes remain effective until replaced
with another code in the same group.
 Non-modal G codes are effective only in the
calling block.
M00 Program stop (spindle, axes, coolant) M32 Chip conveyer backward
M01 Optional stop e.g. tool change M33 Chip conveyer stop
M03 Spindle forward (clockwise) M34 Increment spigot up
M04 Spindle reverse (ccw) M35 Increment spigot down
M05 Spindle stop M41 Low gear
M06 Load new tool e.g. T1 M06 M42 High gear
M08 Coolant on M82 Tool unclamp
M09 Coolant off M86 Tool clamp
M19 Orient spindle M97 Local sub-Program call (P or L)
M30 Program end and rewind M98 Sub-program call (P or L)
M31 Chip conveyer forward M99 Return for subprogram or loop

Important student use setups: Go to settings and disable “tool drop” and “.1 tool rate.”
#76 lockout and #163 disable. Do not use M82 – tool will just fall out. Also, disable
switch on controls – it can also cause this to happen.
 M03 Spindle Forward, e.g. Snnnn
 M04 Spindle Reverse
 M05 Spindle Stop
 G94 Feed IPM (default – inches per minute)
 G95 Feed IPR (inches per revolution)
 𝑆 = 𝑆𝑆𝑆𝑆𝑆𝑆𝑆 𝑆𝑆𝑆𝑆𝑆 𝑖𝑖 𝑅𝑅𝑅
𝑆𝑆𝑆
 𝑅𝑅𝑅 = 3.82 𝑥 (revolutions per minutes)
𝐶𝐶𝐶𝐶𝐶𝐶 𝐷𝐷𝐷𝐷
𝑆𝑆𝑆 = 0.262 𝑥 𝐶𝐶𝐶𝐶𝐶𝐶𝐶 𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 𝑥 𝑅𝑅𝑅 (surface feet per minute)
𝐷𝐷𝐷𝐷

 𝐹𝐹𝐹𝐹 = 𝐼𝐼𝐼 = 𝐼𝐼𝐼 𝑥 𝑅𝑅𝑅 (inches per minute)
 𝐼𝐼𝐼 = 𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠, 𝑜𝑜 𝑖𝑖 𝑐𝑐𝑐𝑐 𝑙𝑙𝑙𝑙 𝑝𝑝𝑝 𝑓𝑓𝑓𝑓𝑓 𝑥 𝑛𝑛𝑛𝑛𝑛𝑛 𝑜𝑜 𝑓𝑓𝑓𝑓𝑓𝑓
𝑅𝑅𝑅
 For tap, 𝐹(𝑖𝑖𝑖𝑖 𝑝𝑝𝑝 𝑚𝑚𝑚) =
𝑇𝑇𝑇
 For twist drill, 𝑖𝑖𝑖𝑖 𝑝𝑝𝑝 𝑚𝑚𝑚 = 𝑖𝑖𝑖𝑖𝑖𝑖 𝑝𝑝𝑝 𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟 𝑥 𝑅𝑅𝑅
𝐹
𝐹
𝐹𝐹𝐹𝐹
 F mills, 𝑖𝑖𝑖𝑖𝑖𝑖 𝑝𝑝𝑝 𝑚𝑚𝑚 = 𝑥 𝑛 𝑥 𝑅𝑅𝑅
𝑡𝑡𝑡𝑡𝑡
𝐹
G00 G17 G40 G49 G80 G90 G98;
G00 Put machine in rapid motion.
G17 Selects X-Y plane for circular interpolation.
G40 Cancels cutter compensation.
G49 Cancels tool length compensation.
G80 Cancels any canned cycles.
G90 Absolute
G98 To initial start point in any canned operation.
Start up:
G00 G17 G40 G49 G80 G90 G98; (Safety line)
G91 G28 Z0 (Return to machine zero )
T1 M06; (Tool change)
G00 G90 G54 X0 Y0 S2500 M03; (Rapid, Absolute, offset #1,
spindle speed, spindle on)

G43 H01 Z1.0 M08; (Tool length comp on, tool #1,
go to Z1.0, coolant on)
Cutting Tool Path Lines:
Program Ending Lines:
GOO Z1. M09
GOO G91 G28 Z0 M5 (Retract tool tip 1.0 above part)
G28 G91 YO (G28 zero all axis, stop spindle)
M30
(Incremental to G28)
(End of program)
G00 Rapid traverse
G17 X, Y Circular plane selection
G40 Cutter Compensation cancel
G49 Tool length compensation cancel
G54 Work coordinate zero #1 (1 of 109 available)
G64 Exact stop cancel
G80 Canned cycle cancel
G90 Absolute programming
G98 Initial point return
Also, spindle speed set at zero.
• With the tool rotating clockwise climb milling goes WITH the
rotation. Think of the flutes, or teeth of the cutter as pulling
the material, or CLIMBING through the material.
• When climb milling the flute hits the material at the top of the
cut, and the thickness of the chip decreases as the flute cuts.
• This results in the chips being deposited BEHIND the cut,
which is important. The chips clear the cutter, which means
you are not re-cutting chips. Since you are not re-cutting
chips, the result is a better surface finish and longer tool life.
• Less power is required from the spindle to climb mill, and the
result of the cut is down-force on the material, which can
simplify work holding considerations.
• Also when finishing the floor of a feature or face milling thin
material the down force can assist in stabilizing the part.
• Problematic with old manual lathes because of backlash in
gears.
• Preferred method for CNC. For outside milling move around
the work clockwise. When pocket milling move around the
work counterclockwise.

Images and text courtesy of Datron.


http://www.datron.com/blog/climb-milling-vs-conventional-milling/
• Used with manual Bridgeport lathe.
• With the tool rotating clockwise conventional milling goes
AGAINST the rotation.
• The flutes of your cutter are hitting the material and pushing
against the rotation, depositing chips IN FRONT of the cut. As
expected, that will result in re-cutting of the chips which will
both increase tool wear and decrease surface quality.
• Since the tool hits at the bottom of the part and the flute cuts
upward with the chip getting heavier as it cuts, you are
creating upward force on the part which can cause work
holding issues.
• Preferred for hot rolled steel and cast iron.
• Tool deflection with a conventional mill tends to be parallel to
the tool, it engages the rough surface at a more forgiving
rate.

Images and text courtesy of Datron.


http://www.datron.com/blog/climb-milling-vs-conventional-milling/
 Use for rapid traverse of the axes to a specific
location.
 Not used for cutting.
 All axis move at the same speed.
 May optionally select X, Y, Z, A axis motion.
 Motion will not necessarily be in a strait line.
 Used to cut strait lines.
 Requires a feed rate: Fnnn.nnnn
 Requires an address code: Xnn.nnnn,
Ynn.nnnn, Znn.nnnn
 Subsequent axis motion will use the same
feed code unless changed.
 Corners can be chamfered with Cnn.nnnn and
rounded with Rnn.nnnn to define the radius
of the arc.
F Feed rate in inches (mm) per minute
I Optional distance along X-axis to
center of circle
J Optional distance along Y-axis to
center of circle
K Optional distance along Z-axis to
center of circle What’s needed…
R Optional radius of circle 1) Plane selection
2) Arc start position coordinates
X Optional X-axis motion command 3) Rotation direction
Y Optional Y-axis motion command 4) Arc end position coordinates
Z Optional Z-axis motion command 5) Arc center coordinates or arc
radius.
A Optional A-axis motion command

Image courtesy Haas


(No cutter compensation – need to account for tool diameter)
N6 G01 Y1.25 F12. (to start point in Y axis)
N7 X1.500 (to start point in X axis)
N8 G02 X2.25 Y0.5 (I0. J-0.75 or R0.75) (G02 using I J or Radius )
N9 G01 Y-0.25

Image courtesy Haas


Images courtesy Haas
Method 1:
%
T01 M06 ;
...
G00 X4. Y2. ;
G01 F20.0 Z-0.1 ;
G03 F20.0 I-2.0 J0. X0. Y2. ; (see drawing) I-2.0 J=0 because Y
... does not change
M30 ; from start point
% to center of arc

Method 2:
%
T01 M06 ;
...
G00 X4. Y2. ;
G01 F20.0 Z-0.1 ;
G03 F20.0 X0. Y2. R2. ; (End point and radius)
...M30 ;
%

Image courtesy Haas


(No tool compensation – need to allow for tool diameter.)
N6 G01 Y-1.0 F12. (to start point in Y axis)
N7 X1.250 (to start point in X axis)
N8 G03 X0.750 Y-1.500 (I0. J-0.5 or R0.5) (G03 using I J or Radius)
N9 G01 Y-2.250

Image courtesy Haas


 Cutter compensation is used to offset the center of
the cutter, and shift it the distance of the radius, to
the specified side of the programmed path.
 Complex part geometries having angled lines, lines
tangent to arcs, and lines intersecting arcs involve
substantial trigonometric computations to determine
the center of the cutter.
 Cutter compensation involves programming the part
geometry directly instead of the tool center.

Prof. Steven S. Saliterman


1. G40 Cutter Compensation Cancel
1. G40 will cancel the G41 or G42 cutter compensation commands.
2. Programming D00 will also cancel cutter compensation.
3. Always cancel will moving away from the part.
2. G41 Cutter Compensation Left – Climb Cutting Standard Right Hand Tool – Use this for CNC
1. Tool is moving to the left of the programmed path to compensate for the
radius of the tool.
2. A Dnn must also be programmed to select the correct tool size from the Tool
Offset Register (D01= Diameter Offset #1, D2 = #2, etc .. )
3. The number to use with D is in the far-left column of the tool offsets table.
The value that the control uses for cutter compensation is in the GEOMETRY
column under D (if Setting 40 is DIAMETER) or R (if Setting 40 is RADIUS).

3. G42 Cutter Compensation Right – Conventional Cutting, Standard Right Hand Tool
1. Tool is moving to the right of the programmed path to compensate for the
size of the tool.
2. A Dnn must also be programmed to select the correct tool size from the Tool
Offset Register (D01= Diameter Offset #1, D2 = #2, etc .. )

Prof. Steven S. Saliterman


(Program without cutter compensation.)
N104 G00 X-2.5 Y-2.0
N105 G01 Z-0.45 F50.
N106 X-2.25 F12. (feed is in IPM)
N107 Y1.75
N108 G02 X-1.75 Y2.25 R0.5
N109 G01 X1.5
N110 G02 X2.25 Y1.5 R0.75
N111 G01 Y???? (Calculate point Y-1.25)
N112 X???? Y-2.25 (Calculate point X-.75)
N113 G01 X-1.75
N114 G02 X-2.25 Y-1.75 R0.5
N115 G01 X-2.35 Y-2.0
(Program with cutter compensation.
Dia. value for D01 would be .500
in DIAMETER offset register #1.)
N104 G00 X-2.35 Y-2.0
N105 G01 Z-0.45 F50.
N106 G41 X-2. D01 F12. (turn on C.C. with an X and/or Y move)
N107 Y1.75
N108 G02 X-1.75 Y2. R0.25
N109 G01 X1.5
N110 G02 X2. Y1.5 R0.5
N111 G01 Y-1.
N112 X-0.75 Y-2.
N113 X-1.75
N114 G02 X-2. Y-1.75 R0.25
N115 G40 G01 X-2.35 (turn off C.C. with an X and /or Y move)

Prof. Steven S. Saliterman Image courtesy Haas


O40006
(G54 X0 Y0 is at the lower left of part corner) ;
(Z0 is on top of the part) ;
(T1 is a .250 diameter of end mill) ;
(BEGIN PREPARATION BLOCKS) ;
T1 M06 (Select tool 1) ;
G00 G90 G40 G49 G54 (Safe startup) ;
X-1. Y-1. (Rapid to 1st position) ;
S1000 M03 (Spindle on CW) ;
G43 H01 Z0.1 (Tool offset 1 on) ;
M08 (Coolant on) ;
(BEGIN CUTTING BLOCKS) ;
G01 Z-1. F50. (Feed to cutting depth) ;
G41 G01 X0 Y0 D01 F50. (2D Cutter Comp left on) ;
Y4.125 (Linear motion) ;
G02 X0.25 Y4.375 R0.375 (Corner rounding) ;
G01 X1.6562 (Linear motion) ;
G02 X2. Y4.0313 R0.3437 (Corner rounding) ;
G01 Y3.125 (Linear motion) ;
G03 X2.375 Y2.75 R0.375 (Corner rounding) ;
G01 X3.5 (Linear motion) ;
G02 X4. Y2.25 R0.5 (Corner rounding) ;
G01 Y0.4375 (Linear motion) ;
G02 X3.4375 Y-0.125 R0.5625 (Corner rounding) ;
G01 X-0.125 (Linear motion) ;
G40 X-1. Y-1. (Last position, cutter comp off) ;
(BEGIN COMPLETION BLOCKS) ;
G00 Z0.1 M09 (Rapid retract, Coolant off) ;
G53 G49 Z0 M05 (Z home, Spindle off) ;
G53 Y0 (Y home) ; Circular Interpolation G02 and G03: [1]
M30 (End program) ; 0.250" diameter end mill, [2] Programmed
path, [3] Center of Tool, [4] Start Position, [5]
Offset Tool Path.

Prof. Steven S. Saliterman Image courtesy Haas


 G80 Cancels a canned cycle.
 G81 Drill
 G82 Spot drill
 G83 Peck drilling
 G84 Tap cycle

Prof. Steven S. Saliterman


Nl T1 M06
N2 G90 G54 00 X.3 Y.3
N3 S1200 M03
N4 G43 H01 Z1. M08
NS G81 Z-.6 R.1 F10.
N6 X1.2 Y1.2
N7 G80 G00 Z1. M09
N8 G28 G91 Z0. M05 F Feed Rate in inches (mm) per minute
N9 M30 R Position of the R plane
X Optional X-axis motion command
Y Optional Y-axis motion command
Z Position of bottom of hole

Prof. Steven S. Saliterman Image courtesy Haas


Nl T1 M06
N2 G90 G54 G00 X.3 Y.3
N3 S1200 M03
N4 G43 H01 Z1. M08
NS G82 Z-.125 P1.5 R.1 F10.
N6 X1.2 Y1.2
N7 G80 G00 Z1. M09
F Feed Rate in inches (mm) per minute
N8 G91 G28 Z0. M05
P The dwell time at the bottom of the
N9 M30 hole in seconds
R Position of the R plane
X Optional X-axis motion command
Y Optional Y-axis motion command
Z Position of bottom of hole

Prof. Steven S. Saliterman Image courtesy Haas


F Feed Rate in inches (mm) per minute
Optional size of first cutting depth
J Optional amount to reduce cutting
depth each pass
K Optional minimum depth of cut
Q The cut-in value, always incremental N1 T1 M06
R Position of the R plane N2 G90 G54 G00 X.3 Y.3
X Optional X-axis motion command N3 S1200 M03
Y Optional Y-axis motion command N4 G43 HO1 Z1. M08
Z Position of bottom of hole NS G83 Z-.6 Q.10 R.1 F10.
N6 X1.2 Y1.2
N7 G80 G00 Z1. M09
N8 G91 G28 Z0. M05
N9 M30

Prof. Steven S. Saliterman Image courtesy Haas


N1 T1 M06
N2 G90 G54 G00 X.3 Y.3
N3 S1200 (you do not need
to turn spindle on)
N4 G43 H01 Z1. M08
NS G84 Z-.85 R.1 F60.
N6 X1.2 Yl.2
N7 G80 G00 Z1. M09
N8 G91 G28 Z0. MO5
F Feed Rate in inches (mm) per minute
N9 M30
R Position of the R plane
X Optional X-axis motion command
Y Optional Y-axis motion command
Z Position of bottom of hole

Prof. Steven S. Saliterman Image courtesy Haas


 Commonly used for hole patterns. For example, the
subroutine may contain only the X-Y coordinates, while the
main program includes drilling, tapping and chamfering.
 M97 is local, with a P code defining the starting block line
number. (M98 is a separate program.)
 M99 returns you to the main program – the next line after
the subroutine was called.
 May contain an L (loop). If there is an Ln with the subroutine
call, it is repeated n times before the main program begins
with the next block.

Prof. Steven S. Saliterman


00300 (example local subroutine); M30 (end of main program);
T1 M06; N0500 (local subroutine example
G90 G54 G00 X.5 Y.5;
listing all hole positions);
S2000 M03;
G43 Z1.0 H01;
Xl.5;
G81 Z-0.1 R0.1 F20 (define canned cycle); X2.5;
M97 P0500 (call local subroutine using Y1. X2.;
sequence 500); X1.;
T02 M06 (peck drill); X0.5 Yl.5;
G90 G54 G00 X.5 Y.5; X1.5;
S1000 M03;
G43 Z1. H02 M08;
X2.5;
G83 R0.l Z-1. F10. (define canned cycle); G80 G00 Z1. M09;
M97 P0500 (call local subroutine using G91 G28 Z0. M05;
sequence number 500); M99 (end of local subroutine);
G28 Y0.;

Prof. Steven S. Saliterman


 Safety
 Coordinate system and work offset.
 Letter, “G” and “M” codes.
 Formulas.
 Safety line and sample program.
 Climbing vs. conventional milling.
 G commands:
◦ G00, G01, G02 and G03.
 Cutter compensation:
◦ G41, G42 and G40.
 Canned cycles:
◦ G81, G82, G83 and G84.
 Subroutines

Prof. Steven S. Saliterman


 Haas CNC Mill Operator 2014
 Haas CNC Mill Programming 2015
 Haas Mill Operator’s Manual 2016
 Haas Programming Workbook 2015
 Haas EBay Tutorials

Prof. Steven S. Saliterman

You might also like