数控机床在进行轮廓加工时,由于刀具有一定的半径(如铣刀半径),因此在加工时,刀具中心的运动轨迹必须偏离零件实际轮廓一个刀具半径值,否则加工出的零件尽寸与实际需要的尺寸将相差一个刀具半径值或者一个刀具直径值。此外,在零件加工时,有时还需要考虑加工余量和刀具磨损等因素的影响。因此,刀具轨迹并不是零件的实际轮廓,在内轮廓加工时,刀具中心向零件内偏离一个刀具半径值;在外轮廓加工时,刀具中心向零件外偏离一个刀具半径值。若还要留加工余量,则偏离的值还要加上此预留量。考虑刀具磨损因素的,则偏离的值还要减去磨损量。在手工编程使用平底刀或圆侧向切削时,必须加上刀具半径补偿值,此值可以在机床上设定。程序中调用刀具半径补偿的指令为G41/G42 D_。使用自动编程软件进行编程时,其刀位计算时已经自动加进了补偿值,所以无须在程序中添加。
根据加工情况,有时不仅需要对刀具半径进行补偿,还要对刀具长度进行补偿。如铣刀用过一段时间以后,由于磨损,长度也会变短,这时就需要进行长度补偿。铣刀的长度补偿与控制点有关。一般用一把标准刀具的刀头作为控制点,则该刀具称为零长度刀具。如果加工时更换刀具,则需要进行长度补偿。长度补偿的值等于所换刀具与零长度刀具的长度差。另外,当把刀具长度的测量基准面作为控制点,则刀具长度补偿始终存在。无论用哪一把刀具都要进行刀具的####长度补偿。程序中调用长度补偿的指令为G43 H_。G43是刀具长度正补偿,H_是选用刀具在数控机床中的编号,可使用G49取消刀具半径长度补偿。刀具的长度补偿值也可以在设置机床工作坐标系时进行补偿。在加工中心机床上刀具长度补偿的使用,一般是将刀具长度数据输入到机床的刀具数据表中,当机床调用刀具时,自动进行长度的补偿。