入门基石 ③

CNC刀具补偿详解:G41/G42 让程序按轮廓走、机床自动偏一个刀半径

零基础也能上手 · 搞定"过切/欠切"的底层逻辑 · 半径变了不用改程序

一句话定义:刀补(刀具半径补偿,让系统沿轮廓法向自动偏移一个刀具半径走刀)就是——你编程时只画零件轮廓,机床自己把刀心往外(或往里)挪一个"刀具半径"再走刀。这样你不用拿计算器算刀心轨迹,刀磨小了也只改补偿表、不用改程序。

一、为什么非得有刀补(原理 / 为什么)

铣刀是个圆柱,有半径。如果你让刀心严格沿着轮廓线走,刀的"半个宽度"会切到轮廓里面——零件被悄咪咪削掉一个刀宽,尺寸全小了。这就是过切

解决思路很简单:让刀心偏离轮廓一个"刀具半径",刀的切削刃刚好蹭着轮廓走。这个"偏离多少、往哪偏",交给系统算,你只管画轮廓。半径变了(换刀、磨刀),只改补偿值,程序一行都不用动

补充:刀具补偿其实分两类——本篇讲最常用、也最易踩坑的半径补偿(G41/G42);还有长度补偿(H 代码),解决换刀后每把刀长短不一(呼应入门基石②"坑3"的伏笔)。两者都填在偏置/补偿表,但作用不同:半径补偿管"轮廓偏移",长度补偿管"Z 向刀长"。

二、G41 左补偿 / G42 右补偿 怎么分(图示要点)

补偿方向只看一件事:沿走刀方向看,刀具在轮廓的哪一侧

偏移量来自 D 代码(如 D01),它指向补偿表里你设好的那个"刀具半径值"。所以 G41/G42 只管方向,偏多少由 D 号里的半径决定

(建议配图:俯视机床工作台,一个矩形工件 + 一把铣刀。① 外轮廓:沿走刀方向看刀在轮廓右侧→G42,刀心轨迹在轮廓外偏移一个半径,零件被保留、外圈余量被铣掉。② 内轮廓/型腔:沿走刀方向看刀在轮廓左侧→G41,刀心轨迹在轮廓内偏移,把中间挖空。③ 标注"引入段"——从轮廓外一点直线切入建立补偿,长度需 > 刀半径,否则报警。)

三、刀补怎么用(操作 + 代码)

刀补不是写死的数值,而是"在补偿表设好半径 + 程序里用 G41/G42 调用"。两步:

步骤 A:在补偿表设好半径

机床操作面板 OFFSET SETTING → "刀具补偿 / 半径补偿"页,把 D01 的半径值设成实际刀具半径(比如直径 10 的刀 = 半径 5.0)。换刀、磨刀只改这里。

; ===== 步骤 B:程序里建立 / 加工 / 取消补偿 =====
G17 G90 G21 ; G17 = 在 XY 平面做轮廓补偿(必须!补偿平面不对会报警)
G00 Z5. ; 先抬到安全高度
G00 X0 Y0 ; 快速定位到「引入点」(必须在轮廓外)
G41 D01 G01 X10 Y10 F200 ; ← 在「直线切入段」建立左补偿;刀心自动偏左一个半径
; ===== 轮廓加工:你只写轮廓,系统自动偏刀心 =====
G01 X50 Y10 F200 ; 外轮廓直线段
G01 X50 Y40
G01 X10 Y40
G01 X10 Y10
; ===== 切出段:先 G40 取消补偿,再回安全点 =====
G40 G01 X0 Y0 ; ← 在「直线切出段」取消补偿
G00 Z50. M30 ; 抬刀、结束

两个要命的顺序规则:

四、新手最容易踩的 6 个坑

⚠ 坑 1:忘记取消 G40,下一刀还在补偿状态

加工完没写 G40 就直接回零或做下一刀,系统继续按"偏一个半径"走,位置整体偏移一个刀宽,零件废掉。养成习惯:回安全点前必 G40。

⚠ 坑 2:补偿平面不对(忘了 G17)

XY 轮廓补偿必须在 G17(XY 平面)下进行。如果系统停在 G18/G19 或没显式指定,补偿无效或直接报警。程序开头明确写 G17。

⚠ 坑 3:引入段太短,报"补偿干涉"

从轮廓外建立补偿的那段直线,长度比刀半径还短,系统没法平滑偏置 → 报警停不下刀。引入 / 引出段留足(一般 > 刀半径的 2~3 倍)。

⚠ 坑 4:D 号对应的半径没设 / 设错

程序调 D01,但补偿表里 D01 的半径值是 0 或上一把刀的旧值,实际切深、尺寸全错。每次换刀后核对 D 号半径 = 当前刀实际半径。

⚠ 坑 5:顺逆搞反(G41/G42 选错)

内外轮廓用反方向:本该 G41 用了 G42,刀心偏到轮廓另一侧 → 内轮廓会过切把零件切没、外轮廓会欠切留余量。口诀:内轮廓通常 G41、外轮廓通常 G42,但最终以"沿走刀方向看刀在哪侧"为准

⚠ 坑 6:为调尺寸去改 G 代码里的坐标

发现尺寸差 0.1,不去改补偿表、反而手改程序轮廓坐标。这违背刀补初衷,下次换刀又乱。调尺寸只改 D 号半径,程序保持"纯轮廓"。

五、小结