Technical Article

钻孔循环退刀高度为什么不对:G98、G99、R 平面和孔间移动

以 Haas MILL 钻孔循环为例,讲清 G98 初始平面返回、G99 R 平面返回、孔底 Z 和孔间移动的关系,结合压板避让说明 Mastercam 后处理输出应检查哪些程序段。

钻完一个孔,刀具为什么只抬一点就横走?明明选了 G98,为什么仍过不了压板?查这类问题,要顺着输出程序找出三个位置:循环开始前的 Z、循环里的 R,以及孔底 Z。再把实际孔序放到装夹图上,退刀高度的问题才看得清。

一、三个高度各管什么

本文按 Haas MILL、G17 平面下沿 Z 轴钻孔来说明。在 G90 绝对方式下,G81 中的 Z 是孔底位置,R 是循环的 R 平面;G98 返回建立循环前的初始 Z 位置,G99 返回 R 平面。初始平面是程序进入循环时形成的状态,并不是看到“安全高度”这个名字,控制器就会自动采用那个值。相关定义见 Haas 官方的 G81、G98 和 G99 说明。

假设单位为毫米,工件表面为 Z0,循环前刀尖在 Z40,孔底 Z-18,R5,压板顶面 Z22。这组几何关系里,G99 完孔后退到 Z5,横向越过压板会干涉;G98 完孔后回到 Z40,刀尖路径可从压板上方通过。尺寸用于说明两条路径,实际间隙还要结合刀具、刀柄和装夹外形确定。

Haas MILL 钻孔退刀剖面示意:初始 Z40 高于压板 Z22,G98 完孔后返回初始平面;G99 返回 R5,孔间横移路径与压板相交。工件表面 Z0,孔底 Z-18。
图 1:同一组孔底和 R 值,返回方式不同,孔间移动的高度也不同。图中尺寸只用于比较几何关系。

如果循环前先从 Z40 下到了 Z5,再调用 G81,原先的 Z40 就不能继续当作这次循环的初始平面。此时只把 G99 改成 G98,未必得到预期的高位退刀。检查首孔前的定位块,往往比反复加大 CAM 里的某个高度更快找到原因。

二、跨压板之前,在哪个孔切换 G98

设孔序为 A、B、C,压板在 B 与 C 之间,A 到 B 没有障碍。A 可以用 G99 完成后退到 R;B 要用 G98 完成钻孔并退回初始平面,随后才移动到 C。

Haas 的 G98 官方示例 正是把 G98 写在压板前那个孔的坐标块上。容易出错的做法,是等程序走到压板另一侧的 C 孔才加 G98。该指令决定对应孔完成后的返回方式,不能把“C 孔要跨压板”理解成“写在 C 孔上就会先替 B 孔抬高”。读程序时,给每个孔标上完成后的 Z,再看下一段横移。

Haas MILL 的 A、B、C 三孔顺序示意:A 使用 G99,退至 R 平面后到 B;B 使用 G98,钻完后退回初始平面,再跨过 B 与 C 之间的压板去 C。
图 2:跨 B 到 C 之间的压板,要让 B 孔完成高位退刀。图示省略 C 孔的最终退刀。

孔间路径还要检查刀柄扫过的区域。两个孔口都空旷,连线中间仍可能有螺钉、压板或台阶;把 R 设在工件表面上方,并不能据此证明整段移动有足够空间。若改变了孔序,原来布置的高位退刀位置也要跟着复核。

三、G80 取消循环,离开高度另看运动块

Haas MILL 的 G80 取消固定循环,G00、G01 也能取消循环。因此,检查最后一个孔时,要把“循环已取消”和“刀具已抬高”分开看。单独一行 G80 没有给出新的 Z 目标;后面如果直接横移,仍要核对刀具当时停在哪个高度。(Haas G80 说明)

在后处理输出中,把循环结束、Z 向退出和后续 XY 移动的先后关系写清楚,比只确认程序里有没有 G80 更有用。

四、从 Mastercam 参数追到 NC 输出

先查看钻孔操作的安全高度、退刀高度、进给起始高度,以及高度采用绝对值还是增量值;随后逐段对照 NC:

  • 首孔前最后一次 Z 定位,是否建立了预期初始平面

  • G81 的 R、孔底 Z、G90/G91,以及实际生效的 G98/G99

  • 跨障碍前那个孔的返回方式,是否与孔序和装夹相符

  • G80 后的第一段运动,是否先退出再横移

这些项目不要求某个 Mastercam 界面字段永远固定对应某一行代码。应同时保留操作参数、输出片段和装夹关系,定位问题究竟在高度定义、孔序,还是后处理的循环组织。需要调整输出时,可接着看后处理安全修改;完整程序的复核另见NC 程序安全检查。

还要认准机床类别:Haas LATHE 的 G98 / G99 分别表示每分钟进给和每转进给,不能拿本文的返回平面解释套用。做后处理对接时,提供系统型号、循环前后程序和障碍物位置,才能把修改落到具体动作上。