第四章:刀具补偿基础

刀具补偿,说白了就是让机床知道「你的刀到底有多大、多长」。

我刚开始做加工时,觉得这玩意儿可有可无。直到有一次,一把直径20的铣刀,我直接按理论值编程,结果铣出来的槽宽了0.2mm。嗯,从那以后我再也不敢忽略刀具补偿了。

4.1 刀具半径补偿:G40/G41/G42

刀具半径补偿解决的是「刀具有半径,但程序走的是中心轨迹」这个矛盾。

你想想看,如果你要铣一个100×100的方框,刀具中心轨迹和实际轮廓之间差了一个刀具半径。没有补偿,你编出来的程序要么过切,要么留余量。

4.1.1 补偿方向

  • G41:刀具半径左补偿。站在刀具运动方向看,刀具在轮廓左侧。
  • G42:刀具半径右补偿。站在刀具运动方向看,刀具在轮廓右侧。
  • G40:取消刀具半径补偿。

判断口诀:「顺铣用左补,逆铣用右补」——但这只是经验,具体要看机床和材料。

4.1.2 建立与取消

建立补偿时,必须在直线段上建立,不能在圆弧段。我见过有人直接在圆弧前加G41,结果机床报警,补偿无法建立。

; 正确示例:在直线段建立G41
G0 X0 Y0
G1 G41 X10 Y0 D1 F500   ; D1对应刀具半径值
G1 X100 Y0
G1 X100 Y100
G1 X0 Y100
G1 X0 Y0
G1 G40 X-10 Y0          ; 取消补偿,也要在直线段

注意:建立和取消补偿时,移动距离必须大于刀具半径。我曾经因为移动距离只有2mm,而刀具半径是6mm,结果补偿没建立成功,直接过切了工件。

4.1.3 补偿值设置

参数 说明 示例
D代码 指定刀具半径补偿存储器号 D1 = 6.0 (半径6mm)
补偿值 实际刀具半径 + 磨损量 6.0 + 0.05 = 6.05
磨损补偿 刀具磨损后的微调 通常0.01~0.1mm

我个人习惯在D代码里直接写「理论半径+磨损量」。比如新刀半径6.0,磨损0.05,我就写6.05。这样程序里不用改,直接在刀补表里调就行。

4.2 刀具长度补偿:G43/G44/G49

长度补偿解决的是「每把刀长度不一样,但Z轴零点要统一」的问题。

你想想,换刀后如果每把刀长度不同,不补偿的话,要么撞刀,要么加工深度不对。

4.2.1 补偿方向

  • G43:正向长度补偿。把刀长值加到Z坐标上。
  • G44:负向长度补偿。从Z坐标减去刀长值。
  • G49:取消长度补偿。

我的习惯:99%的情况用G43。G44很少用,除非你用的是特殊对刀方式。

4.2.2 建立与取消

; 建立长度补偿
T1 M6           ; 换刀
G0 G90 G54 X0 Y0
G43 H1 Z100.    ; H1对应刀长值,建立补偿
G1 Z-10. F500   ; 实际Z坐标 = 编程Z + 刀长

; 取消长度补偿
G49 Z100.       ; 取消补偿,回到机床坐标

避坑指南:我曾经在换刀后忘记加G43,直接G0 Z100,结果刀尖直接撞到工件上。从那以后,我每次换刀后第一件事就是检查G43有没有加上。

4.2.3 刀长测量方法

方法 精度 适用场景
对刀仪 ±0.01mm 批量生产,精度要求高
试切对刀 ±0.05mm 单件、小批量
Z轴设定器 ±0.02mm 通用场景

我个人推荐用对刀仪。虽然贵一点,但省时间、精度高。你想想,一把刀对刀花5分钟,一天换10把刀就是50分钟,一个月下来浪费多少时间?

4.3 补偿方向与建立取消的要点

4.3.1 补偿方向判断

判断补偿方向其实很简单:

  1. 站在刀具运动方向看
  2. 刀具在轮廓左边 → G41
  3. 刀具在轮廓右边 → G42

嗯,这里要注意:如果是内轮廓加工,补偿方向要反过来。比如铣内腔,顺铣时刀具在轮廓右侧,要用G42。

4.3.2 建立取消的注意事项

  • 必须在直线段建立/取消补偿
  • 移动距离必须大于刀具半径
  • 补偿建立后,第一个运动必须是直线
  • 取消补偿前,刀具必须离开工件

核心原则:「建立要早,取消要晚,中间不能断」——补偿一旦建立,中间不能有G40出现,否则机床会乱跑。

4.3.3 常见错误

我见过最多的错误是:

  1. 在圆弧段建立补偿 → 报警
  2. 补偿建立后直接G0快速移动 → 过切
  3. 忘记取消补偿就换刀 → 下一把刀乱跑
  4. D代码和H代码搞混 → 半径补偿用了长度值

我的小技巧:在程序开头统一写G40 G49 G80,把所有补偿都取消掉。然后再根据需要建立。这样不会因为上一把刀的补偿没取消而出问题。

4.4 实战案例

去年我做了一个铝合金零件,要求铣一个直径50的圆孔,公差±0.02mm。

我用了直径20的铣刀,程序如下:

; 粗加工
T1 M6
G0 G90 G54 X0 Y0
G43 H1 Z100.
G1 Z-5. F1000
G41 D1 X25. Y0 F500    ; 建立半径补偿
G2 I-25. J0             ; 铣整圆
G1 G40 X0 Y0            ; 取消补偿
G0 Z100.
G49

; 精加工(微调补偿值)
; D1从10.0改为10.02,补偿0.02mm
G41 D1 X25. Y0 F300
G2 I-25. J0
G1 G40 X0 Y0

你看,精加工时我只需要改D1的值,从10.0改成10.02,程序不用动。这就是刀具补偿的魅力——灵活、高效、精准。

最后提醒:补偿值不是越大越好。我曾经见过有人把补偿值设成负数,结果刀具直接往工件里扎。补偿值一定要和实际刀具匹配,别乱改。

好了,刀具补偿的基础就这些。下一章我们聊聊更高级的补偿技巧——刀具磨损补偿和温度补偿。这些东西用好了,你的加工精度能上一个台阶。