在数控车床加工当中,我们所用的刀片,在刀尖部位,不是尖的,都是带有一定的圆弧。所以在加工的时候,经常用到刀尖半径补偿,特别是在加工圆弧和锥面的时候,不然加工出的圆弧和锥面是不准确的。下面我们来一一讲解。
1G40刀尖补偿取消
G40属于模态指令,G40的功能为刀尖补偿取消,可以配合G41、G42一起使用,也可以单独使用,比如可以在刀具代码前面加G40。这样有什么作用呢?其作用是防止出错,下面通过例题进行讲解。
例2-15编制下图程序。
G40T0101M08;(G40用于防止出错)
M03S1000;
GOX0Z2;
;
G42X10;(执行刀尖半径补偿)Z-10;
;
W-2G40;
(G40用于取消刀尖半径补偿)
G0U2;
M05;
M09;
G0Z150;
M30;
%
在例2-15中的T0101前面有个G40,可能很多读者想不明白,那里的G40是如何防止出错的呢?假如正在车削Z-10那段,突然刀坏了,当手动退出来并从程序开头车削时,会发生两种情况:①直接撞刀;②停止不动。所以考虑到意外因素,加上G40保险,在实际加工中的效果显著。现在通过下图看看刀尖半径补偿的运行轨迹。
上图就是刀尖半径补偿的运行轨迹,从补偿建立到补偿进行再到补偿取消,分为3段,刀尖半径补偿取消为最后一段,也就是说G40只能加在补偿的最后,接下来看一下内孔如何取消刀尖半径补偿。
例2-16编制下图程序。
G40T0202M08;
(G40用于防止出错)
M03S950;
G0X33Z2;
(安全定位)
;
(靠近工件)
G41X30;
(内孔从右到左车削,2号假想刀尖方向)
X20W-20;
Z-32G40;
(直线部分不需要半径补偿就可以用G40取消了)
G0U-1;
(退刀)
M05;
M09;
G0Z150;
M30;
%
例2-16是一个内孔前面为锥度,后面为直线的工件,锥度需要刀尖补偿,直线则不需要,所以在直线部分就可以用G40取消掉。
G40刀尖半径补偿取消的位置很重要,一旦格式不对就会过切。
2G41刀尖半径左补偿
在上一节中讲了G40,G40要跟G41配合使用。其实在实际工作中,很多人不懂假想刀尖是什么、有什么作用,当然也有很多人根本不会用,数控说明书上写的也看不懂,可能是因为专业术语太多,大家不理解。现在我们就从一个学徒的角度去理解。
G41为模态指令,G41的功能为刀尖半径左补偿。为什么属于左补偿呢?因为它是刀尖圆弧中心沿编程轨迹的左侧运动,它是数控系统为了消除刀尖圆弧对加工精度的影响而采用的一种计算方法,将原来控制假想刀尖的运动轨迹转换成控制刀尖圆弧中心的运动轨迹。现在通过下图来看看实际刀尖跟假想刀尖的区别。
a)90°外圆刀假想刀尖b)90°外圆刀实际刀尖
从上图可以清楚地看到,假想刀尖是没有圆弧的,而实际刀尖是有圆弧的。那么既然有圆弧就要补偿,这就是刀尖半径补偿的由来。下面通过下图对比一下假想刀尖跟实际刀尖加工锥面的轨迹。
通过上图可以发现,假想刀尖加工轨迹A到B车削出来的尺寸是准确的,而带圆弧的实际刀尖从C车削到D明显达不到尺寸,因为刀尖有个圆弧,车削出来的尺寸肯定会偏大,这也可以说明,用带刀尖圆弧的刀加工锥度是需要刀尖半径补偿的,接下来继续通过下图了解加工圆弧需不需要刀尖半径补偿。
像上图这种图形,目前有两种方法,一种在以前的文章中讲过,可以把刀尖圆弧加在工件圆弧上面去,那么另外一种方法就是用刀尖半径补偿来实现假想刀尖编程。刀尖半径补偿的原理介绍完毕了,接下来看看刀尖半径补偿指令,见表2-3表
从表2-3可以很清楚地看到每个指令的功能和运动轨迹。可能很多读者会问了,那么G41具体要怎么用呢?现在通过下图来看看。
(1)
从上图可以看到,G41是从右往左车削内孔的,反之从左往右车削内孔的就是G42了。G42是从右往左车削外圆,刚好跟内孔相反。如果你不知道左右,你应该知道自己的左右手吧,这是一个非常简单的方法,主要是好记。下面看看图2-27中G41是如何车削外圆的。
(2)
从上图可知,G41是从左往右车削外圆的,跟第一副图中车削内孔的方向刚好相反,只要记住不管前置刀架还是后置刀架或者排刀架,G41方向都是一样的。主要是看刀尖的左右补偿,这里怕大家分不清楚,我就给大家想了个好记的办法:外圆从左往右车削用G41刀尖半径补偿,从右往左车削用G42刀尖半径补偿。前面通过上面两幅图了解了G41的走刀方向,这样就完了吗?答案肯定是还没有。因为还有一个刀尖假想方向没有说,具体看下面两幅图后置刀座和前置刀座。
(3)
(4)
看到这里读者可能就有疑惑了:这个假想刀尖号码怎么看呢?怎么跟车刀对应呢?其实工作中常用的号码如下:
刀尖号码为2:常规内孔刀或者内孔偏刀;
刀尖号码为3:常规外圆刀或者外圆偏刀;
刀尖号码为6:内孔正尖刀或者内孔槽刀;
刀尖号码为7:端面正尖刀或者端面槽刀;
刀尖号码为8:外圆正尖刀或者外圆槽刀。
如果现在还不明白的话,那就看看图5,这里解释得非常清楚。
(5)
从图1到图5,相信大家对G41车削方向及假想刀尖方向有了一个全新的认识。在加工中,只要将假想刀尖方向输入到刀尖半径补偿里面去,将刀尖圆弧半径输入到刀尖半径补偿下面去。编程的时候把G41带入到程序里面去,尺寸按图样输入就行。通过图6看看刀尖半径补偿该怎么输入吧。
(6)
图6是一个刀尖半径补偿界面,里面的R代表刀尖圆弧半径,T代表假想刀尖号码。打个比方,1号刀是一把外圆刀,需要用刀尖圆弧半径补偿进行车削,刀尖半径是0.8mm,就把输入到刀尖半径补偿R下面去,输入方法为:输入再点下输入按键就可以了。然后把假想刀尖号码输入到T下面去,外圆刀假想刀尖号码为3号,记住,不管是用G41还是用G42,外圆刀假想刀尖号码都是3号,输入方法为:输入T3再点下输入按键。当然,每个系统的输入方法可能不同,有的不用带R字母或者T字母,直接输入数字就可以,有的系统则必须带,具体操作根据数控系统来决定。在这里理论知识就学习完毕了,接下来,我们通过例题进行讲解。
例2-17编制图7程序。
(7)
(毛坯外圆直径为42mm,内孔直径为18mm,刀尖圆弧半径为0.8mm。)
00001;
(程序号)
G99;
(每转进给)
G40T0101M08;
(换1号刀车削外圆,开切削液)
M03S1000;
(主轴正转,转速为1000r/min)
G0X45Z0;
(快速移动到安全位置,比毛坯大就可以了)
;
(用G1车削端面,切削速度为0.2mm/r)
;
(快速退刀0.5mm)
X40;
(定位到成品尺寸,等待切削)
;
(用G1车削外圆,车削长度为33.5mm)
G0U1;
(快速退刀)
G0Z160;
(退回安全位置准备换刀)
G40T0202M08;
(换2号内孔刀车削内孔)
M03S1000;
(主轴正转,转速为1000r/min)
G0X20Z2;
(毛坯内孔直径为18mm,快速定位到X20Z2的位置准备车削第1刀)
;
(用G1靠近工件)
;
(第1刀车削一个斜度)
G0Z1;
(快速退刀)
;
(快速定位到第2次切削起点)
;
(靠近工件)
;
(第2刀车削一个斜度)
G0Z1;
(快速退刀)
X27;
(定位到第3次切削起点)
;
(靠近工件)
;
(第3刀车削一个斜度)
G0Z1;
(快速退刀)
;
(快速定位到第4次切削起点,留0.1mm精车余量)
;
(靠近工件)
;
(第4刀车削一个斜度,内孔和长度留0.1mm精车余量)
;
(内孔车削长度为33.5mm,等下还要用槽刀切下来)
G0U-1;
(快速退刀)
G0Z150;
(快速退到安全位置,准备换刀)
G40T0303M08;
(换3号内孔精车刀)
M03S1000;
(主轴正转,转速为1000r/min)
G0X33Z2;
(定位比成品X30大,这样不会过切)
;
(靠近工件)
G41X30;
(加上G41刀尖半径补偿,车削出来的斜度尺寸非常准确)
X20Z-20;
(内孔从右往左车削,假想刀尖2号方向)
Z-33G40;
(到直线部分不需要补偿就可以用G40取消掉)
G0U-2;
(快速退刀)
G0Z150;
(快速退回安全位置,准备换刀)
G40T0404M08;
(换4号切槽刀,槽刀宽3mm,对刀按左边刀尖对Z0点)
M03S700;
(转速为700r/min)
G0X45Z2;
(快速定位到安全位置,比工件大就可以)
;
(给工件留0.5mm长的余量,刀宽3mm,30.5mm+3mm=33.5mm)
;
(用G1切断,内孔毛坯直径为18mm,切削到16mm,比内孔小就可以)
G0X45;
(退刀到外圆安全位置)
M05;
M09;
G0Z150;
M30;
%
例2-17程序加工的是一个简单的工件,用刀尖圆弧半径补偿来车削内孔斜度。下面来一步一步地分析。先用1号外圆刀把外圆做好,再换2号内孔刀开始粗车内孔,这里用的是G1来编程的。内孔粗车加工完毕以后,进行内孔精车,用G41刀尖半径补偿车削,这样做出来的斜度尺寸非常准确。可能很多人不明白为何定位到X33,这是为了防止过切。用这样的格式编程,就不会过切了,数控说明书上的格式跟这个不同,所以很多人用了会出现过切,现在把这种格式分享给大家。先定位在比内孔口头大的位置,靠近工件,在执行G41时,把起点X轴尺寸放在G41后面,这样不会过切。车削到内孔直线地方时,没有必要补偿就用G40取消。内孔做好后,用槽刀把工件切下来,看到这里,可能有细心的读者就会说:你那个G0X45没有必要嘛,前面一段切到X16那里就可以直接往Z轴正方向退刀。其实这里加G0X45是为了防止刀坏,假如切刀在切槽时坏了,工件没有切下来,但是刀还在X16位置,如果此时直接往Z轴正方向退刀,槽刀就会被直接拉出来,要么就是刀架卡死等。程序中在每个刀具指令前面加G40是为防止出错,在上一节已经讲解了。
刀尖半径补偿页面(8)
上表中的刀尖半径补偿表示为3号刀,刀尖圆弧半径为0.8mm,假想刀尖方向为2号,2号属于内孔假想刀尖方向。另外,刀尖半径补偿可以输入在改刀刀补里,也可以输入在对刀刀补里,但是不能重复,否则会报警干涉。到这里,内孔补偿就讲解完毕了。接下来通过实例学习一下用G41车削外圆。
例2-18
编制图9程序。
(毛坯直径为42mm,刀尖圆弧半径为0.8mm,刀尖半径补偿页面见表10)
(9)
(10)
00001:
G99;
G40T0101M08;(加G40防止下面G41程序段出现意外)
M03S1000;
;(安全定位)
;(由于刀尖圆弧半径为0.8mm,这里按直径算,就是)
;
(快速往Z轴正方向退刀0.5mm)
X37;
(快速定位)
;
(车削直线,留0.08mm精车余量)
;
(退刀)
G0Z1;
(定位)
;
(快速定位)
;
(车削直线)
;
G0Z1;
X31;
;
(靠近工件)
;
(车削斜度)
G0Z1;
X27;
;
(靠近工件)
;
(车削斜度)
G0Z1;
X23;
;
;
G0Z1;
;
;
;
;
;
G0U2;
G0Z150;
G40T0202M08;
(加G40是怕车削到G41那个程序段时刀坏,在需要重新开始车削时,会发生报警或者撞刀)
M03S1000;
G0X42Z2;
(安全定位)
Z-18;
(定位到起点)
;
(靠近工件)
;
(外圆从左往右车削,假想刀尖方向为3号)
;
X20Z0;
X0;
G40;
(刀尖半径补偿取消)
M05;
M09;
G0Z150;
M30;
%
通过例2-18,我们对用G41车削外圆有了一个全新的了解。现在一起分析一下。先用一把外圆粗车刀,把产品端面和外圆做好,长度留0.1mm精车余量,然后再换2号刀,加上G41刀尖半径补偿开始精车。记住,外圆从左往右车,用G41,假想刀尖方向为3号。当然也要注意格式的变化,最好是把G41加在Z轴上,如。X轴先用G1靠近工件,这样就不会出现过切者干涉。刀尖半径补偿如果出现过切或者干涉,要么是格式不对,要么是程序不对,要么就是补偿不对。还有很重要的一点就是,补偿可以输入在改刀刀补里面,也可以输入在对刀刀补里面,但是不能重复,否则会报警干涉。
本节到这里对G41补偿的讲解就结束了,可能读者会有个疑问:当我编制的程序里面没有用到G41刀尖半径补偿,但是在刀尖半径补偿里面输入了刀尖圆弧半径和假想刀尖方向,有没有影响呢?答案肯定是没有影响的,因为程序里面没有用G41,刀尖半径补偿也就没有起作用,所以里面的数据可以不用取消。
3G42刀尖半径右补偿
在上一节中讲了G41,G40也要跟G42配合使用。
G42为模态指令,G42的功能为刀尖半径右补偿。为什么属于右补偿呢?因为它是刀尖圆弧中心沿编程轨迹的右侧运动,是数控系统为了消除刀尖圆弧对加工精度的影响而采用的一种计算方法,将原来控制假想刀尖的运动轨迹转换成控制刀尖圆弧中心的运动轨迹。现在通过下图1来看看实际刀尖跟假想刀尖的区别。
图1
从图1可以清楚地看到,假想刀尖是没有圆弧的,而实际刀尖是有圆弧的。那么既然有圆弧就要补偿,这就是刀尖半径补偿的由来。下面通过图2对比一下假想刀尖跟实际刀尖加工锥面的轨迹。
图2
a)假想刀尖加工轨迹b)实际刀尖加工轨迹
通过图2可以发现,假想刀尖加工轨迹A到B车削出来的尺寸是准确的,而带圆弧的实际刀尖从C车削到D明显达不到尺寸,因为刀尖有个圆弧,车削出来的尺寸肯定会偏大,这也可以说明,用带刀尖圆弧的刀加工锥度是需要刀尖半径补偿的,接下来继续通过图3了解加工圆弧需不需要刀尖半径补偿。
图3
接下来通过例题讲解G42的用法。
编制图4程序。
图4
(毛还外圆直径为42mm,内孔直径为18mm,刀尖圆弧半径为0.8mm。)
00001;
(程序号)
G99:
(每转进给)
G40T0101M08;(换1号刀车削外圆,开切削液)
M03S1000;
(主轴正转,转速为1000r/min)
G0X45Z0;(快速移动到安金位置,比毛还大就可以了)
;
(用G1车削端面,切削速度为0.2mm/r)
;
(快速退刀0.5mm)
X40;
(定位到成品尺寸,等待切削)
;
(用G1车削外圆,车削长度为33.5mm)
G0U1;
(快速退刀)
G0Z160;
(退回安全位置准备换刀)
G40T0202M08;
(换2号内孔刀车削内孔)
M03S1000;
(主轴正转,转速为1000r/min)
G0X20Z2;
(毛坯内孔直径为18mm,快速定位到X20Z2的位置准备车削第1刀)
;
(用G1靠近工件)
;
(第1刀车削一个斜度)
G0Z1;
(快速退刀)
;
(快速定位到第2次切削起点)
(靠近工件);
;
(第2刀车削一个斜度)
G0Z1;
(快速退刀)
X27;
(定位到第3次切削起点)
;
(靠近工件)
;
(第3刀车削一个斜度)
G0Z1;
(快速退刀)
;
(快速定位到第4次切削起点,留0.1mm精车余量)
;
(靠近工件)
;
(第4刀车削一个斜度,内孔和长度留0.1mm精车余量)
;
(内孔车削长度为33.5mm,等下还要用槽刀切下来)
G0U-1;
(快速退刀)
G0Z150;
(快速退到安全位置,准备换刀)
G40T0303M08;
(换3号内孔精车刀)
M03S1000;
(主轴正转,转速1000r/min)
G0X19Z2;
(定位到比内孔小的位置)
Z-33;
(快速移动到内孔里面,因为要从左往右车削)
;
(靠近工件)
G42Z-20;
(用G42刀尖半径补偿,从左往右车削)
X30Z0;
(车削斜度,从左往右车削)
U2G40;
(取消刀尖半径补偿,Ⅹ轴往上移动,这样不会过切)
G0Z150;
(快速退回到安全位置,准备换刀)
G40T0404M08;
(换4号切槽刀,槽刀宽3mm)
M03S700;
(转速为700r/min)
G0X45Z2;
(快速定位到安全位置,比工件大就可以)
;
(给工件留0.5mm长的余量,刀宽3mm,30.5mm+3mm=33.5mm)
;
(用G1切断,内孔毛坯直径为18mm,切削到16mm,
比内孔小就可以)
G0X45;
(退刀到外圆安全位置)
M05;
M09;
G0Z150;
M30;
%
上例程序制作的是一个简单的工件,用刀尖圆弧半径补偿来车削内孔斜度。下面来一步一步地分析。先用1号外圆刀把外圆做好,再换2号内孔刀开始粗车内孔,这里用的是G1来编程的。内孔粗车加工完毕以后,进行内孔精车,用G42刀尖半径补偿车削,这样做出来的斜度尺寸非常准确。可能很多人不明白为何用U2G40,这是为了防止过切。用这样的格式编程,就不会过切了,数控说明书上的格式跟这个不同,所以很多人用了会出现过切,现在把这种格式分享给大家。内孔做好后,用槽刀把工件切下来,看到这里,可能有细心的读者就会说:你那个G0X45没有必要嘛,前面一段切到X16那里就可以直接往Z轴正方向退刀。其实这里加G0X45是为了防止刀坏,假如切刀在切槽时坏了,工件没有切下来,但是刀还在X16位置,如果此时直接往Z轴正方向退刀,槽刀就会被直接拉出来,要么就是刀架卡死。程序中在每个刀具指令前面加G40是为防止出错,在上一节已经讲解了。
表1
上表中的刀尖半径补偿表示为3号刀,刀尖圆弧半径为0.8mm,假想刀尖方向为2号,2号是属于内孔假想刀尖方向。无论是G41还是G42,内孔假想刀尖方向都是2号。另外,刀尖半径补偿可以输入在改刀刀补里,也可以输入在对刀刀补里,但是不能重复,否则会报警干涉。到这里,内孔补偿就讲解完毕了。接下来通过编程实例学习一下用G42车削外圆。
例2-20编制图5程序。
图5
(毛坯直径为42mm,刀尖圆弧半径为0.8mm,刀尖半径补偿页面见表2)
表2
00001;
G99;
G40T0101M08;(加G40防止下面G41程序段出现意外)
M03S1000;
;
;(由于刀尖圆弧半径为0.8mm,这里按直径算,就是)
;
X37;
;
;
G0Z1;
;
;
;
G0Z1;
X31;
;
;
G0Z1;
X27;
;
;
G0Z1;
X23;
;
;
G0Z1;
;
;
;
;
;
G0U2;
G0Z150;
G40T0202M08;(加G40是怕车削到G42程序段时刀坏,在需要重新开始车削时,会发生报警或者撞刀)
M03S1000;
G0X0Z2;
;(开始执行G42刀尖半径补偿)
X20;
;
;
;
(在直线部分就可以用G40取消掉)
G0U2;
M05;
M09;
G0Z150;
M30;
%通过例2-20,我们对用G42车削外圆有了一个全新的了解。现在一起分析一下。先用一把外圆粗车刀,把产品端面和外圆做好,长度留0.1mm精车余量,然后再换2号刀,加上G42刀尖半径补偿开始精车。记住,外圆从右往左车,用G42,假想刀尖方向为3号。无论是G41还是G42,假想刀尖方向都是3号,当然也要注意格式的变化,最好是把G42加在Z轴上,如G42Z0。当然也可以加在X轴上面,这样也不会出现过切或者干涉。刀尖半径补偿如果出现过切或者干涉,要么是格式不对,要么是程序不对,要么就是补偿不对。如果出现格式不对,把G42的位置上下换一下就可以了。还有很重要的一点就是,补偿可以输入在改刀刀补里面,也可以输入在对刀刀补里面,但是不能重复,否则会报警干涉。
本节到这里对G42补偿的讲解就结束了,可能读者会有个疑问:当我编制的程序里面没有用到G42刀尖半径补偿,但是在刀尖半径补偿里面输入了刀尖圆弧半径和假想刀尖方向,有没有影响呢?答案肯定是没有影响的,因为程序里面没有用G42,刀尖半径补偿也就没有起作用,所以里面的数据可以不用取消。希望读者好好学习例题,消化它,并且要能在工作中灵活运用。

















