“模态代码” 和 “一般” 代码
“形式代码” 的功能在它被执行后会继续维持,而 “一般代码”仅仅在收到该命令时起作用。定义移动的代码通常是“模态代码”,像直线、圆弧和循环代码。反之,像原点返回代码就叫“一般代码”。每一个代码都归属其各自的代码组。在“模态代码”里,当前的代码会被加载的同组代码替换。
G代码组别
G00定位 (快速移动)
G01直线切削
G02顺时针切圆弧
G03逆时针切圆弧
G0400暂停
G05 * 不指定
G06抛物线插补
G07 * 不指定
G08 * 加速
G09 * 减速
G10-G16 * 不指定
G17XY 面赋值
G18XZ 面赋值
G19YZ 面赋值
G28机床返回原点
G30机床返回第2和第3原点
*G40取消刀具直径偏移
G41刀具直径左偏移
G42刀具直径右偏移
*G43刀具长度 + 方向偏移
*G44刀具长度 - 方向偏移
G45 * 刀具偏置+/+
G46 * 刀具偏置+/-
G47 * 刀具偏置-/-
G48 * 刀具偏置-/+
G49取消刀具长度偏移
G50 * 刀具偏置0/- 比例缩放
G51 * 刀具偏置+/0比例缩放
G52 * 刀具偏置-/0 局部坐标
G53直线偏移注销
G54直线偏移X
G55直线偏移Y
G56直线偏移Z
G57直线偏移XY
G58直线偏移XZ
G59直线偏移YZ
*G53机床坐标系选择
G54工件坐标系1选择
G55工件坐标系2选择
G56工件坐标系3选择
G57工件坐标系4选择
G58工件坐标系5选择
G59工件坐标系6选择
G60准确定位(精)
G61准确定位(中)
G62准确定位(粗)
G63 * 攻丝
G64-G67 * 不指定
G68 * 刀具偏置,内角
G69 * 刀具偏置,外角
G7309高速深孔钻削循环
G74左螺旋切削循环
G76精镗孔循环
*G80取消固定循环
G81中心钻循环
G82反镗孔循环
G83深孔钻削循环
G84右螺旋切削循环
G85镗孔循环
G86镗孔循环
G87反向镗孔循环
G88镗孔循环
G89镗孔循环
G90绝对尺寸
G91增量尺寸
G92 * 预置寄存
G93进给率,时间倒数
G94每分钟进给
G95主轴每转进给
G96恒线速度
G97每分钟转数(主轴)
*G90使用绝对值命令
G91使用增量值命令
G92设置工件坐标系
*G98固定循环返回起始点
*G99返回固定循环R点
注:*表示如作特殊用途,必须在程序格式中说明
代码解释
G00 定位
1. 格式
G00 X_ Y_ Z_
这个命令把刀具从当前位置移动到命令指定的位置 (在绝对坐标方式下), 或者移动到某个距离处 (在增量坐标方式下)。
2. 非直线切削形式的定位
我们的定义是:采用独立的快速移动速率来决定每一个轴的位置。刀具路径不是直线,根 据到达的顺序,机器轴依次停止在命令指定的位置。
3. 直线定位
刀具路径类似直线切削(G01) 那样,以最短的时间(不超过每一个轴快速移动速率)定位于要求的位置。
4. 举例
N10 G0 X100 Y100 Z65
G01 直线切削进程
1. 格式
G01 X_ Y_ Z_F_
这个命令将刀具以直线形式按F代码指定的速率从它的当前位置移动到命令要求的位置。对于省略的坐标轴,不执行移动操作;而只有指定轴执行直线移动。位移速率是由命令中指定的轴的速率的复合速率。
2. 举例
G01 G90 X50. F100;
或
G01 G91 X30. F100;
G01 G90 X50. Y30. F100;
或
G01 G91 X30. Y15. Z0 F100;
G01 G90 X50. Y30. Z15. F100;
G02/G03/G17/G18/G19 圆弧切削 (G02/G03, G17/G18/G19)
1. 格式
圆弧在 XY 面上
G17 G02 ( G03 ) G90 ( G91 ) X_ Y_ F__;
或
G17 G02 ( G03 ) G90 ( G91 ) I_ J_ F_;
或
G17 G02 ( G03 ) G90 ( G91 ) R_ F_;
圆弧在 XZ 面上
G18 G02 ( G03 ) G90 ( G91 ) X_ Z_ F_;
或G18 G02 ( G03 ) G90 ( G91 ) I_ K_ F_;
或G18 G02 ( G03 ) G90 ( G91 ) R_ F_;
圆弧在 YZ 面上
G19 G02 ( G03 ) G90 ( G91 ) Y_ Z_ F_;
或 G19 G02 ( G03 ) G90 ( G91 ) J_ K_ F_;
或 G19 G02 ( G03 ) G90 ( G91 ) R_ F_;
圆弧所在的平面用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. 举例
圆弧起点的 X 坐标值 ------------ 30.
圆弧中心的 X 坐标值 ------------ 10.
因此,“I” 就是 20. (30 - 10 = 20)
圆弧起点的 Y 坐标值 ------------ 10.
圆弧中心的 Y 坐标值 ------------ 5.
因此,“J” 就是 5. (10 – 5 = 5)
结果,这个情况下圆弧命令如下所列:
G17 G03 G90 X5. Y25. I-20. J-5.;
或者, G17 G03 G91 X-25. Y15. I-20. J-5.;
因为圆弧半径通常是已给了的,也能够用圆弧半径给命令赋值。
在已给的例子里,圆弧半径是 20.616。因此,该命令能够如下表示:
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 自动原点返回 (G28, G30)
1. 格式
第一原点返回:
G28 G90 ( G91 ) X_Y_Z_;
第二、三和四原点返回:
G30 G90 ( G91 ) P2 ( P3, P4 ) X_Y_Z_;
#P2, P3, P4: 选择第二、第三和第四原点返回
( 如果被省略,系统自动选择第二原点返回 )
由 X, Y 和 Z设定的位置叫做中间点。机床先移动到这个点,而后回归原点。省略了中间点的轴不移动;只有在命令里指派了中间点的轴执行其原点返回命令。在执行原点返回命令时,每一个轴是独立执行的,这就像快速移动命令(G00)一样; 通常刀具路径不是直线。因此,要求对每一个轴设置中间点,以免机床在原点返回时与工件碰撞等意外发生。
2. 举例
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 刀具直径偏置功能 (G40/G41/G42)
1. 格式
G41 X_ Y_;
G42 X_ Y_;
当处理工件 (“A”) 时,就像下图所示,刀具路径 (“B”) 是基本路径,与工件 (“A”)的距离至少为该刀具直径的一半。此处,路径 “B” 叫做由 A 经 R 补偿的路径。因此,刀具直径偏置功能自动地由编程给出的路径A以及由分开设置的刀具偏置值,计算出补偿了的路径B。就是说,用户能够根据工件形状编制加工程序,同时不必考虑刀具直径。
因此,在真正切削之前把刀具直径指派为刀具偏置值;用户能够获得精确的切削结果,就是因为系统本身计算了精确的补偿了的路径。
在编程时用户只要插入偏置向量的方向 (举例说, G41:左侧, G42: 右侧)和偏置内存地址 (例如, D2: 在“D”后面是从 01 到 32的两位数字)。所以用户只要输入偏移内存号码 D (根据 MDI),只不过是由精确计算刀具直径得出的半径。
2. 偏置功能
G40: 取消刀具直径偏置
G41: 偏置在刀具行进方向的左侧
G42: 偏置在刀具行进方向的右侧
G43/G44/G49 刀具长度偏置 (G43/G44/G49)
1. 格式
G43 Z_ H_;
G44 Z_ H_;
G49 Z_;
2. 偏置功能
首先用一把铣刀作为基准刀,并且利用工件坐标系的 Z 轴,把它定位在工件表面上,其位置设置为 Z0。 (☼ 见 G92:坐标系设置)
请记住,如果程序所用的刀具较短,那么在加工时刀具不可能接触到工件,即便机床移动到位置Z0。反之,如果刀具比基准刀具长,有可能引起与工件碰撞损坏机床。为了防止出现这种情况,把每一把刀具与基准刀具的相对长度差输入到刀具偏置内存,并且在程序里让 NC 机床执行刀具长度偏置功能。
G43: 把指定的刀具偏置值加到命令的 Z 坐标值上。
G44: 把指定的刀具偏置值从命令的 Z 坐标值上减去。
G49: 取消刀具偏置值。
在设置偏置的长度时,使用正/负号。如果改变了 (+/-) 符号, G43 和 G44 在执行时会反向操作。因此,该命令有各种不同的表达方式。举例说:
首先,遵循下列步骤度量刀具长度。
1.把工件放在工作台面上。
2.调整基准刀具轴线,使它接近工件表面上。
3.更换上要度量的刀具;把该刀具的前端调整到工件表面上。
4.此时 Z 轴的相对坐标系的坐标作为刀具偏置值输入内存。
通过这么操作,如果刀具短于基准刀具时偏置值被设置为负值;如果长于基准刀具则为正值。因此,在编程时仅有 G43 命令允许您做刀具长度偏置。
3. 举例
G00 Z0;
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 轴移动命令时,, 偏置操作就会像 G00G91 Z0 命令指派的那样执行。也就是说,用户应当时常小心谨慎,因为它就像有刀具长度偏置值那样移动。
注意 2) 用户除了能够用 G49 命令来取消刀具长度补偿,还能够用偏置号码 H0 的设置(G43/G44 H0) 来获得同样效果。
注意 3) 若在刀具长度补偿期间修改偏置号码,先前设置的偏置值会被新近赋予的偏置值替换。标系就被取消。以上命令也能够用于取消局部坐标系。
注意 (1) 当用户执行手动原点返回时,局部坐标系执行原点返回的轴的原点与工件坐标系就等同了。也就是说,这个操作与 [G52a0;] 命令一样 (a: 是执行原点返回进程的那个轴)。
注意 (2) 即便已经设置了局部坐标,工件坐标系或者机床坐标系不会被改变。
注意 (3) 工件坐标系是用 G92 命令设置的。如果各个坐标值未设置,局部坐标系里未给坐标值的轴将被设置成先前各轴一样的值。
注意 (4) 在刀具直径偏置方式下,用 G52 命令来暂时取消该偏置功能。
注意 (5) 当移动命令紧跟在 G52 程序块功能之后发出时,通常必须采用绝对命令。
G53 选择机床坐标系 (G53)
1. 格式
( G90 ) G53 X_ Y_ Z_;
2. 功能
刀具根据这个命令执行快速移动到机床坐标系里的 X_Y_Z 位置。由于 G53 是 “一般” G 代码命令,仅仅在程序块里有G53 命令的地方起作用。
此外,它在绝对命令 (G90) 里有效,在增量命令里 (G91) 无效。为了把刀具移动到机床固有的位置,像换刀位置,程序应当用 G53 命令在机床坐标系里开发。
注意 (1) 刀具直径偏置、刀具长度偏置和刀具位置偏置应当在它的 G53命令指派之前提前取消。否则,机床将依照指派的偏置值移动。
注意 (2) 在执行G53指令之前,必须手动或者用G28
命令让机床返回原点。这是因为机床坐标系必须在G53命令发出之前设定。
G54-G59 工件坐标系选择(G54-G59)
1. 格式
G54 X_ Y_ Z_;
2. 功能
通过使用 G54 – G59 命令,来将机床坐标系的一个任意点 (工件原点偏移值) 赋予 1221 – 1226的参数,并设置工件坐标系(1-6)。该参数与 G 代码要相对应如下:
工件坐标系 1 (G54) ---工件原点返回偏移值---参数 1221
工件坐标系 2 (G55) ---工件原点返回偏移值---参数 1222
工件坐标系 3 (G56) ---工件原点返回偏移值---参数 1223
工件坐标系 4 (G57) ---工件原点返回偏移值---参数 1224
工件坐标系 5 (G58) ---工件原点返回偏移值---参数 1225
工件坐标系 6 (G59) ---工件原点返回偏移值---参数 1226
在接通电源和完成了原点返回后,系统自动选择工件坐标系 1 (G54) 。在有“模态”命令对这些坐标做出改变之前,它们将保持其有效性。除了这些设置步骤外,系统中还有一参数可立刻变更G54~G59 的参数。工件外部的原点偏置值能够用 1220 号参数来传递。
G73 高速啄式深孔钻循环(G73)
1. 格式
G73 X__Y__Z__R__Q__P__F__K__
X_ Y:孔位数据
Z_:从R点到孔底的距离
R_:从初始位置到R点的距离
Q_:每次切削进给的切削深度
P_:暂停时间
F_:切削进给速度
K_:重复次数
2. 功能
进给 孔底 快速退刀。
G74 攻左牙循环(G74)
1. 格式
G74 X__Y__Z__R__Q__P__F__K__
X_ Y:孔位数据
Z_:从R点到孔底的距离
R_:从初始位置到R点的距离
Q_:每次切削进给的切削深度
P_:暂停时间
F_:切削进给速度
K_:重复次数
2. 功能
进给 孔底 主轴暂停 正转 快速退刀。
G76 精镗孔循环(G76)
1. 格式
G76 X__Y__Z__R__Q__P__F__K__
X_ Y:孔位数据
Z_:从R点到孔底的距离
R_:从初始位置到R点的距离
Q_:每次切削进给的切削深度
P_:暂停时间
F_:切削进给速度
K_:重复次数
2. 功能
进给 孔底 主轴定位停止 快速退刀。
G80 取消固定循环进程 (G80)
1. 格式
G80;
2. 功能
这个命令取消固定循环方式,机床回到执行正常操作状态。孔的加工数据,包括 R 点, Z点等等,都被取消;但是移动速率命令会继续有效。
(注) 要取消固定循环方式,用户除了发出G80 命令之外,还能够用 G 代码 01 组 (G00, G01, G02,
G03 等等) 中的任意一个命令。
G81 定点钻孔循环(G81)
1. 格式
G81 X_Y_Z_R_F_K_;
X_ Y:孔位数据
Z_:从R点到孔底的距离
R_:从初始位置到R点的距离
F_:切削进给速度
K_:重复次数
2. 功能
G81 命令可用于一般的孔加工。
G82 钻孔循环(G82)
1. 格式
G82 X_Y_Z_R_P_F_K_;
X_ Y:孔位数据
Z_:从R点到孔底的距离
R_:从初始位置到R点的距离
P_:在孔底的暂停时间
F_:切削进给速度
K_:重复次数
2. 功能
G82 钻孔循环,反镗孔循环
G83 排屑钻空循环(G83)
1. 格式
G83 X_Y_Z_R_Q_F_K_;
X_ Y:孔位数据
Z_:从R点到孔底的距离
R_:从初始位置到R点的距离
Q_:每次切削进给的切削深度
F_:切削进给速度
K_:重复次数
2. 功能
G83 中间进给 孔底 快速退刀。
G84 攻牙循环(G84)
1. 格式
G84 X_Y_Z_R_P_F_K_;
X_ Y:孔位数据
Z_:从R点到孔底的距离
R_:从初始位置到R点的距离
P_:暂停时间 F_:切削进给速度
K_:重复次数
2. 功能
G84 进给 孔底 主轴反转 快速退刀。
G85 镗孔循环(G85)
1. 格式
G85 X_Y_Z_R_F_K_;
X_ Y:孔位数据
Z_:从R点到孔底的距离
R_:从初始位置到R点的距离
F_:切削进给速度
K_:重复次数
2. 功能
G85 中间进给 孔底 快速退刀。
G86 定点钻孔循环(G86)
1. 格式
G86 X_Y_Z_R_F_L_;
X_ Y:孔位数据
Z_:从R点到孔底的距离
R_:从初始位置到R点的距离
F_:切削进给速度
K_:重复次数
2. 功能
G86 进给 孔底 主轴停止 快速退刀。
G87 反镗孔循环(G81)
1. 格式
G87 X_Y_Z_R_Q_P_F_L_;
X_ Y:孔位数据
Z_:从R点到孔底的距离
R_:从初始位置到R点的距离
Q_:刀具偏移量
P_:暂停时间
F_:切削进给速度
K_:重复次数
2. 功能
G87 进给 孔底 主轴正转 快速退刀。
G88 定点钻孔循环(G88)
1. 格式
G88 X_Y_Z_R_P_F_L_;
X_ Y:孔位数据
Z_:从R点到孔底的距离
R_:从初始位置到R点的距离
P_:孔底的暂停时间
F_:切削进给速度
K_:重复次数
2. 功能
G88 进给 孔底 暂停, 主轴停止 快速退刀。
G89 镗孔循环(G89)
1. 格式
G89 X_Y_Z_R_P_F_L_;
X_ Y:孔位数据
Z_:从R点到孔底的距离
R_:从初始位置到R点的距离
P_:孔底的停刀时间
F_:切削进给速度
K_:重复次数
2. 功能
G89 进给 孔底 暂停 快速退刀。
G90/G91 绝对命令/增量命令 (G90/G91)
此命令设定指令中的 X, Y 和 Z 坐标是绝对值还是相对值,不论它们原来是绝对命令还是增量命令。含有 G90
命令的程序块和在它以后的程序块都由绝对命令赋值; 而带 G91 命令及其后的程序块都用增量命令赋值。