4. 常用G代码详解(二):G04暂停、G17/G18/G19平面选择、G20/G21单位制

好,咱们接着聊G代码。上一章讲了几个基础指令,这一章我挑三个非常实用、但新手容易忽略的指令来讲:G04暂停G17/G18/G19平面选择、还有G20/G21单位制

这三个指令,说白了就是控制「什么时候停」、「在哪个面上画图」、「用毫米还是英寸」。听起来简单,但用不好,机床撞刀、尺寸全错的事故我可见过不少。

G04:暂停指令——让机床「喘口气」

G04,也叫 dwell 指令。它的作用就是让主轴停转、进给停止,但保持当前位置,等一段时间再继续。

你可能会问:「为什么要暂停?」嗯,我刚开始学的时候也觉得这指令多余。直到有一次做深孔钻削,钻头排屑不畅,直接卡断在孔里……从那以后,我再也不敢小看 G04 了。

G04 的典型应用场景

  • 深孔钻削排屑:钻到一定深度,暂停一下,让切屑被冷却液冲走。
  • 主轴转速稳定:主轴刚启动时转速还没稳定,暂停几秒再进刀,表面光洁度会好很多。
  • 换刀后确认:自动换刀后,暂停一下,确认刀具夹紧再开始切削。
  • 工件表面清理:比如铣完一个面,暂停一下,操作员可以吹掉切屑再继续。

G04 的语法格式

不同控制系统写法略有差异,但主流有两种:

G04 P1000   ; 暂停 1000 毫秒(即 1 秒)
G04 X1.0    ; 暂停 1 秒(某些系统用 X 表示秒)
G04 U1.0    ; 暂停 1 秒(某些系统用 U 表示秒)

我个人习惯用 P 地址,单位是毫秒。这样精度高,也直观。比如暂停 0.5 秒,就写 G04 P500

⚠️ 注意: 不同厂家的系统对 G04 的地址解释不一样。发那科(Fanuc)用 P 表示毫秒,三菱(Mitsubishi)用 X 表示秒,海德汉(Heidenhain)甚至用 DWELL 这个单词。上机前一定要看机床手册,别想当然。

一个实际例子

我记得有一次帮客户调试一台老机床,做不锈钢深孔钻削。孔径 6mm,深度 40mm,长径比接近 7:1。如果不加暂停,钻头进去就「尖叫」,然后断掉。我加了这么一段:

G01 Z-5.0 F50   ; 钻入 5mm
G04 P200        ; 暂停 0.2 秒排屑
G01 Z-10.0 F50  ; 再钻 5mm
G04 P200        ; 再暂停
...             ; 循环直到深度

加了暂停之后,切屑顺利排出,钻头寿命从 30 个孔提升到 200 个孔。你看,一个小小的 G04,效果立竿见影。

G17/G18/G19:平面选择——告诉机床「你在哪个面上干活」

这三个指令,是圆弧插补和刀具半径补偿的基础。说白了,就是告诉机床:你现在是在 XY 平面、ZX 平面、还是 YZ 平面上画圆弧?

我见过不少新手,写圆弧指令时忘了指定平面,结果机床走出来的轨迹完全不是想要的形状。嗯,这里要注意:默认平面是 G17(XY 平面),但如果你换了平面没改回来,后面所有圆弧都会跑偏。

三个平面的定义

指令 平面 圆弧插补轴 常用场景
G17 XY 平面 X、Y 轴 最常用,铣削顶面、轮廓加工
G18 ZX 平面 Z、X 轴 车铣复合、侧面圆弧加工
G19 YZ 平面 Y、Z 轴 较少用,某些特殊夹具加工

平面选择对圆弧的影响

举个例子。你想在工件侧面铣一个 R10 的圆弧。如果你忘了指定 G18,机床默认在 XY 平面走圆弧,结果就是:刀具在顶面画了个圆弧,而不是侧面。你说这能不出废品吗?

正确的写法应该是:

