Professional Documents
Culture Documents
Programacion de Milling Machine en Ingles PDF
Programacion de Milling Machine en Ingles PDF
Programming Guide
V3.3
December, 2007
Preface
Organization of documentation
1. General
2. Preparatory Function
3. Interpolation Function
4. Feed Function
5. Coordinate System
6. Spindle Speed Function
7. Tool Function
8. Miscellaneous Function
9. Functions to Simplify Programming
10. Comprehensive Programming Example
11. Custom Macro
Applicability
This Programming Guide is applicable to the following CNC system:
HNC-18iM/19iM v4.0
HNC-18xp/M
HNC-19xp/M
HNC-21MD/22MD v05.62.07.10
Internet Address
http://www.huazhongcnc.com/
Table of Contents
Preface .......................................................................................................................................... i
1 General ................................................................................................................................. 1
1.1 CNC Programming .................................................................................................... 2
1.2 Interpolation............................................................................................................... 4
1.2.1 Linear Interpolation ..................................................................................... 4
1.2.2 Circular Interpolation................................................................................... 4
1.2.3 Helical Interpolation .................................................................................... 5
1.3 Feed Function ............................................................................................................ 6
1.4 Coordinate System ..................................................................................................... 7
1.4.1 Reference Point ........................................................................................... 7
1.4.2 Machine Coordinate System ..................................................................... 8
1.4.3 Workpiece Coordinate System.................................................................. 9
1.4.4 Setting Two Coordinate Systems at the Same Position ...................... 10
1.4.5 Absolute Commands .................................................................................11
1.4.6 Incremental Commands ........................................................................... 12
1.4.7 Polar Coordinates ..................................................................................... 13
1.5 Spindle Speed Function ........................................................................................... 14
1.6 Tool Function ........................................................................................................... 15
1.6.1 Tool Selection............................................................................................. 15
1.6.2 Tool Offset .................................................................................................. 15
1.7 Miscellaneous Function ........................................................................................... 17
1.8 Program Configuration ............................................................................................ 18
1.8.1 Structure of an NC Program .................................................................... 18
1.8.2 Main Program and Subprogram.............................................................. 19
2 Preparatory Function (G code) ....................................................................................... 20
2.1 G code List ............................................................................................................... 21
3 Interpolation Functions ..................................................................................................... 24
3.1 Positioning (G00)..................................................................................................... 25
3.2 Single Direction Positioning (G60) ......................................................................... 26
3.3 Linear Interpolation (G01) ....................................................................................... 27
3.4 Circulation Interpolation (G02, G03) ...................................................................... 29
3.5 Helical Interpolation (G02, G03) ............................................................................. 35
3.6 Virtual Axis (G07) and Sine Interpolation ............................................................... 38
3.7 Tapping (G34) .......................................................................................................... 40
4 Feed Function .................................................................................................................... 43
4.1 Rapid Traverse (G00)............................................................................................... 44
4.2 Cutting Feed (G94, G95) ......................................................................................... 45
4.3 Dwell (G04) ............................................................................................................. 46
4.4 Exact Stop (G09, G61)............................................................................................. 47
4.5 Cutting Mode (G64) ................................................................................................ 49
5 Coordinate System ........................................................................................................... 51
5.1 Reference Position Return (G28) ............................................................................. 52
5.2 Auto Return from Reference Position (G29) ........................................................... 53
5.3 Setting a Workpiece Coordinate System (G92) ....................................................... 55
5.4 Selecting a Machine Cooridinate System (G53) ...................................................... 56
5.5 Selecting a Workpiece Coordinate System (G54~G59) ........................................... 57
5.6 Plane Selection (G17, G18, G19) ............................................................................ 59
5.7 Absolute and Incremental Programming (G90, G91) .............................................. 60
5.8 Dimension Selection (G20, G21, G22) .................................................................... 62
©2007 Wuhan Huazhong Numerical Control Co., Ltd ii
Table of Contents
5.9 Polar Coordinates..................................................................................................... 63
6 Spindle Speed Function ................................................................................................... 66
7 Tool Function ..................................................................................................................... 67
7.1 Tool Selection and Tool Offset (T code) .................................................................. 68
7.2 Tool Radius Compensation (G40, G41, G42) .......................................................... 69
7.3 Tool Length Compensation (G43, G44, G49).......................................................... 74
7.4 RTCP (Rotation Tool Center Point Programming) .................................................. 76
8 Miscellaneous Function.................................................................................................... 77
8.1 M code List .............................................................................................................. 78
8.2 CNC M-Function ..................................................................................................... 79
8.2.1 Program Stop (M00) ................................................................................. 79
8.2.2 Optional Stop (M01) .................................................................................. 79
8.2.3 End of Program (M02) .............................................................................. 79
8.2.4 End of Program with return to the beginning of program (M30)......... 79
8.2.5 Subprogram Control (M98, M99) ............................................................ 80
8.3 PLC M Function ...................................................................................................... 81
8.3.1 Spindle Control (M03, M04, M05) ........................................................... 81
8.3.2 Tool Selection (M06) ................................................................................. 81
8.3.3 Coolant Control (M07, M08, M09) .......................................................... 81
9 Functions to Simplify Programming ............................................................................... 82
9.1 Mirror Image (G24, G25) ........................................................................................ 83
9.2 Scaling (G50, G51) .................................................................................................. 86
9.3 Coordinate System Rotation (G68, G69) ................................................................. 88
9.4 Canned Cycles ......................................................................................................... 90
9.4.1 Return to the Initial Point/R point Level (G98, G99) ............................ 91
9.4.2 High-speed Peck Drilling Cycle (G73) ................................................... 92
9.4.3 Left-hand Tapping Cycle (G74) ............................................................... 94
9.4.4 Fine Boring Cycle (G76)........................................................................... 96
9.4.5 Drilling Cycle, Spot Drilling (G81) ........................................................... 98
9.4.6 Drilling Cycle, Counter Boring Cycle (G82) ......................................... 100
9.4.7 Peck Drilling Cycle (G83) ....................................................................... 102
9.4.8 Tapping Cycle (G84) ............................................................................... 104
9.4.9 Boring Cycle (G85) ................................................................................. 106
9.4.10 Boring Cycle (G86) ................................................................................. 108
9.4.11 Back Boring Cycle (G87).........................................................................110
9.4.12 Manual Boring Cycle (G88) ....................................................................112
9.4.13 Boring Cycle (G89) ..................................................................................114
9.4.14 Canned Cycle Cancel (G80)...................................................................115
9.5 Summary .................................................................................................................116
10 Custom Macro ......................................................................................................... 122
10.1 Variables ................................................................................................................ 123
10.1.1 Type of Variables ..................................................................................... 123
10.1.2 System Variables .................................................................................... 124
10.2 Constant ................................................................................................................. 131
10.3 Operators and Expression ...................................................................................... 132
10.4 Assignment ............................................................................................................ 133
10.5 Selection statement IF, ELSE,ENDIF .................................................................... 134
10.6 Repetition Statement WHILE, ENDW .................................................................. 135
10.7 Macro Call ............................................................................................................. 136
10.8 Example ................................................................................................................. 138
1 General
This chapter is to introduce the basic concepts in Computerized Numerical Control
(CNC) system: HNC-21M/22M, HNC-18iM/19iM, HNC-18xp/M, HNC-19xp/M.
1. Reading drawing
1
8
A 6 8
R
B 7
1
10
0
0
2. Programming
3. Inputting program
4. Manufacturing
Workpiece
1.2 Interpolation
Interpolation refers to an operation in which the machine tool moves along the
workpiece parts. There are five methods of interpolation: linear, circular, helical,
parabolic, and cubic. Most CNC machine can provide linear interpolation and
circular interpolation. The other three methods of interpolation (helical, parabolic,
and cubic interpolation) are usually used to manufacture the complex shapes, such
as aerospace parts.
tool
workpiece
tool
workpiece
Note:
In this manual, it is assumed that tools are moved against workpieces.
Tool Path
X Y
2nd
The other two axes’ feedrate
Tool
F
workpiece
Table
For example:
F150.0 //feed the tool at 150mm/min, while the workpiece makes one turn
Tool
workpiece
Table
M
Xm
Figure 1.7 Machine Coordinate System
+Y +B +Z '
+X +Y +Z
+Y +X'
+X
+C +A
+Z +A +B
+Y '
+C
+X
+Z
Y+
X-
Y- X+
Z-
P2
P1
60 P3
35
20 X
20
50
70
workpiece
X
X
Table
P2
P1
60 P3
35
20 X
20
50
70
P2
20 P1
P3
15
20 X
20 30 20
Example: Two points P1 and P2 with reference to the pole are described as follows.
Y
P2
P1
60
75°
100 30°
Pole
30
X
15
Table
1000 v
The formula to get the spindle speed is: N
D
N: the spindle speed
v: cutting speed
D: diameter value of the workpiece
Example: When the diameter of workpiece is 100mm, and the cutting speed is
1000 v 1000 80
80m/min, then the spindle speed: N 250r / m
D 100
The constant surface speed refers to the speed even when the workpiece diameter
is changed, and the CNC changes the spindle speed. At this time, the spindle speed
is the cutting speed.
Tool number
01
02
Length
Radius
Programmed contour
Figure 1.18 Difference between programmed contour and corrected tool path
When a move command and M code are specified in the same block, there are two
ways to execute these commands:
1) Pre-M function
M command is executed before the completion of move command
2) Post-M function
M command is executed after the completion of move command.
The sequence of the execution depends on the specification of the machine tool
builder.
%1000
N01 G91 G00 X50 Y60
N200 M30
Command character
Program block
Spindle function
Miscellaneous function
Feed Function
Coordinate - Dimension word
Preparatory function
Program block number
Instruction 1 Instruction 1
Instruction 2 Instruction 2
Instruction n
Instruction n+1
Note:
Main program and its subprogram must be written in a same file with a different
program codes.
3 Interpolation Functions
This chapter would introduce:
Function
The tool is moved at the highest possible speed (rapid traverse). If the rapid traverse
movement is required to execute simultaneously on several axes, the rapid traverse
speed is decided by the axis which takes the most time. Thus, the tool path is
nonlinear. The operator can use this function to position the tool rapidly, to travel
around the workpiece, or to approach the tool change position.
Example
Move tool from A (20, 15) to B (90, 45) at the rapid traverse speed.
Absolute programming:
G00 X90 Z45
Incremental programming:
G00 X70 Y30
Function
At first, move the tool from the start point to the intermediate point at the rapid
traverse speed. Then, tool is moved from the intermediate point to the end point at
the specified feedrate.
Overrun
intermediate point
Start position
Start position
Function
The tool is moved along the straight line at the specified feedrate.
Example 1
Move tool from A (20, 15) to B (90, 45) at the rapid traverse speed.
Y
linear interpolation B
45
A
15
X
O
20 90
Incremental programming
G01 X70 Y30 F800
10
A 60 80
R4
B
15 70
100
X, Y/X, Z/Y, Z For an absolute command, the coordinate values of the circle end
point in the specific working plane. For an incremental command, the coordinate
values of the circle end point with reference to the circle starting point in the specific
working plane.
X Z Y
Start Start Start
point point point
J I K
Centre I Centre K Centre J
Figure 3.6 Distance from the start point to the circle centre point
R Circle radius. When the arc is less than 180° (minor arc), R is
positive. If the arc is more than 180° (major arc), R is negative.
F Feedrate along the circle
Function
The tool is moved along a full circle or arcs.
Note:
1) When it is full circle programming, R can not be used in the program. I, J, K
can only be used in this case.
2) When it is not full circle programming, the operator can select R or I, J, K to
program. If I, J, K, and R addresses are all specified in the program, R takes
precedence and the other are ignored.
b Y
R30
End
a point
a
R30
Start point X
(i) Arc a
G91 G02 X30 Y30 R30 F300
G91 G02 X30 Y30 I30 J0 F300
G90 G02 X0 Y30 R30 F300
G90 G02 X0 Y30 I30 J0 F300
(ii) Arc b
G91 G02 X30 Y30 R-30 F300
G91 G02 X30 Y30 I0 J30 F300
G90 G02 X0 Y30 R-30 F300
G90 G02 X0 Y30 I0 J30 F300
R30
X
O A
R10
20
R20 R20
30
%3314
N1 G92 X0 Y0 Z50
N2 M03 S500
N3 G00 X10 Y30
N4 Z5
N5 G01 Z-3 F40
N6 X30
N7 G02 X38.66 Y25 R10
(N7 G02 X38.66 Y25 J-10)
N8 G01 X47.32 Y10
N9 G02 X30 Y-20 R20
(N9 G02 X30 Y-20 J-10 I-17.32)
N10 G01 X0
N11 G02 X0 Y20 R20
(N11 G02 X0 Y20 J20)
N12 G03 X10 Y30 R10
(N13 G03 X10 Y30 J10)
N14 G00 Z50
N15 X0 Y0
N16 M30
©2007 Wuhan Huazhong Numerical Control Co., Ltd 33
3. Interpolation Function
Example 4
Use the tool (Φ8) to machine a groove (3mm) on a workpiece.
20
R10
R20
%3315
N1 G92 X0 Y0 Z50
N2 M03 S500
N3 G00 X-25 Y-8.66
N4 Z5
N5 G01 Z-3 F40
N6 G02 X-25 Y8.66 R10
N7 G01 X-10 Y17.32
N8 G02 X-10 Y-17.32 R-20
N9 G01 X-25 Y-8.66
N10 G00 Z50
N11 X0 Y0
N12 M05
N13 M30
Tool Path
X Y
Example 1
Use G03 to program.
Z
End point
10
O
30 Y
30
Start point
X
Figure 3.12 Helical Interpolation – Example 1
Absolute programming
G90 G17 F300
G03 X0 Y30 R30 Z10
Incremental programming
G91 G17 F300
G03 X-30 Y30 R30 Z10
©2007 Wuhan Huazhong Numerical Control Co., Ltd 36
3. Interpolation Function
Example 2
Use the tool (Φ10mm) to machine a hole (the diameter is 50mm, and the height is
10mm) on a workpiece.
R25
10
%3317
N1 G92 X0 Y0 Z30
N2 G01 Z11 X20 F200
N3 G91 G03 I-20 Z-1 L11
N4 G03 I-20
N5 G90 G01 X0
N6 G00 Z30
N7 X30 Y-50
N8 M30
Function
G07 command can be used with helical interpolation command (G02, G03). The
operation combined G07 and G02/G03 is called sine interpolation.
Note
The tool would not be moved along the virtual axis.
Example 1
Use G03 to program
Y
100
50
Z
O 60
Y Y
10
R5
5
Z X
0 5 0
%3319
N01 G92 X0 Y0 Z0
N02 G07 Z0
N03 G19 G90 G03 Y.0 Z0 J5 K0 X20.0 F100
N04 G07 Z1
N05 M30
Function
With this command, the operator can rigid tap a thread.
Note
1) When the spindle turns clockwise during tapping, the spindle would turn
counterclockwise during retraction.
2) When the spindle turns counterclockwise during tapping, the spindle would
turn clockwise during retraction.
In general, there is overshoot of the tap at the bottom of the thread during the
spindle-braking portion of the tapping cycle. It can be set by PMC parameters (Table
3-1) to eliminate the overshoot errors.
Optional dwell unit for tapping is only effective when “dwell unit for tapping” is
assigned to “0”. Moreover, it is not necessary to restart the system.
20
12
20 80
%0002
G92 X-20 Y-20 Z50
M03 S200
G00 X20 Y12
Z5
G34 K-27 F1.5
G00 X100
G34 K-27 F1.5
G00 Z50
X-20 Y-20
M05
M30
4 Feed Function
This chapter would introduce:
1) Rapid Traverse
The tool is moved at the rapid traverse speed set in CNC.
2) Cutting Feed
The tool is moved at the programmed cutting feedrate.
3) Dwell
4) Exact Stop
5) Cutting Mode
This rapid traverse speed can be controlled by the machine control panel. For more
detailed information, please refer to turning operation manual.
Note:
1) G94 is the default setting
2) G95 is only used when there is spindle encoder.
Function
The feedrate can be set by G94 or G95.
Function
It can be used to interrupt machining to get the smooth surface. It can be used to
control the groove cutting, drilling, and turning path.
Example
Use G04 to get the smooth surface.
Z
X
2
%0004
G92 X0 Y0 Z0
G91 F200 M03 S500
G43 G01 Z-6 H01
G04 P5
G49 G00 Z6 M05 M30
(1)
Figure 4.2 Exact Stop (G09/G61) – tool path from block (1) to block (2)
The difference between G09 and G61 is that G09 is one-shot G code. And G61 is
modal G code.
Function
G09 or G61 can be used to machine a sharp edge.
100
30
20
X
50 150
(1)
O X
Figure 4.4 Cutting Mode (G64) – tool path from block (1) to block (2)
Function
G64 command can make the tool move smoothly between two blocks.
Actual
tool path
30
20
X
50 150
9
Figure 4.5 Cutting Mode – Example
%0064
G92 X0 Y0 Z0
G91 G00 G43 Z-10 H01
G41 X50 Y20 D01
G01 G64 Y80 F300
X100
…
5 Coordinate System
This chapter would introduce:
1) Reference Position Return (G28)
2) Auto Return from Reference Position (G29)
3) Setting a Workpiece Coordinate System (G92)
4) Selecting a Machine Coordinat System (G53)
5) Selecting a Workpiece Coordinate System (G54~G59)
6) Plane Selection (G17, G18, G19)
7) Absolute and Incremental Programming (G90, G91)
8) Dimension Selection (G20, G21, G22)
9) Polar Coordinates (G38)
Function
The tool is moved to the intermediate point rapidly, and then returned to the
reference point.
R(Reference position)
B(Intermediate position)
Function
The tool is moved rapidly from the intermediate point defined in G28 to the end point.
Thus, G29 is generally used after G28 is defined.
R(Reference position)
B(Intermediate position)
Note:
G29 is one-shot G code.
B
70 Intermediate point
A
50
30 C
X
30 130 180
10
Figure 5.3 Reference Position – Example
…
G91 G28 X100 Y20 ;A→B→R
M06 T02 ;Changing the tool
G29 X50 Y-40 ;R→B→C
…
Functions
G92 can set a workpiece coordinate system based on the current tool position (X_
Y_ Z_ A_ ).
Example
Use G92 to set a workpiece coordinate system.
Z
20.0
Y
30.0
X 30.0
Function
A machine coordinate system is selected, and the tool moves to the position at the
rapid traverse speed.
Note:
1) Absolute values must be specified in G53. The incremental values would be
ignored by G53.
2) G53 is one-shot G code.
Function
There are six workpiece coordinate system to be selected. If one coordinate system
is selected, the tool is moved to a specified point.
Note:
1) The workpiece coordinate system must be set before using these
commands (G54~G59). The workpiece coordinate system can be set by
using the MDI panel. For detailed information, please refer to the milling
operation manual.
2) Reference position must be returned before these commands (G54~G59)
are executed.
3) G54 is the default setting.
Y
30 B
Y
40 A
G59
-63.948
G54 O2 30 X
-98.359
O1 30 X
Figure 5.5 Workpiece Coordinate System – Example
%1000
N01 G54 G00 G90 X30 Y40
N02 G59
N03 G00 X30 Y30
N04 G54
N05 X0 Y0
N06 M30
Function
The working plane is specified and used for tool radius compensation and circular
interpolation.
Note:
Move command is not related with the plane selection. For example, in the
command G17 G01 Z10, Z axis does still move.
Function
The tool is moved to the specified position.
25 3
15 1
X
O 20 40 60
G90 programming
%0001
M03 S500
N01 G92 X0 Y0 Z10
N02 G01 X20 Y15
N03 X40 Y45
N04 X60 Y25
N05 X0 Y0 Z10
N06 M30
G91 programming
%0001
M03 S500
N01 G92 X0 Y0 Z10
N02 G91 G01 X20 Y15
N03 X20 Y30
N04 X20 Y-20
N05 G90 X0 Y0
N06 M30
Function
Depending on the part drawing, the workpiece geometries can be programmed in
metric measures, inches, or impulses equivalent weight.
Function
The polar coordinate method is useful only if there is radius and angle
measurements on a workpiece.
Note
These commands can be used with commands of workpiece coordinate system.
R42
50
84
%3326
G92 X0 Y0 Z10
G00 X-50 Y-60
G00 Z-3
G01 G41 X-42 D01 F1000
Y0
G38 X0 Y0
G02 AP=0 RP=42 R42
G01 Y-50
X-50
G00 G40 Y-60
Z10
G00 X0 Y0
M30
50
42
%0001
G54 G00 X-15 Y-15 Z10
G00 Z-3
G01 G41 X0 D01 F1000
Y50
G38 X42 Y50
#0=180
#1=42
while #0 gt 0
G01 AP=[#0] RP=[#1]
#0=#0-10
#1=#1+2
Endw
G01 AP=0 RP=78
Y0
X-15
G00 G40 Y-15
Z10
M30
7 Tool Function
This chapter would introduce:
1) Too selection and Tool offset (T code)
2) Tool radius compensation (G40, G41, G42)
Functions
To select the desired tool, T command makes the turret turn, selects a cutter, and
calls the compensation value.
Note:
1) T command is only effective when it is used with tool move command, such
as G00.
2) When T command and tool move command are in the same program block,
T command is executed at first.
3) The same tool can have different compensation values. For example,
T0101, T0102, T0103 are possible.
4) Different tool can have same compensation values. For example, T0101,
T0201, and T0301 are possible.
G17 G 40
G 00
G18 G 41 X_ Y_ Z_ D_
G19 G 42 G 01
cutter’s
rotation cutter’s cutter’s
direction move cutter’s
move
rotation
direction direction
direction
Note:
1) G40, G41, and G42 must be used with G00 or G01.
2) Changing the plane of tool radius compensation can only be done when
there is no compensation.
%3322
G92 X10 Y10 Z50
G90 G17
G42 G00 X4 Y10 D01
Z2 M03 S900
G01 Z-10 F800
X30
G03 X40 Y20 I0 J10
G02 X30 Y30 I0 J10
G01 X10 Y20
Y5
G00 Z50 M05
G40 X10 Y10
M02
R10
20
R20 R20
30
%3323
N1 G92 X-40 Y50 Z50
N2 M03 S500
N4 G01 Z-3 F400
N5 G01 G41 X5 Y30 D01 F40
N6 X30
N7 G02 X38.66 Y25 R10
(N7 G02 X38.66 Y25 J-10)
N8 G01 X47.32 Y10
N9 G02 X30 Y-20 R20
(N9 G02 X30 Y-20 I-17.32 J-10)
N10 G01 X0
N11 G02 X0 Y20 R20
(N11 G02 X0 Y20 J20)
N12 G03 Y40 R10
(N12 G03 Y40 J10)
N13 G00 G90 G40 X-40 Y50
N14 G00 Z50
N15 M30
R10
60
80
10
15 70
100
G17 G 43
G 00
G18 G 44 X_Y_Z_H_
G19 G 49 G 01
Function
These command can compensate the difference between the assumed tool length in
the programming and the actual tool length.
Tool assumed during Actual tool
programming
#1
20 #3
⑥
30
Y ⑨
①
#2
13
30
X
120 30 50
Z
length offset
= 4mm
X
30 18 ③ ⑤ ⑩ 22
④ ⑦ ⑧
11
control
point tool length
Tool
center
point programming path
G43, G44, G49 can also be used for the tool length compensation.
8 Miscellaneous Function
As it is mentioned in Chapter 1.8, there are two ways of execution when a move
command and M code are specified in the same block.
1) Pre-M function
M command is executed before the completion of move command.
2) Post-M function
M command is executed after the completion of move command
There are two types of M code: one-shot M code, and modal M code.
Table 8-1 Type of M code
Type Meaning
One-shot M The M code is only effective in the block in which it is
code specified
Modal M code The M code is effective until another M code is specified.
◣: default setting
M01 button ( ) on the machine control panel. Otherwise, the program would not
be stopped even if there is M01 code in the program.
Function
These commands can be used to mirror workpiece shapes on coordinate axes.
Mirror X Y
X
Mirror Y
Note
When there is only one axis of symmetry, the movement of tool for the mirror image
is opposite to the tool movement of origin image.
② ①
10
X
-30 -10 10 30
-10
③ ④
-30
Function
This command enables the size of a shape to be changed.
Note
Scaling is not applicable to the tool compensation. When the operator use the tool
compensation function in the program, the machine would execute the scaling
before calculating the tool offset value.
©2007 Wuhan Huazhong Numerical Control Co., Ltd 86
9. Functions to Simplify Programming
Example
Use the scaling function to scale down a triangular ΔABC to ΔA’B’C’. The center
point of scaling is D point (50, 50). The scaling magnification is 0.5. The starting
point of tool is 50mm away from the workpiece.
C(50, 110)
Y
16 C’
D
A’ B’
B (90, 30)
A(10, 30)
X
Z
10
6
X
%100 ;Subprogram(ΔABC)
N100 G42 G00 X-44 Y-20 D01
N120 Z[-#51]
N150 G01 X84
N160 X-40 Y80
N170 X44 Y-88
N180 Z[#51]
N200 G40 G00 X44 Y28
N210 M99
Function
These command can rotate a programmed shape at a specified angle.
Note
1) Coordinate system rotation command is not applicable to the tool
compensation function. The system would rotate the coordinate system
before executing the tool offset function.
2) When coordinate system rotation command is used with scaling function,
scaling is proceeded before the rotation command.
Y’ 20
20
45° ① X
O 20 10
10
Figure 9.5 Coordinate System Rotation – Example
%0068 ; Main program
N10 G92 X0 Y0 Z50
N15 G90 G17 M03 S600
N20 G43 Z-5 H02
N25 M98 P200 ; Machining ①
N30 G68 X0 Y0 P45 ; Rotation degree 45°
N40 M98 P200 ; Machining ②
N60 G68 X0 Y0 P90 ; Rotation degree 90°
N70 M98 P200 ; Machining ③
N20 G49 Z50
N80 G69 M05 M30 ; Rotation cancel
%200 ; Subprogram (①)
G41 G01 X20 Y-5 D02 F300
N105 Y0
N110 G02 X40 I10
N120 X30 I-5
N130 G03 X20 I5
N140 G00 Y-6
N145 G40 X0 Y0
N150 M99
©2007 Wuhan Huazhong Numerical Control Co., Ltd 89
9. Functions to Simplify Programming
Operation 1
Initial level
Operation 2
Operation 6
Point R level
Operation 3 Operation 5
Rapid traverse
Operation 4
Feed
G98
G_ X_ Y_ Z_ R_ Q_ P_ I_ J_ K_ F_ L_
G99
Function
Generally, G99 is used for the first drilling operation. G98 is used for the last drilling
operation.
G98(Return to initial level) G99(Return to point R level)
Initial level
Point R level
G98
G73 X_ Y_ Z_ R_ Q_ P_ K_ F_ L_
G99
Initial level
q q
k k
q G98 q G99
k k
q q
P P
Point Z Point Z
Note
1) If the value of Z/K/Q is zero, G73 would not be performed.
2) |Q|>|K|
Example
Use a tool (Φ10) to drill a hole.
Y
25
X
Z 20 40
35
%3337
N10 G92 X0 Y0 Z80
N15 M03 S700
N20 G00 Y25
N30 G98G73G91X20G90R40P2Q-10K2Z-3L2F80
N40 G00 X0 Y0 Z80
N45 M30
G98
G74 X_ Y_ Z_ R_ P_ F_ L_
G99
Function
G74 command can create a reverse thread. Tapping is performed by turning the
spindle counterclockwise. Then, the spindle turns clockwise for retraction when the
tool reaches the bottom of the hole.
G98 G99
Initial level
Spindle Spindle
CCW CCW
Point R Point R Point R level
P Point Z P Point Z
Spindle CW Spindle CW
The default setting is Z-axis tapping. To set the C-axis tapping, M29 is used (M29 is
modal M code). The format of setting the C-axis tapping is as follows:
M29 ; C-axis tapping is set as rigid tapping mode
G74xx xxxxx ; C-axis tapping is performed
Example
Use the tool (M10 1) for the left-hand tapping.
Y
X
50
Z
35
X
M10 1
Figure 9.11 Left-hand Tapping – Example
%3339
N10 G92 X0 Y0 Z80 F200
N15 M04 S300
N20 G98G74X50Y40R40P10G90Z-5F1
N30 G00 X0 Y0 Z80
N40 M30
G98
G76 X_ Y_ Z_ R_ P_ I_ J_ F_ L_
G99
G98
Point R Point R G99
P Point Z P Point Z
Example
Use the tool to bore a hole on a workpiece.
Y
30
15
X
20 40
Z
35
X
Figure 9.13 Fine Boring Cycle – Example
%3341
N10 G54
N12 M03 S600
N15 G00 X0 Y0 Z80
N20 G98G76X20Y15R40P2I-5Z-4F100
N25 X40Y30
N30 G00 G90 X0 Y0 Z80
N40 M30
G98
G81 X_ Y_ Z_ R_ F_ L_
G99
Function
G81 command can be used to drill a hole. The tool is moved at the cutting feedrate
when it is drilling a hole. Then, the tool is moved at the rapid traverse speed when it
is retracting from the bottom of the hole.
Initial level
G98 Point R
Point R Point R level
G99
Point Z Point Z
Note
30
15
X
20 40
Z
15
X
Figure 9.15 Drilling Cycle, Spot Drilling - Example
%3343
N10 G92 X0 Y0 Z80
N15 M03 S600
N20 G98G81G91X20Y15G90R20Z-3P2L2F200
N30 G00 X0 Y0 Z80
N40 M30
G98
G82 X_ Y_ Z_ R_ P_ F_ L_
G99
Function
G82 command can be used to drill a counter bore or a blind bore.
Initial level
Point Z
Note
If the value of Z is zero, G82 would not be performed.
Z 90°
35
X
Φ12
%3345
N10 G92 X0 Y0 Z80
N15 M03 S600
N20 G98G82G90X25Y30R40P2Z25F200
N30 G00 X0 Y0 Z80
N40 M30
Initial level
G98
Point R Point R Point R level
G99
q k q k
k k
q q
q q
Point Z Point Z
Note
If the value of Z/Q/K is zero, G83 would not be performed.
Example
Use the tool (Φ10) to drill a hole.
Y
X
20 40
Z
35
X
Figure 9.19 Peck Drilling Cycle – Example
%3347
N10 G55 G00 X0 Y0 Z80
N15 Y25
N20 G98G83G91X20G90R40P2Q-10K5G91Z-43F100L2
N30 G90 G00 X0 Y0 Z80
N40 M30
©2007 Wuhan Huazhong Numerical Control Co., Ltd 103
9. Functions to Simplify Programming
Function
G84 command is used for tapping. When the tool has reached the bottom of the hole,
it is retracted in the reverse direction.
Initial level
Spindle CW
Spindle CW Spindle CW Spindle CW
Point R level
Point R G98 Point R G99
P Point Z P Point Z
Example
Use the tool (M10 1) to drill a hole.
Y
X
50
Z
35
%3349
N10 G92 X0 Y0 Z80
N15 M03 S300
N20 G98G74G91X50Y40G90R38P3G91Z-40F1
N30 G90 G0 X0 Y0 Z80
N40 M30
G98
G85 X_ Y_ Z_ R_ F_ L_
G99
Initial level
Point Z
Function
G85 command is used to bore a hole, which is not required the precise boring.
Note
If the value of Z is zero, G85 would not be performed.
15
X
20 40
Z
15
X
Figure 9.23 Boring Cycle – Example
%3351
N10 G92 X0 Y0 Z80
N15 M03 S600
N20 G98G85G91X20Y15R-42P2Z-40L2F100
N30 G90 G00 X0 Y0 Z80
N40 M30
G98
G86 X_Y_Z_R_F_L_
G99
Point R level
Point R G98 Point R G99
Point Z Point Z
Function
G86 command is used to bore a hole, which is not required the precise boring.
Note
If the value of Z is zero, G86 would not be performed.
Example
Use the reamer to bore a hole.
Y
15
X
20 40
Z
15
X
Figure 9.25 Boring Cycle – Example
%3353
N10 G92 X0 Y0 Z80
N15 G98G86G90X20Y15R38Q-10K5P2Z-2F200
N20 X40 Y30
N30 G90 G00 X0 Y0 Z80
N40 M30
Function
G87 command is used to bore a hole.
Shift amount
Spindle CW
G98
Point Z
P
Spindle CW
Point R
Example
Use the reamer to bore a hole (Φ28).
15
X
20 40
2*Φ20
Z
35
20
X
2*Φ28
%3355
N10G92 X0 Y0 Z80
N15M03 S600
N20G00 Y15 F200
N25G98G87G91X20I-5R-83P2Z23L2
N30G90 G00 X0 Y0 Z80 M05
N40M30
G98
G88 X_ Y_ Z_ R_ P_ F_ L_
G99
Point Z Point Z
P P
Spindle stop Spindle stop
after dwell after dwell
Function
G88 command can be used to bore a hole precisely. The main difference is that the
tool is returned to the initial point or the point R in the manual mode key (on the
machine control panel).
Example
Use the reamer to bore a hole.
Y
15
X
20 40
Z
15
X
Figure 9.29 Manual Boring Cycle – Example
%3357
N10 G54
N12 M03 S600
N15 G00 X0 Y0 Z80
N20 G98G88G91X20Y15R-42P2I-5Z-40L2F100
N30 G00 G90 X0 Y0 Z80
N40 M30
G98
G89 X_ Y_ Z_ R_ P_ F_ L_
G99
Initial level
P Point Z P Point Z
Function
G89 command is used to bore a hole.
Note
If the value of Z is zero, G89 would not be performed.
Function
G80 is used to cancel a canned cycle.
9.5 Summary
In summary, five points should be noted when using the canned cycle.
1) Use M03/M04 to rotate the spindle before the canned cycle starts
2) One of the parameters (X, Y, Z, R) must be used in the canned cycle
command.
3) When using G74, G84, or G86 command, G04 command can be used in
the canned cycle to insure that the spindle is reached the appropriate
speed.
4) G00~G03 can also be used to cancel the canned cycle. When G00~G03
and the canned cycle command are in the same block, the execution
depends on the sequence of these commands.
5) If M is specified in the canned cycle, the cycle only starts working after
sending M signal is done.
50
40
40 40 40 40
22
12
14
14
56
14
R10 12
14 14 14 14
80
%3360
G92 x-20 y-20 z100
M03 S500
N1 M06 T01
G00 G43 Z-23 H01
G01 G41 X0 Y-8 D01 F100
Y42
X7 Y56
X80
Y12
G02 X70 Y0 R10
G01 X-10
G00 G40 X-20 Y-20
G49 Z100
N2 M06 T2
G00 G43 Z-10 H02
©2007 Wuhan Huazhong Numerical Control Co., Ltd 118
9. Functions to Simplify Programming
X5 Y-10
G01 Y66 F100
X19
Y-10
X20
Y66
G00 G49 Z100
G00 X-20 Y-20
N3 M06 T03
G00 G43 Z10 H03
G98 G73 X14 Y26 Z-23 R-6 Q-5F50
G99 G73 X42 Y40 Z-23 R4 Q-5F50
G99 G73 X42 Y12 Z-23 R4 Q-5F50
G98 G73 X56 Y26 Z-23 R4 Q-5F50
G00 G49 Z100
X-20 Y-20
M05
M30
22
12
Iron pad
10 13 23
14
56
R8
14
14
22 36
80
%3361
G92 x-20 y-20 z100
M03 S500
N1 M06 T01
G00 G43 Z-23 H01
G01 G41 X0 Y-8 D01 F100
Y56
X80
Y0
X-10
G00 G40 X-20 Y-20
G49 Z100
N2 M06 T2
G00 G43 Z-10 H02
10 Custom Macro
Similarly to subprogram, the custom macro function allows operators to define their
own program. The way of calling the custom macro is same as subprogram’s.
The difference is that custom macro allows use of variables, arithmetic and logic
operations, selection and repetition.
10.1 Variables
Format and Explanation
#_ Variable is composed of a number sign (#) and a number.
Example
#1
#1=#2+100
Note:
1) The operator can only use the #0~#599 local variables for programming.
2) Variables after #599 can only be used by the system programmer for reference.
10.2 Constant
PI π, 3.14151926
TRUE True condition
FALSE False condition
2) Conditional operator
EQ(=), NE(≠), GT(>), GE(≥), LT(<), LE(≤)
3) Logic operator
AND, OR, NOT
4) Function
SIN Sine
COS Cosine
TAN Tangent
ATAN Arctangent
ATAN2 Arctangent2
ABS Absolute value
INT Integer
SIGN Sign
SQRT Square root
EXP Exponential function
5) Expression
The expressions are composed of constants, operators and variables.
Example:
175/SQRT[2] * COS[55 * PI/180 ];
#3*6 GT 14;
10.4 Assignment
Assignment refers to assign a variable value to a constant or expression.
Format:
Variable=constant or expression
Example
#2 = 175/SQRT[2] * COS[55 * PI/180]
#3 = 124.0
Explanation (i)
If the specified conditional expression is satisfied, the statements between IF and
ELSE are executed. If the specified conditional expression is not satisfied, the
statements between ELSE and ENDIF are executed.
Format (ii)
IF Conditional expression
…
ENDIF
Explanation (ii)
If the specified conditional expression is satisfied, the statements between IF and
ENDIF are executed. If the specified conditional expression is not satisfied, the
system would proceed to the blocks after ENDIF.
Explanation
When the conditional expression is satisfied, the statements between WHILE and
ENDW are executed. If the conditional expression is not satisfied, the system would
proceed to the blocks after ENDW.
10.8 Example
Example 1
Use the tool (Φ10) to machine a frustum of a cone and an inclined plane. The
included angle between the frustum of a cone and an incline plane is 10. The first
time of finishing amount is 1mm, and the second time of finishing amount is 3mm.
Y
175 X
10
Z
10
10
%8002
#10=10.0 ; Height of column
#11=10.0 ; Height of square
#12=124.0
#13=124.0
N01 G92 X0.0 Y0.0 Z0.0
N05 G00 Z10.0
#0=0
N06 G00 X[#12] Y[#13]
N07 Z[#10] M03 S600
WHILE #0 LT 3 ; Column machining
N[08+#0*6] G01 G42 X[#12/2] Y[175/2] F280.0 D[#0+1]
N[09+#0*6] X[0] Y[175/2]
N[10+#0*6] G03 J[175/2]
N[11+#0*6] G01 X[#12/2] Y[175/2]
©2007 Wuhan Huazhong Numerical Control Co., Ltd 138
10. Custom Macro
N[12+#0*6] G40 X[#12] Y[#13]
N[13+#0*6] G00 X[-#12] Y[#13]
#0=#0+1
ENDW
N100 Z[-#10-#11]
#2=175/SQRT[2]*COS[55*PI/180]
#3=175/SQRT[2]*SIN[55*PI/180]
#4=175*COS[10*PI/180]
#5=175*SIN[10*PI/180]
#0=0
WHILE #0 LT 3 ; Square machining
N[101+#0*6] G01 G90 G42 X[#2] Y[#3] F280.0 D[#0+1]
N[102+#0*6] G91 X[+#4] Y[+#5]
N[103+#0*6] X[#5] Y[+#4]
N[104+#0*6] X[#4] Y[#5]
N[105+#0*6] X[+#5] Y[#4]
N[106+#0*6] G00 G90 G40 X[#12] Y[#13]
#0=#0+1
ENDW
G00 X0 Y0 M05
M30
%0001
#0=5 ; the radius of tool
#1=20 ; the value of a
#2=10 ; the value of b
#3=0 ; the value of α
N1 G92 X0 Y0 Z10
N2 G00 X[2*#0+#1] Y[2*#0+#2]
N3 G01 Z0
N4 G41 X[#1]
N5 WHILE #3 GE [-360]
N6 G01 X[#1*COS[#3*PI/180]] Y[#2*SIN[#3*PI/180]]
N7 #3=#3-5
ENDW
G01 G91 Y[-2*#0]
G90 G00 Z10
G40 X0 Y0
M30
%0027
N1 G92 X0 Y0 Z30
N2 MO3 S500
N3 G01 Z11 X19.178 F1200
N4 #0=58.376/2-10+0.3
WHILE #0 LE 20
N5 G91 G03 I[-#0] Z-1.5 L8
N6 G90 G01 X0
N7 Z11
N8 #0=#0+0.2
N9 G01 X[#0]
N10 ENDW
N11 G01 X20
N12 G91 G03 I-20 Z-1.5 L8
N13 G90 G00 X0
N14 G00 Z30
N15 X30 Y-50
N16 M30
Z
R5
15
30
X
R6
X
40 30
%0001
G92 X-30 Y-30 Z25 ; the tool is at the center of the circle.
#0=5 ; the radius of fillet surface
#1=4 ; the radius of the tool
#2=180 ; the value of γ, the unit is degree.
WHILE #2 GT 90
G01 Z[25+[#0+#1]*SIN[#2*PI/180]] ; the height on Z axis
#101=ABS[[#0+#1]*COS[#2*PI/180]]-#0 ; the radius offset
G01 G41 X-20 D101
Y14
G02 X-14 Y20 R6
G01 X14
G02 X20 Y14 R6
G01 Y-14
G02 X14 Y-20 R6
G01 X-14
G02 X-20 Y-14 R6
G01 X-30
G40 Y-30
#2=#2-10
ENDW
M30