1 G 代码组及其含义
“模态代码” 的功能在它被执行后会继续维持,而 “一般代码” 仅仅在收到该命令
时起作用。定义移动的代码通常是“模态代码”,像直线、圆弧和循环代码。反之,像原点
返回代码就叫“一般代码”。
每一个代码都归属其各自的代码组。在“模态代码”里,当前的代码会被加载的同组代
码替换。
[表 5.2-1] G 代码组及解释
( 带 * 者表示是开机时会初始化的代码。)
2 G 代码解释
快速定位(G00)
1. 格式
这个命令把刀具从当前位置移动到命令指定的位置 (在绝对坐标方式下), 或者移动到
某个距离处 (在增量坐标方式下)。
2. 非直线切削形式的定位
我们的定义是:采用独立的快速移动速率来决定每一个轴的位置。刀具路径不是直线,
根据到达的顺序,机器轴依次停止在命令指定的位置。
3. 直线定位
刀具路径类似直线切削(G01) 那样,以最短的时间(不超过每一个轴快速移动速率)定
位于要求的位置。
图5.2-1
4. 举例
N10 G00 X-100 Y-100 Z65
直线切削进给(G01)
1. 格式
这个命令将刀具以直线形式,按F代码指定的速率,从它的当前位置移动到程序要求的
位置。F 的速率是程序中指定轴速率的复合速率。
图5.2-2
2. 举例
G01 G90 X-50. F100;或
G01 G91 X30. F100;
G01 G90 X-50. Y30. F100;或
G01 G91 X30. Y15. Z0 F100;
G01 G90 X-50. Y30. Z15. F100;
圆弧切削 (G02/G03 G17/G18/G19)
1. 格式
圆弧所在的平面用G17, G18 和G19 指令来指定。但是,只要已经在先前的程序块里定
义了这些命令,也能够省略。圆弧的回转方向像下图表示那样,由 G02/G03 来指定。在圆弧回转方向指定后,指派切削终点坐标。 G90 是指定在绝对坐标方式下使用此命令;而 G91
是在指定在增量坐标方式下使用此命令。另外,如果G90/G91 已经在先前程序块里给出过,
可以省略。圆弧的终点用包含在命令施加的平面里的两个轴的坐标值指定 ( 例如,在 XY
平面里,G17 用 X, Y 坐标值 ) 。 终点坐标能够像 G00 和 G01 命令一样地设置。圆弧中
心的位置或者其半径应当在设定圆弧终点之后设置。圆弧中心设置为从圆弧起点的相对距
离,并且对应于 X,Y 和Z 轴表示为 I、 J 和 K。圆弧中心坐标值减去圆弧起点坐标值得
到的结果对应分配给 I、J、K。
2. 举例
图5.2-3
圆弧起点的 X 坐标值 ------------ 30.
圆弧中心的 X 坐标值 ------------ 10.
因此,“I” 就是 -20. (10 - 30 = -20)
圆弧起点的 Y 坐标值 ------------ 10.
圆弧中心的 Y 坐标值------------ 5.
因此,“J” 就是 -5. (5–10=-5)
结果,这个情况下圆弧编程指令如下所列:
G17 G03 G90 X5. Y25. I-20. J-5.;或者,
G17 G03 G91 X-25. Y15. I-20. J-5.;
或圆弧半径编程指令:
G17 G03 G90 X5. Y25. R20.616.;或者,
G17 G03 G91 X-25. Y15. R20.616;
注意 1)把圆弧中心设置为 “I”, “J” 和 “K”时,必须设置为圆弧起点到圆弧中心的
增量值。
注意 2)命令里的“I0”, “J0” 和 “K0” 可以省略。偏移值指定要求。
自动原点返回 (G28/G30)
1. 格式
第一原点返回:
第二、三和四原点返回:
#P2, P3, P4: 选择第二、第三和第四原点返回(如果被省略,系统自动选择第二原点返
回)。
由 X, Y 和 Z 设定的位置叫做中间点。机床先移动到这个点,而后回归原点。省略了
中间点的轴不移动;只有在命令里指派了中间点的轴执行其原点返回命令。在执行原点返回
命令时,每一个轴是独立执行的,这就像快速移动命令(G00)一样; 通常刀具路径不是直
线。因此,要求对每一个轴设置中间点,以免机床在原点返回时与工件碰撞等意外发生。
2. 举例
图5.2-4
G28 (G30) G90 X150. Y200.;或者
G28 (G30) G91 X100. Y150.;
注意:在所给例子里, 去中间点的移动就像下面的快速移动命令一样。
G00 G90 X150. Y200.;或者
G00 G91 X100. Y150.;
如果中间点与当前的刀具位置一致(例如,发出的命令是 - G28 G91 X0 Y0 Z0;),机
床就从其当前位置返回原点。如果是在单程序块方式下运行,机床就会停在中间点;当中间
点与当前位置一致,它也会暂时停在中间点(即,当前位置)。
刀具半径偏置功能 (G40/G41/G42)
1. 格式
当处理工件 (“A”) 时,就像下图所示,刀具路径 (“B”) 是基本路径,与工件
(“A”)的距离至少为该刀具直径的一半。此处,路径 “B” 叫做由 A 经 R 补偿的路径。
因此,刀具半径偏置功能自动地由编程给出的路径 A 以及由分开设置的刀具偏置值,计算
出补偿了的路径B。就是说,用户能够根据工件形状编制加工程序,同时不必考虑刀具直径。
因此,在真正切削之前把刀具直径设置为刀具偏置值;用户能够获得精确的切削结果,就是
因为系统本身计算了精确补偿的路径。
图5.2-5
在编程时用户只要插入偏置向量的方向 (举例说, G41:左侧, G42: 右侧)和偏置地
址 (例如, D2: 在“D” 后面是从 01 到 32 的两位数字)。所以用户只要输入偏移号码 D
(根据 MDI),只不过是由精确计算刀具直径得出的半径。
2. 偏置功能
表5.2-1
刀具长度偏置 (G43/G44/G49)
1. 格式
2. 偏置功能
首先用一把铣刀作为基准刀,并且利用工件坐标系的 Z 轴,把它定位在工件表面上,
其位置设置为 Z0。 ( 见 G92:坐标系设置)
请记住,如果程序所用的刀具较短,那么在加工时刀具不可能接触到工件,即便机床移
动到位置 Z0。反之,如果刀具比基准刀具长,有可能引起与工件碰撞损坏机床。为了防止
出现这种情况,把每一把刀具与基准刀具的相对长度差输入到刀具偏置内存,并且在程序里
让机床执行刀具长度偏置功能。
表5.2-2
在设置偏置的长度时,使用正/负号。如果改变了 (+/-) 符号, G43 和 G44 在执行时
会反向操作。因此,该命令有各种不同的表达方式。举例说:
首先,遵循下列步骤测量刀具长度:
1.把工件放在工作台上。
2.更换要测量的刀具
3.调整基准刀具轴线,使它接近工件;把该刀具的前端调整到工件表面上。
4.此时 Z 轴的相对坐标系的坐标作为刀具偏置值输入偏置菜单。
通过这么操作,如果刀具短于基准刀具时偏置值被设置为负值;如果长于基准刀具则为
正值。因此,在编程时仅有 G43 命令允许您做刀具长度偏置。
3. 举例
G00 ZO;
G00 G43 Z0 H01;
G00 G43 Z0 H03;或者
G00 G44 Z0 H02; 或者
G00 G44 Z0 H02;
G43, G44 或 G49 命令一旦被发出,它们的功能会保持着,因为它们是 “模态命令”。
因此, G43 或 G44 命令在程序里紧跟在刀具更换之后一旦被发出;那么 G49 命令可能在
该刀具加工结束,更换刀具调用。
注意 1) 在用 G43 (G44) H 或者用 G 49 命令的指派来省略 Z 轴移动命令时,, 偏置操作
就会像 G00 G91 Z0 命令指派的那样执行。也就是说,用户应当时常小心谨慎,因为它就像
有刀具长度偏置值那样移动。
注意 2) 用户除了能够用 G49 命令来取消刀具长度补偿,还能够用偏置号码 H0 的设置
(G43/G44 H0) 来获得同样效果。
注意 3) 若在刀具长度补偿期间修改偏置号码,先前设置的偏置值会被新近赋予的偏置值替
换。
选择机床坐标系 (G53)
1. 格式
2. 功能
刀具根据这个命令执行快速移动到机床坐标系里的 X_Y_Z 位置。由于 G53 是 “一般”
G 代码命令,仅仅在程序块里有 G53 命令的地方起作用。
此外,它在绝对命令 (G90) 里有效,在增量命令里 (G91) 无效。为了把刀具移动到机
床固有的位置,像换刀位置,程序应当用 G53 命令在机床坐标系里开发。
注意 (1) 刀具直径偏置、刀具长度偏置和刀具位置偏置应当在它的 G53 命令调用之前提前
取消。否则,机床将依照设置的偏置值移动。
注意 (2) 在执行G53 指令之前,必须手动或者用G28 命令让机床返回原点。这是因为机床
坐标系必须在G53 命令发出之前设定。
工件坐标系选择(G54~G59)
1. 格式
2. 功能
图5.2-6
通过使用 G54~G59 命令,最多可设置六个工件坐标系(1~6)。
在接通电源和完成了原点返回后,系统自动选择工件坐标系 1 (G54) 。它们均为模态
指令,执行某个坐标系命令后将保持其有效性,直到其它坐标系指令发出。
图5.2-7
高速深孔钻循环(G73)
1. 格式
X_ Y_:孔位数据
Z_:孔底深度(绝对坐标)
R_:每次下刀点或抬刀点 (绝对坐标)
Q_:每次切削进给的切削深度(无符号,增量)
F_:切削进给速度
K_:重复次数(如果需要的话)
2. 功能
进给孔底快速退刀。
图5.2-8
3. 例题
图5.2-9
N005 G80 G90 G0 X0 Y0 M06 T1 ;换 Ø20 钻头,
N010 G55 ;调用G55 工件坐标系
N020 M03 S1000
N030 G43 H1 Z50
N040 G98 G73 Z-30 R1 Q2 F200 ;深孔钻削,离工件表面1MM 处开始进给
每次切削2MM
N050 G80 G0 Z50 ;取消固定循环
N060 M05
N070 M30
攻左牙循环(G74)
1. 格式
X_ Y_:孔位数据
Z_:孔底深度(绝对坐标)
R_:每次下刀点或抬刀点 (绝对坐标)
P_:暂停时间 (单位:毫秒)
F_:切削进给速度
K_:重复次数 (如果需要的话)
2. 功能
进给孔底主轴暂停正转快速退刀。
图5.2-10
3. 例题
如图5.2-10
N005 G80 G90 G0 X0 Y0 M06 T1 ;换 Ø20 钻头
N010 G55 ;调用G55 工件坐标系
N020 M03 S1000
N030 G43 H1 Z50
N040 G74 Z-30 R1 Q2 P2000 F200 ;攻牙循环
N050 G80 G0 Z50 ;取消固定循环
N060 M05
N070 M30
精镗孔循环(G76)
1. 格式
X_ Y_:孔位数据
Z_:孔底深度(绝对坐标)
R_:每次下刀点或抬刀点 (绝对坐标)
Q_:孔底的偏移量
P_:暂停时间 (单位:毫秒)
F_:切削进给速度
K_:重复次数 (如果需要的话)
2. 功能
进给孔底主轴定位停止快速退刀。
3. 例题
如图5.2-9
N005 G80 G90 G0 X0 Y0 M06 T1 ;换 Ø20 钻头
N010 G55 ;调用G55 工件坐标系
N020 M03 S1000
N030 G43 H1 Z50
N040 G98 G76 Z-30 R1 Q2 P2000 F200 ;镗孔循环
N050 G80 G0 Z50 ;取消固定循环
N060 M05
N070 M30
取消固定循环进程 (G80)
1. 格式
2. 功能
这个命令取消固定循环,机床回到执行正常操作状态。孔的加工数据,包括 R 点, Z 点
等等,都被取消;但是移动速率命令会继续有效。
注意: 要取消固定循环方式,用户除了发出G80 命令之外,还能够用 G 代码 01 组 (G00,
G01, G02, G03 等等) 中的任意一个命令。
定点钻孔循环(G81)
1. 格式
X_ Y_:孔位数据
Z_:孔底深度(绝对坐标)
R_:每次下刀点或抬刀点 (绝对坐标)
F_:切削进给速度
K_:重复次数(如果需要的话)
2. 功能
图5.2-11
G81 命令可用于一般的孔加工。
3. 例题
如图5.2-11
N005 G80 G90 G0 X0 Y0 M06 T1 ;换 Ø20 钻头
N010 G55 ;调用G55 工件坐标系
N020 M03 S1000
N030 G43 H1 Z50
N040 G98 G81 Z-30 R1 F200 ;钻孔循环
N050 G80 G0 Z50 ;取消固定循环
N060 M05
N070 M30
钻孔循环(G82)
1. 格式
X_ Y_:孔位数据
Z_:孔底深度(绝对坐标)
R_:每次下刀点或抬刀点 (绝对坐标)
P_:在孔底的暂停时间 (单位:毫秒)
F_:切削进给速度
K_:重复次数(如果需要的话)
2. 功能
图5.2-12
G82 钻孔循环,反镗孔循环
3. 例题
图5.2-13
N005 G80 G90 G0 X0 Y0 M06 T1 ;换 Ø20 钻头
N030 G43 H1 Z50
N040 G98 G82 Z-30 R1 P2000 F200 ;钻孔循环
N050 G80 G0 Z50 ;取消固定循环
N060 M05
N070 M30
N010 G55 ;调用G55 工件坐标系
N020 M03 S1000
深孔钻削循环(G83)
1. 格式
X_ Y_:孔位数据
Z_:孔底深度(绝对坐标)
R_:每次下刀点或抬刀点 (绝对坐标)
Q_:每次切削进给的切削深度
F_:切削进给速度
K_:重复次数(如果需要的话)
2. 功能
图5.2-14
G83 中间进给孔底快速退刀。
3. 例题
如图5.2-14
N005 G80 G90 G0 X0 Y0 M06 T1 ;换 Ø20 钻头
N010 G55 ;调用G55 工件坐标系
N020 M03 S1000
N030 G43 H1 Z50
N040 G98 G83 Z-30 R1 Q2 F200 ;深孔钻循环,每次钻2MM
N050 G80 G0 Z50 ;取消固定循环
N060 M05
N070 M30
攻牙循环(G84)
1. 格式
X_ Y_:孔位数据
Z_:孔底深度(绝对坐标)
R_:每次下刀点或抬刀点 (绝对坐标)
P_:暂停时间(单位:毫秒)
F_:切削进给速度
K_:重复次数(如果需要的话)
2. 功能
图5.2-15
G84 进给孔底主轴反转快速退刀。
3. 例题
图5.2-16
N005 G80 G90 G0 X0 Y0 M06 T1 ;换 Ø20 丝攻
N010 G55 ;调用G55 工件坐标系
N020 M03 S800
N030 G43 H1 Z50 ;调用长度补偿
N040 G84 Z-30 R5 P2000 F2 ;攻牙循环
N050 G80 Z50 ;取消固定循环
N060 M05
N070 M30
镗孔循环(G85)
1. 格式
X_ Y_:孔位数据
Z_:孔底深度(绝对坐标)
R_:每次下刀点或抬刀点 (绝对坐标)
F_:切削进给速度
K_:重复次数(如果需要的话)
2. 功能
图5.2-17
G85 中间进给孔底快速退刀。
3. 例题
如图5.2-17
N005 G80 G90 G0 X0 Y0 M06 T1 ;换 Ø20 镗刀
N010 G55 ;调用G55 工件坐标系
N020 M03 S1000
N030 G43 H1 Z50 ;调用长度补偿
N040 G85 Z-30 R1 F200 ;镗孔循环
N050 G80 G0 Z50 ;取消固定循环
N060 M05
N070 M30
镗孔循环(G86)
1. 格式
X_ Y_:孔位数据
Z_:孔底深度(绝对坐标)
R_:每次下刀点或抬刀点 (绝对坐标)
F_:切削进给速度
K_:重复次数(如果需要的话)
2. 功能
图5.2-18
G86 进给孔底主轴停止快速退刀。
3. 例题
如图5.2-18
N005 G80 G90 G0 X0 Y0 M06 T1 ;换 Ø20 镗刀
N010 G55 ;调用G55 工件坐标系
N020 M03 S1000
N030 G43 H1 Z50 ;调用长度补偿
N040 G86 Z-30 R1 F200 ;镗孔循环
N050 G80 G0 Z50 ;取消固定循环
N060 M05
N070 M30
反镗孔循环(G81)
1. 格式
X_ Y:孔位数据
Z_:孔底深度(绝对坐标)
R_:每次下刀点或抬刀点 (绝对坐标)
Q_:刀具偏移量
P_:暂停时间(单位:毫秒)
F_:切削进给速度
K_:重复次数(如果需要的话)
2. 功能
图5.2-19
G87 进给孔底主轴正转快速退刀。
3. 例题
如图5.2-19
N005 G80 G90 G0 X0 Y0 M06 T1 ;换 Ø20 镗刀
N010 G55 ;调用G55 工件坐标系
N020 M03 S1000
N030 G43 H1 Z50 ;调用长度补偿
N040 G87 Z-30 R1 Q2 P2000 F200 ;反镗孔循环
N050 G80 G0 Z50 ;取消固定循环
N060 M05
N070 M30
定点钻孔循环(G88)
1. 格式
X_ Y_:孔位数据
Z_:孔底深度(绝对坐标)
R_:每次下刀点或抬刀点 (绝对坐标)
P_:孔底的暂停时间(单位:毫秒)
F_:切削进给速度
K_:重复次数(如果需要的话)
2. 功能
图5.2-20
G88 进给孔底暂停,主轴停止快速退刀。
3. 例题
如图5.2-20
N005 G80 G90 G0 X0 Y0 M06 T1 ;换 Ø20 钻头
N010 G55 ;调用G55 工件坐标系
N020 M03 S1000
N030 G43 H1 Z50 ;调用长度补偿
N040 G88 Z-30 R1 P2000 F200 ;定点钻孔循环
N050 G80 G0 Z50 ;取消固定循环
N060 M05
N070 M30
镗孔循环(G89)
1. 格式
X_ Y_:孔位数据
Z_:孔底深度(绝对坐标)
R_:每次下刀点或抬刀点 (绝对坐标)
P_:孔底的停刀时间(单位:毫秒)
F_:切削进给速度
K_:重复次数(如果需要的话)
2. 功能
图5.2-21
G89 进给孔底暂停快速退刀。
3. 例题
如图5.2-21
N005 G80 G90 G0 X0 Y0 M06 T1 ;换 Ø20 镗刀
N010 G55 ;调用G55 工件坐标系
N020 M03 S1000
N030 G43 H1 Z50 ;调用长度补偿
N040 G89 Z-30 R1 P2000 F200 ;镗孔循环
N050 G80 G0 Z50 ;取消固定循环
N060 M05
N070 M30
绝对命令/增量命令 (G90/G91)
此命令设定指令中的 X, Y 和 Z 坐标是绝对值还是相对值,不论它们原来是绝对命令
还是增量命令。含有 G90 命令的程序块和在它以后的程序块都由绝对命令赋值; 而带 G91
命令及其后的程序块都用增量命令赋值。