固定循环一览:G81·G83·G73·G84 等的动作与选用方法(加工中心·车床)
知道孔的类型,就能确定该用哪个固定循环。最后别忘了 G80!


钻孔、攻丝、镗孔这类“同一个动作反复进行”的加工,可以用一行就写完的固定循环来完成。本文把加工中心的 G73–G89 和车床的 G70–G76、G90/G92/G94,配上动作示意图做成一览,并整理了该选哪一个、容易在哪里出错。程序写法以 FANUC 系统(G 代码体系 A)为基准。
什么是固定循环:用 1 行把“快速移动→切削→退回”打包
例如用钻头钻孔时,本来需要写 3 行以上:“快速移动到孔上方 → 切削进给到孔底 → 快速退回”。固定循环把这一固定动作用 G81 X_ Y_ Z_ R_ F_ 这 1 行概括,第 2 个及以后的孔 只需写 X·Y即可重复同样的动作[1]。最后务必用 G80 取消。
| 地址字 | 含义 | 注意事项 |
|---|---|---|
| X·Y | 孔的位置 | 先快速移动到这里,然后开始钻孔 |
| Z | 孔底位置 | G90(绝对)时为坐标,G91(增量)时为距 R 点的距离 |
| R | R 点(切换为切削进给的高度) | G91 时为距初始点的距离。设在工件表面稍上方 |
| Q | 每次切入量(G73·G83)/让刀量(G76·G87) | 无符号的增量值。不能用 0 或负值[8] |
| P | 孔底暂停(停留时间) | 单位因机型而异(秒·毫秒,小数点的处理方式) |
| F | 切削进给 | 攻丝时为螺距×转速(每分钟进给) |
| K(L) | 重复次数 | 与 G91 组合,可钻等间距的孔 |
G98 与 G99:钻孔后在什么高度移向下一个孔
G98 退回初始点(进入循环前的高度),而G99 停在 R 点的高度直接移向下一个孔。G99 更快,但如果两孔之间有夹具或台阶就会撞上。通常只对要越过障碍物的孔使用 G98。
图解:钻孔后在什么高度移向下一个孔
加工中心固定循环速查表
点击代码,可跳转到汇总了写法、各厂商差异和动作图的词典页面。
| 代码 | 适用场合 | 切入方式 | 在孔底 | 退回方式 |
|---|---|---|---|---|
| G81 | 中心孔·浅孔钻孔循环(定点钻) | 一次切削进给到孔底 | — | 快速移动 |
| G82 | 锪孔·倒角(让孔底更平整)钻孔循环(锪孔·孔底暂停) | 一次切削进给 | 暂停(P) | 快速移动 |
| G73 | 深孔(把切屑切碎)高速深孔钻循环(断屑·小幅退回) | 每次切入 Q,每次只退回一点 | — | 快速移动 |
| G83 | 深孔(把切屑排出孔外)深孔钻循环(啄钻·每次退回 R 点) | 每次切入 Q,每次抽出到 R 点 | — | 快速移动 |
| G84 | 右旋螺纹攻丝攻丝循环(右旋螺纹) | 正转切削进给 | 反转 | 切削进给 |
| G74 | 左旋螺纹攻丝反向攻丝循环(左旋螺纹丝锥) | 反转切削进给 | 正转 | 切削进给 |
| G85 | 铰孔·镗孔镗孔循环(切削进给进入,切削进给退回) | 切削进给 | — | 切削进给(贴着孔壁退回) |
| G89 | 台阶孔底面的精加工镗孔循环(孔底暂停,切削进给退回) | 切削进给 | 暂停(P) | 切削进给 |
| G86 | 镗孔(粗·半精加工)镗孔循环(孔底主轴停转,快速退回) | 切削进给 | 主轴停转 | 快速移动(可能留下刀尖划痕) |
| G76 | 精镗孔(不留退刀划伤)精镗循环 | 切削进给 | 主轴定向停止 → 让刀 Q | 快速移动 |
| G87 | 反锪孔(背镗)背镗循环(反锪孔) | 自下向上 | — | 让开刀刃后抽出 |
| G88 | 手动退出的镗孔(现已少见)镗孔循环(孔底暂停、主轴停转后,手动退回) | 切削进给 | 暂停·主轴停转 | 手动 |
代码编号的分配在 FANUC 系统中通用,但各厂商有例外。例如 Haas 加工中心的反锪孔是 G77,G87 不在其列表中[5]。使用前请对照自己机床的说明书确认编号。
钻孔:G81·G82·G73·G83 的区别
最常用的是 G81。先快速移动到 R 点,再以切削进给一次钻到孔底,然后快速退回。想让锪孔、倒角的底面更平整时,用在孔底停留 P 时间的 G82。
图解:G81 的动作(侧视图)
深孔用“啄钻”:G73 重速度,G83 重排屑
一次钻深孔时,切屑会堵在容屑槽里,导致钻头折断。因此每次只切入 Q,分段钻进,这就是啄钻加工。
- G73(高速深孔钻):每切入 Q 就退回一小段,把切屑折断。由于不退到孔外,速度快,但把切屑排出孔外的能力较弱
- G83(深孔钻):每切入 Q 就 抽出到 R 点,把切屑排出孔外,再快速退回到距前次深度稍靠上的位置后继续切削。耗时较长,但对深孔和容易堵屑的材料更可靠
图解:G73 的动作(侧视图)
图解:G83 的动作(侧视图)
选用参考如果切屑“切碎后就能自己排出”,用 G73;如果“即使切断了仍留在槽里,或孔很深”,用 G83。退回量和再次接近时的预留量(d)由机床侧的设定决定(Haas 为 Setting 22·52)[7]。
攻丝:G84(右旋螺纹)·G74(左旋螺纹)
G84 以主轴正转切入,在孔底反转后退出。进给量为转速 × 螺距(每分钟进给时)。例如以 500 min⁻¹ 加工 M10×1.5 时为 F750[3]。计算可使用 攻丝切削条件计算器进行。
图解:G84 的动作(侧视图)
要使主轴旋转与进给同步的刚性攻丝,在 FANUC 系统中多为在 G84 之前写 M29 S_ 的方式,但切换方式因机型而异(M29 的说明)。请勿与使用补偿夹头(浮动丝锥)的旧方式混用。攻丝过程中,大多数机型的进给倍率不起作用。
铰孔·镗孔:G85·G86·G89·G76·G87
- G85:进入和退回都用切削进给。用铰刀或粗镗刀沿孔壁来回刮过
- G89:在 G85 基础上加了孔底暂停。用于精加工台阶孔的底面
- G86:在孔底让主轴停转后快速退出。速度快,但刀尖可能在孔壁上留下划痕
- G76(精镗):在孔底让主轴定向停止,向刀尖相反方向让开 Q 后再退出。不会在已精加工的孔壁上留下退刀划痕。让刀方向由机床设定决定,若与镗刀刀尖方向不一致,就会把孔壁切伤
- G87(反锪孔):让开刀刃的状态下穿过孔,在背面把刀刃复位后向上切削。R 点位于孔的下方等,思路与其他循环相反
图解:G85 的动作(侧视图)
图解:G76 的动作(侧视图)
车床的固定循环:单一型(G90·G92·G94)与复合型(G70–G76)
在车床(G 代码体系 A)上,同一个编号的含义与加工中心不同。G90 不是绝对值指令,而是外径切削循环,G94 不是每分钟进给,而是端面切削循环。套用加工中心的程序时要特别注意[4]。
| 代码 | 类型 | 含义 |
|---|---|---|
| G90 | 单一型 | 外径·内径切削循环(单一型固定循环,G 代码体系 A) |
| G92 | 单一型 | 螺纹切削循环(单一型固定循环,G 代码体系 A) |
| G94 | 单一型 | 端面切削循环(单一型固定循环,G 代码体系 A) |
| G70 | 复合型 | 精加工循环(对 G71–G73 粗加工后的形状进行精加工) |
| G71 | 复合型 | 外径·内径粗车循环(沿 Z 方向切削) |
| G72 | 复合型 | 端面粗车循环(沿 X 方向切削) |
| G73 | 复合型 | 闭环切削循环(仿形重复,沿铸件等毛坯形状切削) |
| G74 | 复合型 | 端面切断(切槽)循环/Z 方向深孔啄钻 |
| G75 | 复合型 | 外径·内径切槽(切断)循环 |
| G76 | 复合型 | 复合型螺纹切削循环 |
单一型用 1 行完成“切入→切削→退让→退回”这 4 个动作,只改变 X 就能连续多行切削。复合型只要写好精加工形状(P–Q 的程序段),粗加工的往复路径就由 NC 自动生成。基本组合是先用 G71 粗加工,再用指定了相同 P·Q 的 G70 精加工。
图解:G71(车床)的切削方式
图解(车床):G76(车床):复合型螺纹切削循环
注意 G71 两行中的 UG71 为 2 程序段格式,第 1 行的 U 是切入量,第 2 行的 U 是 X 方向的精加工余量。同一个地址字含义不同,弄混就会切多。G76(螺纹切削)的 P·Q·R 也是第 1 行和第 2 行含义不同。
程序示例:在 4 处加工 M10 螺纹孔
流程为:中心孔 → 底孔 φ8.5 的深孔(G83)→ M10×1.5 的刚性攻丝(G84)。只有中间隔着夹具的孔用 G98 退回初始点。刀具号·转速·进给·Q 仅为示例,实际请按刀具厂商推荐的条件和机床情况调整。
O1001 (M10 TAP x4) G90 G17 G40 G49 G80 (安全程序段) G54 T01 M06 (中心钻) S1500 M03 G00 X20. Y20. G43 Z50. H01 M08 G99 G81 X20. Y20. Z-3. R3. F120 (返回 R 点后移向下一孔) X80. G98 X80. Y60. (前方有夹具:退回初始点) G99 X20. G80 M09 G91 G28 Z0. T02 M06 (φ8.5 钻头) S1100 M03 G90 G00 X20. Y20. G43 Z50. H02 M08 G99 G83 X20. Y20. Z-25. R3. Q5. F160 X80. G98 X80. Y60. G99 X20. G80 M09 G91 G28 Z0. T03 M06 (M10x1.5 丝锥) G90 G00 X20. Y20. G43 Z50. H03 M08 M29 S500 (刚性攻丝:因机型而异) G99 G84 X20. Y20. Z-20. R5. F750 (F = 500 x 1.5) X80. G98 X80. Y60. G99 X20. G80 M09 G91 G28 Z0. M30
在安全程序段里写入 G80 的写法,在大学实习用程序和 Haas 的示例中也是惯用做法[10]。即使上一个程序里还残留着固定循环,第一次移动时也不会开始钻孔。
常见的 7 种失误
- 忘写 G80:固定循环是模态的,下一个 G00 X_ Y_ 时也会继续钻孔
- 保持 G99 越过夹具:在 R 点高度横向移动会发生碰撞。障碍物前面的孔改用 G98
- 在 G91 下把 R、Z 当作绝对值来写:增量方式下,R 是距初始点的距离,Z 是距 R 点的距离
- Q 的符号或小数点出错:Q 不带符号。在不带小数点时按最小单位读取的机型上,Q5 会变成 0.005 mm
- 攻丝时 F 的计算错误:每分钟进给时是转速 × 螺距,每转进给时直接用螺距
- G76 的退让方向与镗刀的朝向相反:退让时会划伤已精加工的内表面
- 在车床上沿用加工中心的习惯使用 G90、G94:在 G 代码体系 A 的车床上,它们是切削循环
丝锥断在孔里时的取出方法,也请参考《加工问题排查手册》中的“丝锥折断”。
常见问题
- 固定循环中可以使用刀具半径补偿(G41、G42)吗?
- 不可以。固定循环执行期间,前提是不施加刀具半径补偿(NIST 的 RS274NGC 规范)[8]。请先用 G40 取消,再使用固定循环。
- 重复次数用 K 还是 L?
- 因机型而异。多数 FANUC 系统用 K,老机型和部分厂商用 L。
- G73 和 G83 哪个更快?
- G73。因为不必每次都退出孔外,空走刀更少。但切屑排不出孔外,所以在深孔和韧性大的材料上,G83 更安全。
参考资料
- 三菱电机(Mitsubishi Electric)“The Basics of CNC Machining Programming (for Machining center) e-Learning 教材(PDF)”
- 三菱电机(Mitsubishi Electric)“The Basics of CNC Machining Programming (for Lathe) e-Learning 教材(PDF,BNP-C8027-688)”
- Siemens AG“SINUMERIK 802D sl/840D/840D sl/840Di/840Di sl/810D Programming Manual ISO Milling, 04.2007 Edition(6FC5398-7BP10-0BA0)”
- Siemens AG「SINUMERIK 802D sl/840D/840D sl/840Di/840Di sl/810D Programming Manual ISO Turning, 04.2007 Edition」
- Haas Automation, Inc.“Mill Operator's Manual – 17 Mill G-Codes(在线版)”
- Haas Automation, Inc.“Lathe Operator's Manual – 16 Lathe G-Codes(在线版)”
- Haas Automation, Inc.“G-code, M-code, and Setting(按代码分类的说明页面)”
- 美国国家标准与技术研究院(NIST)“The NIST RS274NGC Interpreter – Version 3(NISTIR 6556,2000)”
- 日本厚生劳动省 人才开发统括官 能力评价担当参事官室“利用3级技能检定实技试验课题的人才培养手册 数控车床作业篇(平成30年(2018年)3月)”
- 埼玉大学 工学部 机械工学科 实习“加工中心程序2019(实习用 NC 程序 O19-0101,带注释)”