G18              ; 切换到 ZX 平面
G01 Z-5.0 F100   ; 下刀到深度
G02 X20.0 Z0 R10 ; 在 ZX 平面走圆弧
💡 我的习惯: 每次程序开头,我都会显式写一遍 G17。哪怕默认就是 G17,我也写。为什么?因为如果前面有人改了平面没改回来,你这一写,就「复位」了。这叫防御性编程。

平面选择与刀具半径补偿

还有一个坑:刀具半径补偿(G41/G42)必须和平面选择匹配。你在 G17 下开启补偿,补偿方向就是 XY 平面内的左/右。如果你切换到 G18,补偿方向就变成 ZX 平面内的左/右。搞混了,补偿方向就全错了。

我曾经在一个五轴项目上,因为平面切换后忘了关补偿,结果刀具路径直接撞到工件上。还好是模拟阶段发现的,不然几万块的工件就废了。

G20/G21:单位制——毫米还是英寸?这是个问题

G20 是英制(英寸),G21 是公制(毫米)。这个指令看似简单,但出错的后果非常严重。

你想想看:如果你用 G21 编了个程序,所有尺寸都是毫米。结果机床默认是 G20(英制),那机床会把 100mm 当成 100 英寸来走。100 英寸 ≈ 2540mm,直接撞到机床极限,轻则报警,重则撞坏主轴。

单位制的使用规则

  • G21:公制,所有坐标、进给、半径等单位都是毫米。
  • G20:英制,所有单位都是英寸。
  • 模态指令:一旦设定,一直有效,直到被另一个指令改变。
  • 必须在程序开头设定:一般在程序第一行就写 G21 或 G20。

一个真实教训

我记得刚入行时,帮师傅传程序。师傅编的是公制程序,但机床前一天被另一个师傅调成了英制。我没检查,直接按了启动。结果第一刀下去,Z 轴直接扎到工件台面上,「哐」的一声,主轴都震歪了。还好只是撞坏了夹具,没伤到人。

从那以后,我养成了一个习惯:程序第一行必须是 G21(或 G20),而且单独一行,前面不加任何其他指令。 比如:

G21           ; 明确使用公制
G17           ; 明确使用 XY 平面
G90           ; 绝对坐标
G40           ; 取消半径补偿
G49           ; 取消长度补偿
G80           ; 取消固定循环

这叫「程序头部的安全初始化」。每次写程序,我都这么写,雷打不动。

🔑 核心要点: G20/G21 必须在程序开头设定,并且要写在所有运动指令之前。如果你在程序中间切换单位制,坐标值会突然变化,非常危险。我个人建议:一个程序里只用一种单位制,不要来回切换。

本章知识体系

下面这张图,是我自己总结的这三个指令的关系。你可以把它当成一个「速查地图」:

G04 / G17-G19 / G20-G21 知识体系 G04 暂停 • 深孔钻削排屑 • 主轴转速稳定 • 换刀后确认 • 工件表面清理 语法: G04 P1000 (毫秒) G04 X1.0 (秒) ⚠ 不同系统地址不同 G17/G18/G19 平面选择 G17 → XY 平面 G18 → ZX 平面 G19 → YZ 平面 影响: • 圆弧插补方向 • 刀具半径补偿 ⚠ 默认 G17,建议显式声明 G20/G21 单位制 G20 → 英制(英寸) G21 → 公制(毫米) 特点: • 模态指令 • 必须在程序开头设定 • 一个程序只用一种单位 ⚠ 单位搞错 = 撞机 核心原则:程序头部安全初始化 → G21 G17 G90 G40 G49 G80

这三个指令,单独看都不难。但组合起来,再加上实际加工中的各种意外情况,就容易出问题。我的建议是:写程序时,把 G04、G17/G18/G19、G20/G21 当成「安全检查点」,每次用到都确认一下,养成习惯。

好了,这一章就到这里。下一章我们聊 G40/G41/G42 刀具半径补偿,那才是真正考验编程功底的地方。


专注资料整理