G代码功能概述
G代码(Preparatory Function)是用来指令机床移动方式和加工类型的代码。它通常与坐标地址(X, Y, Z)和进给速度(F)等结合使用。
模态代码 vs. 非模态代码
- 模态代码:一旦被指定,会一直保持有效,直到被同组的其他G代码取消或取代。例如,G01模式会持续有效,直到遇到G00、G02或G03。
- 非模态代码:只在被指定的程序段中有效。
常用G代码详细列表
第一组:单位与坐标设定
| G代码 | 功能描述 | 模态/非模态 | 备注 |
| :— | :— | :— | :— |
| G00 | 快速定位 | 模态 | 机床以最快速度移动到目标点,不进行切削。路径通常为折线,需小心避障。 |
| G01 | 直线插补 | 模态 | 以指定的进给速度(F)进行直线切削。G01 X_Y_Z_F_;
|
| G02 | 顺时针圆弧插补 | 模态 | 加工顺时针方向的圆弧。需指定终点和圆心(I, J, K)或半径(R)。 |
| G03 | 逆时针圆弧插补 | 模态 | 加工逆时针方向的圆弧。需指定终点和圆心(I, J, K)或半径(R)。 |
| G04 | 暂停/延时 | 非模态 | 使程序暂停一段时间(如G04 P2000;
暂停2秒),用于光整加工(去毛刺)、让主轴停稳等。 |
第二组:平面选择
| G代码 | 功能描述 | 模态/非模态 | 备注 |
| :— | :— | :— | :— |
| G17 | 选择XY平面 | 模态 | 默认平面。圆弧插补和刀具半径补偿在此平面内进行。 |
| G18 | 选择ZX平面 | 模态 | |
| G19 | 选择YZ平面 | 模态 | |
第三组:刀具半径补偿 (Cutter Radius Compensation)
极其重要的功能,允许程序员按零件轮廓编程,由CNC系统自动计算刀具中心轨迹。
| G代码 | 功能描述 | 模态/非模态 | 备注 |
| :— | :— | :— | :— |
| G40 | 取消刀具半径补偿 | 模态 | |
| G41 | 左刀补 | 模态 | 沿刀具前进方向看,刀具中心在零件轮廓的左侧。 |
| G42 | 右刀补 | 模态 | 沿刀具前进方向看,刀具中心在零件轮廓的右侧。 |
| G43 | 刀具长度正补偿 | 模态 | 将刀具长度偏置值(在H地址中)加到程序坐标上。最常用。 |
| G44 | 刀具长度负补偿 | 模态 | 将刀具长度偏置值(在H地址中)从程序坐标中减去。很少用。 |
| G49 | 取消刀具长度补偿 | 模态 | |
第四组:固定循环 (Canned Cycles)
用于简化钻孔、攻丝、镗孔等重复性操作的编程。
| G代码 | 功能描述 | 模态/非模态 | 典型格式与说明 |
| :— | :— | :— | :— |
| G73 | 高速深孔啄钻循环 | 模态 | 断屑式钻孔,适合深孔加工。 |
| G74 | 左旋攻丝循环 | 模态 | 攻左旋螺纹(反转主轴,正转退出)。 |
| G76 | 精镗循环 | 模态 | 镗孔完成后,主轴准停并让刀,避免刮伤孔壁。 |
| G80 | 取消固定循环 | 模态 | 必须用此代码取消循环,否则后续的移动会继续执行循环! |
| G81 | 钻孔循环 | 模态 | G81 X_Y_Z_R_F_;
(X,Y:孔位,Z:孔深,R:安全高度) |
| G82 | 锪孔/镗平循环 | 模态 | 在孔底有暂停,保证底面平整。 |
| G83 | 深孔啄钻循环 | 模态 | 排屑式钻孔,完全退出排屑,最适合深孔。 |
| G84 | 右旋攻丝循环 | 模态 | 攻右旋螺纹(正转进给,反转退出)。F = 主轴转速 × 螺距
|
| G85 | 镗孔循环 | 模态 | 进给速度镗孔,进给速度退出。 |
| G86 | 镗孔循环 | 模态 | 主轴停止退出。 |
| G87 | 背镗循环 | 模态 | 从孔底向外加工。 |
| G88 | 手动退刀镗孔循环 | 模态 | |
| G89 | 镗孔循环 | 模态 | 孔底暂停,进给退出。 |
第五组:坐标系统与参考点
| G代码 | 功能描述 | 模态/非模态 | 备注 |
| :— | :— | :— | :— |
| G54 ~ G59 | 选择工件坐标系 | 模态 | 最常用的方式。G54对应机床中设定的第1个坐标系原点。 |
| G90 | 绝对坐标编程 | 模态 | 所有坐标值均相对于编程原点(工件原点)。 |
| G91 | 增量坐标编程 | 模态 | 坐标值相对于刀具的当前位置,是增量的。 |
| G92 | 设定工件坐标系 | 非模态 | 现在较少使用,通常被G54-G59取代。 |
| G94 | 进给速度单位:毫米/分钟 (mm/min) | 模态 | 铣床默认模式。 |
| G95 | 进给速度单位:毫米/转 (mm/rev) | 模态 | 主要用于车床,铣床上攻丝时也可能用到。 |
其他重要G代码
| G代码 | 功能描述 | 模态/非模态 | 备注 |
| :— | :— | :— | :— |
| G20 | 英制单位输入 | 模态 | 单位:英寸 (inch) |
| G21 | 公制单位输入 | 模态 | 单位:毫米 (mm)。国内默认。 |
| G28 | 返回机床参考点 | 非模态 | G91 G28 Z0;
(Z轴先回零) G91 G28 X0 Y0;
(X, Y轴再回零) |
| G30 | 返回第2、3、4参考点 | 非模态 | 常用于换刀点。 |
| G68 | 坐标系旋转 | 模态 | 简化有旋转角度分布的零件编程。 |
| G69 | 取消坐标系旋转 | 模态 | |
| G80 | 取消固定循环 | 模态 | 再次强调,非常重要! |
| G98 | 固定循环返回到初始点(R点) | 模态 | 在固定循环中,加工完一个孔后返回初始高度(安全平面)。 |
| G99 | 固定循环返回到R点 | 模态 | 在固定循环中,加工完一个孔后返回R点高度(参考平面),效率更高。 |
常用M代码(辅助功能)列表
M代码用于控制机床的辅助动作,如主轴启停、冷却液开关等。
| M代码 | 功能描述 | 备注 |
| :— | :— | :— |
| M00 | 程序暂停 | 按下“循环启动”后继续。用于检测工件、手动换刀等。 |
| M01 | 选择暂停 | 只有操作面板上的“选择停”按钮打开时才有效。 |
| M02 | 程序结束 | 主轴、冷却液全部停止,光标停在程序末尾。 |
| M03 | 主轴正转 | 从主轴看向刀柄,逆时针旋转。 |
| M04 | 主轴反转 | 从主轴看向刀柄,顺时针旋转。 |
| M05 | 主轴停止 | |
| M06 | 自动换刀 | T01 M06;
(将主轴上的刀换为刀库中的1号刀) |
| M07 | 喷雾冷却开启 | |
| M08 | ** flood冷却液开启** | 最常用的冷却方式。 |
| M09 | 冷却液关闭 | |
| M19 | 主轴准停 | 使主轴固定在特定角度,用于换刀或镗孔让刀。 |
| M30 | 程序结束并返回 | 比M02更常用,程序结束后自动返回到程序开头。 |
| M98 | 调用子程序 | M98 Pxxxx Ln;
(调用程序号为Oxxxx的子程序n次) |
| M99 | 子程序结束返回 | 子程序的最后一个程序段必须是M99。 |
一个简单的编程示例
% O1000 (程序名) G90 G94 G17 G21 G54 (安全启动行:绝对/分进给/XY平面/公制/G54坐标系) G00 Z100. (快速抬刀到安全高度) M03 S2000 (主轴正转,2000rpm) G00 X0 Y0 (快速定位到X0Y0) Z5. (快速下刀到工件上方5mm) G01 Z-2. F100 (以100mm/min进给下切2mm) G01 X50. Y20. F300 (直线切削) G02 X70. Y0 R20. F250 (顺时针铣圆弧) ... G00 Z100. (快速抬刀到安全高度) M05 (主轴停止) M09 (冷却液关闭) G91 G28 Z0 (Z轴返回机床零点) G91 G28 X0 Y0 (X、Y轴返回机床零点) M30 (程序结束并返回) %
重要提示:
- 查阅手册:不同机床厂商的G/M代码定义可能存在差异,以上为通用列表,务必以您机床的编程手册为准。
- 安全第一:在运行新程序前,务必使用单段模式、降低进给倍率、空运行等方式验证程序,避免撞刀。
- 模态组:理解模态组的概念可以大大简化编程,避免重复输入相同的G代码。