2.3 数控铣床编程指令
2.3.1 基本编程指令
(1)直线运动(G00、G01)
①快速定位 G00指令能快速移动刀具到达指定的坐标位置,用于刀具进行加工前的空行程移动或加工完成后的快速退刀,以提高加工效率。
指令格式:G00 IP—;
在此,IP—如同X— Y — Z—,IP—可以是X、Y、Z三轴中的任意一个、两个或者是三个轴。
在绝对指令时,刀具以快速进给率移动到加工坐标系的指定位置,或在相对增量指令时,刀具以快速进给率从现在位置移动到指定距离的位置。
G00快速定位指令在执行时,各轴移动独立执行,移动的速度由机床制造厂设定。当IP—为一个轴时,刀具是直线移动;当为两个或者三个轴时,刀具路径通常不是直线,而是折线。
例:某数控机床快速定位时,X、Y轴的移动速度为9600mm/min 。
当使用指令G00 G90 X300.0 Y150,0;时,X轴移动的距离为300,Y轴移动的距离为150, Y轴首先到达终点,刀具移动的轨迹如图2-22所示,是一条折线。
②G01进给切削(直线插补)指令 G01指令能使刀具按指定的进给速度移动到指定的位置。当主轴转动时,使用G01指令可对工件进行切削加工。
指令格式:G01 α— β— F—;
(α、β=X,Y,Z,A,B,C,U,V,W)
α— β—可以是X、Y、Z、A、B、C、U、V、W轴中的任意一个、两个或者是多个轴。当为两个轴时,即为两轴联动。当为三个轴时,即为三轴联动。当为多个轴时(如为五个轴),即为五轴联动。
G01以编程者指定的进给速度进行直线或斜线运动,运动轨迹始终为直线。α、β值定义了刀具移动的距离,它与现在状态G90/G91有关。F码是一个模态码,它规定了实际切削的进给率。
例:如图2-22所示,当使用指令G01 G90 X300.0 Y150.0 F100;时,刀具运动按照进给速度100mm/min移动,轨迹是一条直线。
图2-22 G00、G01指令时的刀具轨迹
提示:使用G01指令,刀具轨迹是一条直线;使用G00指令,刀具轨迹路径通常不是直线,而是折线。G01指令中,需要指定进给速度,而在G00指令中,不需要指定速度。
例:G01、G00的使用(如图2-23所示)
图2-23 G01、G00的使用
(2)圆弧插补(G02、G03)
①平面选择 由G代码选择圆弧插补平面、刀具半径补偿平面及钻孔平面,平面的确定如图2-24所示。
图2-24 G17、G18、G19平面
平面选择指令:
G17……XY平面 G18……ZX平面 G19……YZ平面
提示:G17、 G18、 G19平面,均是从Z、Y、X各轴的正方向向负方向观察进行确定。
②加工圆弧格式:
a. G02、G03:圆弧插补用于加工圆弧,G02表示顺时针加工圆弧,G03表示逆时针加工圆弧,如图2-25、图2-26所示。
图2-25 G02、G03
图2-26 圆弧的方向判别
b.圆弧的起点、终点如图2-27所示。
始点=加工圆弧的起点
终点=加工圆弧的终点
图2-27 圆弧的起点、终点、中心
圆心和半径需要使用I、J、K指令或R指令,表示加工圆弧的终点的坐标取决于加工圆弧所在的平面。
c. I、J、K指令:加工圆弧的圆心和半径可以使用I、J、K指令表示,如图2-28所示。
图2-28 I、J指令
I—是圆弧的始点A到圆弧中心矢量在X轴上的分量,I—的大小取决于分量的长度,方向由正或负决定,分量与X轴正向相同为正,反之,为负。
同理,J—是始点A到圆弧中心矢量在Y轴上的分量,K—是始点到圆弧中心矢量在Z轴方向的分量。
例:加工图2-28中A—B圆弧的ABS指令:
G90 G03 X20.0 Y40.0 I-30.0 J-10.0 F100;
其中:
X20.0 Y40.0 B点(圆弧的终点)的坐标 I-30.0 J-10.0 A点(圆弧的始点)到圆心的矢量
例:加工图2-28中A—B圆弧的INC指令:
G91 G03 X-20.0 Y20.0 I-30.0 J-10.0 F100;
其中:
X-20.0 Y20.0 B点(圆弧的终点)的坐标 I-30.0 J-10.0 A点(圆弧的始点)到圆心的矢量
d. R指令:加工圆弧的中心和半径可以使用R指令表示(图2-29)。
图2-29 R指令
R—表示圆弧的半径。
例:加工图2-29中A—B圆弧的ABS指令:
G90 G02 X70.0 Y20.0 R50.0 F100;
其中:
X70.0 Y20.0 B点(圆弧的终点)的坐标 R50.0 圆弧半径
例:加工图2-29中A—B圆弧的INC指令:
G91 G02 X50.0 Y-50.0 R50.0 F100;
其中:
X50.0 Y-50.0 B点(圆弧的终点)的坐标 R50.0 圆弧半径
用半径R代替I、J、K指定圆的中心,走刀路线有两种情况(如图2-30所示),为了使走刀路线唯一,规定如下:
图2-30 R的正负
● 圆心角α>180°的圆弧,半径必须用负值指定。
● 圆心角α≤180°的圆弧,半径必须用正值指定。
例:如图2-31所示,加工圆心角>180°的圆弧。
图2-31 圆心角>180°的圆弧加工
·ABS指令:
·INC指令:
e.整圆加工:整圆加工的始点和终点重合,如果使用R指令,走刀路线无法确定,如图2-32所示。
图2-32 整圆加工
因此,整圆加工一般使用I、J、K指令。
技巧:I、J、K指令主要用于整圆加工,亦可用于圆弧加工,圆弧在图纸上标注一般为半径,因此,圆弧加工多用R指令。如果使用R指令加工整圆,需要将整圆进行等分。
例:加工如图2-33所示的圆,A点为始点,顺时针加工圆。
图2-33 整圆加工实例
·ABS指令:
G90 G02 (X0 Y40) J-40 F100;
·INC指令:
G91 G02 (X0 Y0) J-40 F100;
例:如图2-34所示,刀具切削深度为10,Z轴的零点在工件的上表面。
图2-34 圆弧加工
O1; N1 G90 G54 G17 G00 X-60.0 Y-40.0 S1000 M03; N2 Z100; 刀具的安全位置距工件上表面100mm N3 Z5.0; 切削的始点距工件上表面5mm N4 G01 Z-10 F100; N5 Y0; N6 G02 X0 Y60.0 I60.0; 或(R60.0) N7 G01 X40.0 Y0; N8 G02 X0 Y-40.0 I-40.0; 或(R40.0) N9 G01 X-60.0(Y-40.0); N10 G00 X0 Y0 N11 M30;
例:如图2-35所示,刀具沿箭头方向移动,最后回到原点。
图2-35 零件加工
O0030(ABS); O0030(INC); G90 G54 G00 X10.0 Y20.0 S500 M03; G91 G00 X10.0 Y20.0 S500 M03; G01 (X10.0) Y40.0 F100; G01 Y20.0 F100; X30.0 (Y40.0); X20.0; (X30.0) Y50.0; Y10.0; G02 X40.0 Y60.0 I10.0 (J0); G02 X10.0 Y10.0 I10.0; G01 X60.0 (Y60.0); G01 X20.0; G02 X70.0 Y50.0 (I0) J-10.0; G02 X10.0 Y-10.0 J-10.0; G01 (X70.0) Y40.0; G01 Y-10.0; X90.0 (Y40.0); X20.0; (X90.0) Y20.0; Y-20.0; X80.0 (Y20.0); X-10.0; G02 X60.0 (Y20.0) I-10.0 (J0); G02 X-20.0 I-10.0; G01 X40.0 (Y20.0); G01 X-20.0; G02 X20.0 (Y20.0) I-10.0 (J0); G02 X-20.0 I-10.0; G01 X10.0 (Y20.0); G01 X-10.0; G00 X0 Y0 M05; G00 X-10.0 Y-20.0 M05; M30; M30;
提示:直线、圆弧、二次曲线等几何元素间的连接点称为基点。基点可通过计算求得,亦可通过CAD/CAM软件由作图求得。
例:加工图2-36所示轮廓。
图2-36 圆弧加工
O0050(ABS); G90 G54 G00 X-30.0(Y0)S500 M03; G02 X6.0 Y29.394 R30.0 F100; G01 X54.0 Y19.596; G02 X38.0 Y-16 R-20; G03 X24.0 Y-18.0 R10.0; G02 X-30.0 Y0 R30.0; G00 X0 Y0 M05; M30;
2.3.2 刀长补的建立和取消G43、G44、G49
(1)为什么要使用刀长补
在NC机床中,Z轴的坐标是以主轴端面为基准。如果使用多把刀具,刀具长度存在差异,若在程序制作中,Z轴的坐标以刀具的刀尖进行编程,则需要在程序中加上刀具的长度,这样程序可读性很差。
实际程序制作中为刀具设定轴向(Z向)长度补偿,Z轴移动指令的终点位置比程序给定值增加或减少一个补偿量。
在程序中使用刀具长度补偿功能,当刀具长度尺寸变化时(如刀具磨损),可以在不改动程序的情况下,通过改变补偿量达到加工尺寸。此外,利用该功能,可在加工深度方向上进行分层铣削,即通过改变刀具长度补偿值的大小,由多次运行程序而实现。
另外,利用该功能,可以空运行程序,检验程序的正确性。
(2)刀具长度补偿格式
①补偿方向:
G43 +方向补偿
G44 -方向补偿
不论在绝对或相对指令中,Z轴移动的终点坐标值,G43加算,G44减算。计算结果的坐标值成为终点。Z轴移动的速度根据G00、G01指令来确定。
②补偿值:其中Z 为指令终点位置,H为刀补号的内存地址,用H00~H99来指定。在H00~H99内存地址所指的内存中,存储着刀具长度补偿的数值,用H00~H99来调用内存中刀具长度补偿的数值。
执行G43时,控制系统认为刀具加长,刀具远离工件(如图2-37所示),Z实际值为:
Z实际值=Z指令值+(H××)
图2-37 刀具长度补偿的应用
执行G44时,控制系统认为刀具缩短,刀具趋近工件(如图2-37所示),Z实际值为:
Z实际值=Z指令值-(H××)
其中,H××是指××寄存器中的补偿量,其值可以是正值或者负值。当刀长补偿量取负值时,G43和G44的功效将互换。
(3)刀具长度取消
用G49指定补偿取消。刀具长度补偿取消一般在刀具加工完成后执行。Z轴移动的速度根据G00、G01指令来确定。
(4)G43、G44、G49均为模态指令
例:G43、G49的使用(如图2-38所示)
图2-38 刀具长度补偿的使用
设H02=200mm时
N1 G92 X0 Y0 Z0; 设定当前点O为程序零点 N2 G90 G00 G43 Z10.0 H02; 指定点A,实到点B N3 G01 Z0.0 F200; 实到点C N4 Z10.0; 实际返回点B N5 G00 G49 Z0; 实际返回点
使用G43、G44相当于平移了Z轴原点。即将坐标原点O平移到了O'点处,后续程序中的Z坐标均相对于O'进行计算。使用G49时则又将Z轴原点平移回到了O点。
在机床上有时可用提高Z轴位置的方法来校验运行程序。
例:如图2-39所示,工件表面为Z轴的零点,程序中,刀长补使用正补偿(G43),第一次加工后的有关参数如下:
图2-39 刀长补的应用
深度:1
程序中的加工深度(按中差设置):Z-10.05
切削加工后,测量深度:9.9
显然,深度没有达到要求,第二次加工时,应当更改刀长补的值,具体计算如下:
加工深度-测量深度=10.05-9.9=0.15
因此,为了达到加工深度,H01=-0.15。
实际加工时,为了消除对刀误差和加工工艺条件的影响,第一次一般给刀具加上一个补偿值,并不加工到深度,加工后,根据测量深度更改补偿值。第一次加工的参数如下:
H01=1
程序中的加工深度(按中差设置):Z-10.05
切削加工后,测量深度:8.9
第二次加工时,刀长补的值:9.05-8.9=0.15
H01=-0.15
提示:
安全高度:刀具在此高度在G17平面移动不会发生碰撞。
参考高度:一般作为Z轴的进刀点,从安全高度移动到参考高度一般采用快速移动。
工件表面:通常将工件表面作为Z轴的原点。从参考高度到加工深度按进给速度移动,返回时可快速移动到参考高度或安全高度,参考高度和工件表面的距离一般为3~5,可根据工件表面情况而定。
(5)刀具长度补偿的方法
①数控铣床上的刀具长度补偿的方法 在数控铣床上,主要采用接触法测量刀具长度来进行刀具长度补偿。
使用接触测量法测量刀具长度如图2-40所示,设置过程就是使刀具的刀尖运动到程序原点位置(Z0)。在控制系统的刀具长度补偿菜单下相应的H补偿号里输入值。
图2-40 接触法测量刀具长度
例如,设置刀具长度的补偿值为0,该刀具的补偿号为H03,操作人员在补偿显示屏上的03号里输入测量长度0:
02……. 03 0. 04……
②加工中心刀具长度补偿的方法 加工中心刀具长度补偿常用以下两种方法:预先设定刀具方法,基于外部加工刀具的测量装置(对刀仪);主刀方法:它基于最长刀具的长度。
a.预先设定刀具方法(机外对刀仪)。机外对刀仪,主要用于加工中心。加工中心机外对刀仪示意图如图2-41所示。机外对刀仪用来测量刀具的长度、直径和刀具形状、角度。刀库中存放的刀具,其主要参数都要有准确的值,这些参数值在编制加工程序时都要加以考虑。使用中因刀具损坏需要更换新刀具时,用机外对刀仪可以测出新刀具的主要参数值,以便掌握与原刀具的偏差,然后通过修改刀补值确保其正常加工。此外,用机外对刀仪还可测量刀具切削刃的角度和形状等参数,有利于提高加工质量。
图2-41 对刀仪示意图
对刀仪由下列三部分组成:
● 刀柄定位机构。对刀仪的刀柄定位机构与标准刀柄相对应,它是测量的基准,所以有很高的精度,并与加工中心的定位基准要求一样,以保证测量与使用的一致性。
● 测头与测量机构。测头有接触式和非接触式两种。接触式测头直接接触刀刃的主要测量点(最高点和最大外径点);非接触式主要用光学的方法,把刀尖投影到光屏上进行测量。测量机构提供刀刃的切削点处的 Z轴和X轴(半径)尺寸值,即刀具的轴向尺寸和径向尺寸。测量的读数有机械式(如游标刻线尺)的,也有数显或光学的。
● 测量数据处理装置。该装置可以把刀具的测量值自动打印出来,或与上一级管理计算机联网,进行柔性加工,实现自动修正和补偿。
加工中心编程为方便起见,每一刀具指定的刀具长度补偿号通常对应于刀具编号,T01刀具对应的长度补偿号为H01。工件坐标系设置过程采用测量主轴基准点到工件坐标系原点位置,这一距离通常为负,通过MDI方式,建立工件坐标系,操作人员将长度测量值作为补偿值输入到控制系统的刀具长度补偿菜单下相应的H补偿号里,补偿值均为正值(图2-42),当加工工件时,不需要在机床上进行刀具长度检测,在刀具调用结束后,使用刀具长度补偿,格式如下:
M06 T1; G43 Z100 H01(Z100为安全高度)
图2-42 刀具长度补偿
b.主刀方法:它基于最长刀具的长度。
主刀方法,一般使用特殊的基准刀长度法(通常是最长的刀),可以显著加快使用接触测量法时的刀具测量速度。基准刀,可以是长期安装在刀库中的实际刀具,也可以是长杆。在Z轴行程范围内,这一“基准刀”的伸长量通常比任何可能使用的期望刀具都长。
基准刀并不一定是最长的刀。严格来说,最长刀具的概念只是为了安全。它意味着其他所有刀具都比它短。
选择任何其他刀具作为基准刀,逻辑上程序仍然一样。任何比基准刀长的刀具的H补偿输入将为正值;任何比它短的刀具的输入则为负值;与基准刀完全一样长短的刀具的补偿输入为0。主刀设置如图2-43所示。
图2-43 主刀设置法
2.3.3 刀具半径补偿的建立和取消G41、G42、G40
为了要用半径R的刀具切削一个用A表示的工件形状,如图2-44所示,刀具的中心路径需要离开A图形,刀具中心路径为B,刀具这样离开切削工件形状的一段距离称为半径补偿(径补)。
图2-44 半径补偿及矢量
径补的值是一个矢量,这个值记忆在控制单元中,这个补偿值是为了知道在刀具方向作多少补偿,由控制装置的内部作出,从给予的加工图形,以半径R来计算补偿路径。这个矢量在刀具加工时,依附于刀具,在编程时了解矢量的动作是非常重要的,矢量通常与刀具的前进方向成直角,方向是从工件指向刀具中心。
(1)刀具半径补偿的格式
X、Y、Z值是建立补偿的终点坐标值;
如使用G01时,须指定进给速度F—。
D 为刀补号地址,用D00~D99来指定,它用来调用内存中刀具半径补偿的数值。
(2)刀具半径补偿G41、 G42
径补计算是在由G17、G18、G19决定的平面上执行,选择的平面称为补偿平面。例如,当选择XY平面时,程序中用X、Y执行补偿计算,作补偿矢量。在补偿平面外的轴(Z轴)的坐标值不受补偿影响,用原来程序指令的值移动。
G17(XY平面):程序中用X、Y执行补偿计算,Z轴坐标值不受补偿影响。
G18(ZX平面):程序中用Z、X执行补偿计算,Y轴坐标值不受补偿影响。
G19(YZ平面):程序中用Y、Z执行补偿计算,Z轴坐标值不受补偿影响。
在进行刀径补偿前,必须用G17或G18、G19指定刀径补偿是在哪个平面上进行。
刀补位置的左右应是在补偿平面上、顺着编程轨迹前进的方向进行判断的。刀具在工件的左侧前进为左补,用G41指令表示,如图2-45所示。
图2-45 半径补偿G41
刀具在工件的右侧前进为右补,用G42指令表示,如图2-46所示。
图2-46 半径补偿G42
(3)刀具半径补偿的取消格式
刀具半径补偿在使用完成后需要取消,刀具半径补偿的取消通过刀具移动一段距离,使刀具中心偏移半径值。
提示:
● 径补的引入和取消要求应在G00或G01程序段 ,不要在G02/G03程序段上进行。
● 当径补数据为负值时,则G41、G42功效互换。
● G41、G42指令不要重复规定,否则会产生一种特殊的补偿。
● G40、G41、G42都是模态代码,可相互注销。
(4)刀具半径补偿的应用
下面通过一个应用刀具半径补偿的实例,来讨论刀具半径补偿使用中应当注意的一些问题。
例:如图2-47所示:
图2-47 刀具补偿应用
①刀具半径补偿量 刀具半径补偿量的设定,是在呼出D代码后的画面内,手动(MDI)输入刀具半径补偿值。在本例中,程序中刀具半径补偿的D代码为D01,刀具半径为5,可在对应的01后(图2-48),手动(MDI)输入刀具半径补偿量的值,其值设为5。
图2-48 刀具补偿量的设置
利用同一个程序、同一把刀具,通过设置不同大小的刀具半径补偿值,逐步减少切削余量,可达到粗、精加工的目的(图2-49) 。
粗加工时的补偿量:C=A+B
精加工时的补偿量:C=B
图2-49 刀具半径补偿值的改变
式中 A——刀具的半径;
B——精加工余量;
C——补偿量。
②刀具半径补偿开始 在取消模式下,当单段满足全部以下条件时刀具半径补偿开始执行,装置进入径补模式,称为径补开始单段。
a. G41或G42已指令;或控制进入G41或G42模式。
b.刀具补偿量的号码不是0。
c.在指令的平面上任何一轴(I、J、K除外)的移动,指令的移动量不是0。
d.在补偿开始单段,不能是圆弧指令(G02、G03),否则会产生报警,刀具会停止。
③刀具半径补偿中预读(缓冲)功能的使用 在CNC技术发展的过程中,刀具半径偏置方法也在不断发展,它的发展可分为三个阶段,也就是现在所说的三种刀具偏置类型:A类、B类和C类。
A类偏置:最老的方法, 灵活性最差,程序中使用特殊向量来确定切削方向(G39、G40、G41、G42)。
B类偏置:较老的方法, 灵活性中等,程序中只使用G40、G42和G41,但它不能预测刀具走向,因此可能会导致过切。
C类偏置:当前使用的方法, 灵活性最好。C类刀具半径偏置(也称为交叉类半径补偿)是现代CNC系统中使用的类型。用C类补偿的程序中只使用G40、G42和G41。
C类补偿具有预读(缓冲)功能,可以预测刀具的运动方向,从而避免了过切。具有预读功能的控制器,一般只能预读几个程序段,有的只能预读一个程序段,有的可以预读两个或两个以上的程序段,先进的控制系统可以预读1024个程序段。本例中,假设只能预读两个程序段。
刀具补偿指令从N2的G41开始,控制装置预先读N3、N4两个单段进入缓冲,N2中的X、Y及N3中的Y确定了刀具补偿的始点P(图2-50),同时也给出了刀具在工件的左侧加工、刀具前进的方向。
图2-50 刀具半径偏置中预读(缓冲)功能的使用
N3中的Y50.0对刀具的前进方向及始点P确定非常重要。
④形状加工 当进入补偿后,可用直线插补(G01)、圆弧插补(G02、G03)、快速定位(G00)指令。在第一个单段N3执行时,下两个单段N4、N5进入缓冲,当执行N4单段时,N5、N6进入缓冲,依次进行。控制装置通过对单段的计算,可确定刀具中心的路径轨迹及两个单段的交点A、B、C。图2-51给出一些常用的交点演算方式。
图2-51 常用的交点演算方式
⑤刀具半径补偿取消 刀具半径补偿必须在程序结束前指定,使控制系统处于取消模式。在取消模式,矢量一定为0,刀具中心路径与程序路径相重合。
本例中,N6中指定了刀具中心终点的位置,N7中用G40指定刀具补偿取消,刀具从N6指定的刀具中心终点位置向坐标原点移动,在移动中将刀具补偿取消(图2-52)。
图2-52 刀具补偿取消
(5)刀具半径补偿的过切问题
所谓过切,是指相对于编程路径对工件进行了过切(多切)和欠切(少切),它主要是由于刀具半径补偿的建立、应用、取消不当而造成的。编程中要避免此种情况发生。
下面继续通过图2-53,重新编写程序,编程路径如图2-54所示,讨论刀具半径补偿使用中的过切问题。
图2-53 轮廓加工
图2-54 轮廓加工的过切
例:
在执行N3单段时,后两个单段N4、N5已进入缓冲,但是,N4、N5只确定了刀具的Z轴进给,并没有给出刀具XY平面的前进方向,N3单段中的G41刀具补偿,使得刀具只能运动到P1点(如图2-54所示)。当执行N4单段时,N6单段进入缓冲,给出了Y50.0,刀具从P1点向A点移动,在此过程中会产生过切。
为了避免过切,以上程序亦可作如下修改:
修改1:
O0003; N1 G90 G54 G17 G00 X0 Y0 S1000 M03; N2 G43 Z100 H01; N3 G41 X20.0 Y10.0 D01; N4 Z-10; 从安全高度进到切削深度 N5 G01 Y50.0 F100; N6 X50.0; …
在上面的修改中,执行N3程序段时,后两个程序段N4、N5也进入缓冲寄存器存储。根据它们之间的关系,执行正确的偏置。
修改2:
O0003; N1 G90 G54 G17 G00 X0 Y0 S1000 M03; N2 G43 Z100 H01; N3 X20.0; N4 Z5.0; N5 G01 Z-10.0 F200; N6 G41 Y10.0 D01; N7 Y50.0 F100; …
在刀具半径偏置前,执行N3程序段,刀具运动到绝对不干涉的辅助点,执行N5程序段,Z轴进给到切削深度,然后加刀补。
修改3:
O0003; N1 G90 G54 G17 G00 X0 Y0 S1000 M03; N2 G43 Z100 H01; N4 Z5.0; 快速定位到Z轴的始点 N5 G41 X20.0 Y10.0 D01; N6 G01 Z-10.0 F200; 用G01切削到指定的深度 N7 Y50.0 F100; …
修改4:
O0003; N1 G90 G54 G17 G00 X0 Y0 S1000 M03; N2 G43 Z100 H01; N3 G41 X20.0 Y10.0 Z-10.0 D01; 三轴同时移动,Z轴补偿 N4 G01 Y50.0 F100;
…
修改5(如图2-55所示):
图2-55 过切的避免
O0003; N1 G90 G54 G17 G00 X0 Y0 S1000 M03; N2 G43 Z100 H01; N3 G41 X20.0 Y9.0 Z-10.0 D01;首先在进给方向建立刀补,然后Z轴进给到指定的深度 N4 Y10.0; N5 Z2.0; N6 G01 Z-10.0 F100; N7 G01 Y50.0 F200; N8 X50.0 …
当执行N3时,可确定刀具的切削点为P1(20,9),N4的坐标点为P2(20,10),N4、N7指令的刀具运动方向相同,刀具在工件的左侧切削。
(6)刀具半径补偿应用的注意事项
①补偿量的变更 一般补偿量的变更必须在取消模式中进行,如果在补偿模式中变更补偿量,新的补偿量的计算在单段终点进行(如图2-56所示)。
图2-56 补偿量的变更
G91 G41 D01; … N6 X30.0; N7 X50.0 D02; N8 X30.0 Y-30.0; …
交点A由N6、N7指令中给出的D01补偿量来确定。
交点B由N7、N8指令中给出的D02补偿量来确定。
②补偿量的正负及刀具中心路径 如果补偿量是负(-),在程序上G41、G42的图形分配彼此交换。
③刀具半径补偿的过切
a.较刀具半径小的内圆弧加工时(图2-57):
图2-57 内圆弧加工
当转角半径小于刀具半径时,刀具的内侧补偿将会产生过切。
为了避免过切,内侧圆弧的半径R应该大于刀具半径与剩余余量之和。外侧圆弧加工时,不存在过切的问题。内侧圆弧的半径R≥刀具半径r+剩余余量
如图2-57所示,为了避免过切,刀具的半径应小于图中最小的圆弧半径,即小于10R。
b.较刀具半径小的沟槽加工时:如图2-58所示,因为刀具半径补偿强制刀具半中心路径向程序路径反方向移动,会产生过切。
图2-58 沟槽加工
技巧:建立刀具半径补偿,使用 G00或G01指令使得刀具移动,刀具移动的长度一般要大于刀具的半径补偿值。通过移动一定的长度使刀具的中心相对编程路径偏移半径补偿值,否则半径补偿无法建立。
例:加工如图2-59所示的内圆,工件表面为Z轴原点,安全高度为100,参考高度(Z轴进刀点)2,加工深度为10。刀具从圆心起刀,采用圆弧切入和切出。 程序分别使用绝对和增量。
图2-59 内圆铣削
O0100(ABS); G90 G54 G17 G00 X0 Y0 S500 M03; 快速移动到原点,主轴正转,转速500 G43 Z100.0 H01; 在安全高度建立刀长补 Z2.0; 快速移动到Z轴进刀点 G01 Z-10.0 F100; 按进给速度,到达加工深度 G41 X20.0 Y-20.0 D01; 建立刀具半径补偿 G03 X40.0 Y0 I120.0; 圆弧切入 I-40.0; 加工整圆 X20.0 Y20.0 R20.0; 圆弧切出 G00 Z100.0; 快速移动到安全高度 G49 G40 X0 Y0 M05; 取消刀具半径补偿、刀长补、主轴停转 M30;
以上程序亦可使用增量编程。
O0100(INC); G90 G54 G17 G00 X0 Y0 S500 M03; G43 Z100.0 H01; G91 Z-98.0; G01 Z-12.0 F100; G41 X20.0 Y-20.0 D01; G03 X20.0 Y20.0 R20.0; I-40.0; X-20.0 Y20.0 R20.0; G00 Z110.0; G49 G40 X-20.0 Y-20.0 M05; M30;
例:加工如图2-60所示的矩形内侧,工件表面为Z轴原点,安全高度为100,参考高度(Z轴进刀点)2,加工深度为10。刀具从圆心起刀,采用圆弧切入和切出。
图2-60 矩形内侧铣削
O0090(ABS); G90 G54 G17 G00 X0 Y0 S500 M03; G43 Z100.0 H01; Z2.0; 刀具半径补偿使用前,快速移动到Z轴进刀点 G41 X-30.0 Y20.0 D01; G01 Z-5.0 F100; G03 X-50.0 Y0 R20.0; G01 Y-40.0; X50.0; Y40.0; X-50.0; Y0; G03 X-30.0 Y-20.0 R20.0; G00 Z100.0; G49 G40 X0 Y0 M05; M30; O0090(ABS); G90 G54 G17 G00 X0 Y0 S500 M03; G43 Z100.0 H01; X-30.0; Z2.0; 在辅助点,快速移动到Z轴进刀点 G01 Z-5.0 F100; G41 Y20.0 D01; 从辅助点开始建立刀具半径补偿 G03 X-50.0 Y0 R20.0; G01 Y-40.0; X50.0; Y40.0; X-50.0; Y0; G03 X-30.0 Y-20.0; G00 Z100.0; G49G40 X0 Y0 M05; M30;
技巧:精加工时,轮廓内侧一般采用逆时针方向铣削,半径补偿使用G41,轮廓外侧一般采用顺时针方向铣削,半径补偿使用G41,保证加工面为顺铣,提高工件表面的加工质量。
对于封闭的内轮廓,一般采用圆弧切入、切出,保证接刀点(进刀点)光滑,对于外轮廓,可采用切线切入、切出,切线可以是直线或者圆弧。
本例中,轮廓尺寸100×80,设刀具半径为10。如果单边余量为5,加工时粗、精加工量分别为3、2,使用程序进行粗加工时,刀具的半径补偿值为D01=12。具体计算如下:
D01=刀具半径+单边余量 =10+2=12
当运行程序,设D01=12时,刀具偏离最终面12,但刀具实际尺寸为10,剩余加工量2,如图2-61所示。
图2-61 内轮廓加工
当精加工时, D01=10,剩余的2加工余量将被切除。
例:使用子程序调用,加工图2-62所示的图形外侧,工件表面为Z轴原点,安全高度为100,参考高度(Z轴进刀点)5,加工深度为20。
图2-62 外轮廓加工
主程序:
O0111(MAIN ); G90 G54 G17 G00 X0 Y0 S500 M03; 定位到工件坐标系原点 G43 Z100.0 H01; M98P111; 调用子程序,加工左下工件外形 G90 G00 X130.0 Y0; 定位于右下工件外形的起点 M98P111; 调用子程序,加工右下工件外形 G90 G00 X0 Y80.0; 定位于左上工件外形的起点 M98P111; 调用子程序,加工左上工件外形 G90 G00 X130.0 Y80.0; 定位于右上工件外形的起点 M98P111; 调用子程序,加工右上工件外形 G90 G49 G00 X0 Y0 M05; M30;
子程序:
O0111(SUB ); G91 G00 Z-98.0; 使用增量坐标编程 G41 X30.0 Y20.0 D01; 使用左补,保证顺铣 G01 Z-22.0 F100; Y40.0; X-10.0; Y20.0; X20.0; G03 X20.0 R10.0; G01 X20.0; Y-20.0; X-10.0; Y-30.0; X-50.0; G00 Z120.0; G40 X-20.0 Y-30.0; 快速定位到图形的起点 M99; 返回主程序
技巧:多件相同图形的加工通常采用子程序调用,子程序中一般采用增量坐标。多件相同图形的加工亦可建立多个工件坐标系进行编程。
本例中,采用直线作为切线,进行切入和切出。
例:使用子程序调用,加工图2-63所示的图形外侧,工件表面为Z轴原点,安全高度为100,参考高度(Z轴进刀点)2,加工深度为5。顺时针加工工件外形。
图2-63 外形加工
主程序:
O0130(MAIN); G90 G54 G17 G00 X0 Y0 S500 M03; G43 Z100.0 H01; Z2.0; G01 Z0 F100; M98 P131; 调用子程序 G90 G49 G00 Z100.0 M05; M30; O0131(SUB ); G91Z-5.0; G01G41.0Y5.0D01; 从X10,Y5.0处开始建立刀具半径补偿 Y25.0; X10.0; G03X10.0Y-10.0R10.0; G01Y-10.0; X-25.0; G40X-5.0Y-10.0; M99;
2.3.4 孔加工固定循环
固定循环用于孔加工,是一个简化的程序,用一个G代码的单段,可表示通常在几个单段的加工操作。
(1)固定循环的指令格式
G98:刀具回到起始点。 G99:刀具回到R点。 G□□:孔加工模式。 X—Y—:孔的X、Y位置。 R—:R点位置。 Z—:孔底位置。 P—:孔底停留时间。 Q—:在G73及G83模式中,指定每次切削深度,在G76及G87中指定偏移量。 F—:切削进给速度。 K—:操作重复次数。未指定K时,K=1。当指定K=0时只记忆钻孔资料而不执行钻孔。
(2)固定循环的动作
在固定循环中,循环的动作如图2-64所示。G98、G99、R、Z的含义为:
图2-64 固定循环的动作
G98:刀具回到起始点(如图2-64、图2-65所示,起始点一般为安全高度)。
G99:刀具回到R点(如图2-64、图2-65所示,R点一般距工件表面3~5)。
图2-65 钻孔循环动作
起始点:固定循环开始的Z轴位置。
R点:刀具从起始点快速移动到此点。
Z点:孔底位置。
一个固定循环由6个动作顺序组成(如图2-66所示):
图2-66 固定循环的动作顺序
动作1:X、Y轴定位(也包含其他轴)。
动作2:快速移动到R点。
动作3:孔加工。
动作4:孔底位置动作。
动作5:逃离至R点。
动作6:快速移动到起始点。
表2-6列出了一些常见的固定循环。
表2-6 固定循环说明
(3)固定循环分类
钻孔(如图2-67所示) G73,G81,G83
攻牙 G74,G84
镗孔 G76,G82,G85,G86,G87,G88,G89
取消 G80
例:如图2-68所示。
图2-67 钻孔固定循环略图
图2-68 钻孔
注:①孔加工模式(如G81)一般保持不变,直到其他孔加工模式使用或用G80取消固定循环。当继续进行相同孔加工模式时,不需要在每个单段指定。
②在固定循环中,移动到各孔的位置(X,Y)用G00快速定位实现。
③()内的值,可省略。
(4)G98、G99的使用
每个孔加工后,刀具是回到Z点还是回到R点,与G98、G99有关,如图2-69所示。在孔加工模式中,G98、G99可共用。
图2-69 G98、G99的使用
(5)R点、Z点的使用
刀具从起始点(安全位置)快速移动到R点,从R点开始,刀具以给出的切削速度切削工件。Z点为孔底位置。R点、Z点可分别用绝对(ABS)、相对(INC)指令实现(如图2-70所示)。
图2-70 G90、G91的使用
G90 G□□ R5.0 Z-10.0 …; G91 G□□ R-95.0 Z-15.0…;
(6)G80注销固定循环
固定循环代码均为模态代码,各代码在用G80代码注销之前,在其后续代码行中一直保持激活状态。因此,在CNC程序的后续行中出现的任何轴运动(X、Y或Z)均会执行已激活的固定循环,与后续行中是否有固定循环代码无关。
2.3.5 孔固定循环指令
(1)钻孔固定循环
数控机床经常使用的钻孔固定循环代码包括G81、G73和G83。
①G73(高速啄式钻孔循环)如图2-71所示。
图2-71 高速啄式钻孔循环
格式:
Q—为每次切削进给量。
d为逃离量,由机床参数设定,标准设定值为d=0.1mm,可使得断屑容易。
②G81(钻孔循环)如图2-72所示。
图2-72 G81钻孔循环
格式:
③G83(深孔钻)如图2-73所示。
图2-73 G83钻孔循环
格式:
Q为每次切削进给量,用INC表示。
在第二次及以后切削时,在切入前的d(mm或in)位置处,由快速进给转换成切削进给。Q值一定是正值,如果是负值,负号无效。
d为逃离量,由机床参数设定,标准设定值为d=0.1mm。
例:钻孔固定循环G81使用G99(如图2-74所示)。
图2-74 G81钻孔循环中使用G99
… G90 G99 G81 X30 Y-52 Z-35 R3 F100;钻孔,参考高度为3,深度为35,返回到R点 X55 Y-26; X80 Y-52; X105 Y-26; G80; …
注:
X55 Y-26; X80 Y-52; X105 Y-26;
为其他3个孔的坐标,每当控制器读到孔的一个新的X和(或)Y坐标时,重复执行步骤1~4。本例之所以使用G99,是因为刀具路径不存在干涉和障碍。
例:钻孔固定循环G81使用G98(如图2-75所示)。
图2-75 G81钻孔循环中使用G98
… G00 Z50; 快速移动到Z位置(参考高度) G98 G81 X-30 Y0.0 Z-30 R3 F100; 钻孔完成后,返回到起始点 X30; 下一个孔的坐标 G80; 取消固定循环 …
例:啄式钻深孔固定循环(如图2-76所示)。
图2-76 G83钻孔循环
注:
…G90 G99 G83 X0 Y0 Z-120 R3 Q3 F60; G80; …
技巧:G83钻深孔时,使用的刀具类型为加长钻头。为补偿刀具刚性的降低,可以采用小切削速度和小进给速度。
G83钻深孔时,机床应使用高压冷却液及允许冷却液流动的钻头。
G73钻孔循环,主要适用于加工不易断屑的韧性材料。
(2)攻牙固定循环
数控机床经常使用的攻牙固定循环代码包括G74(左牙)、G84(右牙)。攻牙分刚性功牙和柔性功牙。在柔性功牙中,丝锥夹头可以伸缩,因此主轴的转速与进给速度并不需要进行非常严格的匹配,一般用在主轴电机为非伺服的数控机床上。在刚性功牙中,丝锥夹头不可以伸缩,因此主轴的转速与进给速度需要进行非常严格的匹配。即主轴每转一圈,进给一个螺距,主轴电机一般为伺服电机。攻牙时,由于丝锥的刚性比较差,Z轴速度很快,主轴一般选用比较低的转速。
①G74(攻左牙循环)动作顺序如图2-77所示。
图2-77 攻左牙
格式:
②G84(攻牙循环)动作顺序如图2-78所示。
图2-78 攻右牙
格式:
柔性攻牙中,R点的位置距工件表面应大于丝锥夹头的伸缩量。
攻牙循环的进给速度计算如下:
F=主轴回转数(r/min)×螺距(mm)
P— 指令表示在孔底暂停时间单位为0.001s。
P— 在孔底暂停的时间与丝锥夹头的伸缩量有关。
例:如图2-79所示,加工M12的螺孔(柔性攻牙)。
图2-79 柔性攻牙
编程如下:
N1 G90 G54 G00 X150.0 Y70.0 S200 ; N2 G43 Z200. H15 M03; N3 G99 G84 R161.0 Z140.0 P1200 F300; N7 M05; N8 G49 ; N9 M30;
进给速度=主轴转速×螺距=200×1.5=300(mm/min)
在N3程序段的暂停时间与进给速度和图示的拉伸长度6mm有关:
R点距工件表面的距离,考虑到丝锥夹头的伸缩量6mm,R为Z161.0。
提示:一般来说,数控铣床的主轴电机不采用伺服电机,无法保证主轴旋转速度与进给速度严格的匹配关系,因此一般采用柔性攻牙,或只加工螺纹底孔,攻牙在普通机床上完成。加工中心采用伺服电机,可以保证主轴旋转速度与进给速度严格的匹配关系,容易实现刚性攻牙。
(3)有精度孔的加工循环
有精度孔的加工包括孔的粗、精加工和台阶孔、盲孔底面的精加工,保证粗糙度和尺寸精度。
镗(锪)孔固定循环代码G82,用于对孔进行锪平面,也可用于需要进行镗、铰孔的半精加工。通常可以使用锪孔钻、立铣刀、双刃镗刀或倒角刀具(倒角)。
粗镗孔固定循环代码G86,用于对已有孔的粗加工,或者精度要求不是很高的孔的精加工。已有孔一般是指钻出的孔或铸造孔。粗镗孔通常使用双刃刀具,如图2-80所示。
图2-80 双刃镗孔刀结构
A—锁紧螺钉;B—粗镗刀片;C—调整螺钉;D—粗镗刀杆;E—冷却液孔
①G82镗(锪)孔固定循环代码(循环动作顺序如图2-81所示)。
图2-81 G82循环
格式:
执行G82模式时在孔底有暂停时间,不进给,但主轴回转。用于提高孔深精度和降低孔底粗糙度。
P— 指令表示在孔底暂停时间,单位为0.001s。
P500指令表示在孔底暂停时间为0.5s。
P的计算方法如下:
P=(60n×1000)/N
式中 N——主轴转速;
n——孔底暂停时,主轴回转数(2~3转)。
②G86粗镗孔循环(循环动作顺序如图2-82所示)。
图2-82 G86循环
格式:
与G81相同,但是在孔底位置主轴停止,并以快速进给逃离。粗镗孔刀刃(双刃)在孔壁划出两道痕,影响孔的表面质量。
③G76 加工中心精镗孔循环(循环动作顺序如图2-83所示)。
图2-83 G76 加工中心精镗孔循环
格式:
主轴在孔底位置执行准停(圆周定位、停止),主轴向切削刃方向的反方向平移,快速逃离孔底,完成高精度及高效率的精镗孔而不会划伤工件表面。
精镗孔一般使用可微调单刃刀具,如图2-84所示。使用G76指令,机床主轴必须有准停功能。一般只有加工中心才有此功能。
图2-84 单刃镗刀结构
A—调整螺钉;B—锁紧螺钉;C—冷却液孔;D—刀头锁紧螺钉;E—刀头
平移量用Q指定。Q值一定是正值。如果指定负号,则无效。平移方向可用参数设定,选择+X、-X、+Y、-Y中的任何一个。
在固定循环中的Q值是状态值。Q值也用于G73、G83中,指定时必须特别注意。
刀具在孔底的X或Y轴平移也可用I、J指定。I、J哪一个被指定,在机床参数中设置,平移速度与F给定的值一致。
④G88数控铣精镗孔循环(循环动作顺序如图2-85所示)。
图2-85 数控铣G76精镗孔循环
格式:
由于数控铣没有主轴准停功能,无法实现主轴的定位,在孔底暂停后,使主轴停止转动,需要手动操作使刀刃离开工件表面,将刀具从孔中移出,然后手动使程序自动运行。
例:镗(锪)孔固定循环(如图2-86所示)。
图2-86 G82镗孔固定循环
… G90 G98 G82 X-30 Y0.0 Z-2 R3 P500 F80; X30; 下一个孔的坐标 G80; …
注:
本例之所以采用G98代码,是因为刀具路径干涉。
例:G86镗孔固定循环
… G90 G99 G86 X50 Y-50 Z-50 R3 F100; X100; X150; G80; …
注:
X100、X150为其他2个孔的坐标。
例:精镗孔固定循环G76(图2-87)。
图2-87 G76精镗孔固定循环
… G90 G99 G76 X100 Y-50 Z-40 R3 P1000 Q0.1 F100; X200; X300; G80; …
注:
X100、X150为其他2个孔的坐标。
提示:不同的孔加工固定循环适合加工不同精度、不同结构的孔,因此在孔加工时,应当根据孔、机床、刀具的情况选择固定循环。
⑤孔位确定及其坐标值的计算。一般在零件图上孔位尺寸都已给出,但有时孔距尺寸的公差或对基准尺寸距离的公差是非对称性尺寸公差,应将其转换为对称性公差。如某零件图上两孔间距尺寸mm,对称性基本尺寸计算为:
(0.055-0.027)/2=0.014
90+0.014=90.041
对称性公差为:
±0.014
转换成对称性尺寸L=(90.041±0.014)mm,编程时按基本尺寸90.041mm进行,其实这就是工艺学中讲的中间公差的尺寸。
例:多孔加工(图2-88)。
图2-88 镗孔
O0160; G90 G54 G17 G00 X0 Y0 S500 M03; G43 Z100.0 H01; G91 G99 G76 X100.0 Y-100.0 Z-102.0 R-98.0 Q0.1 F100; 加工第1行第1列孔 X200.0 K4; 孔加工循环4次,加工第1行其他孔 Y-200.0; 加工第2行第1列孔 X-200.0 K4; 孔加工循环4次,加工第2行其他孔 Y-200.0; 加工第3行第1列孔 X200.0 K4; 孔加工循环4次,加工第3行其他孔 G80 Z98.0; 返回到R点,取消固定循环 G49 G90 X0 Y0 M05; M30;
例:使用子程序调用加工图2-89所示的孔。
图2-89 子程序中G91的使用
主程序:
O1; G90 G54 G00 X0 Y0 S1000 M03; G43 Z100.0 H01; G98 G73 R2.0 Z-30.0 Q2.0 F100 K0; M98 P2; G90 G80 G49 X0 Y0 M05; M30;
子程序:
O2; G91 X-30.0 Y20.0; X-30.0 K3; X90.0 Y-40.0; X-30.0 K3; M99;
在钻孔循环中,当指定K=0时只记忆钻孔资料而不执行钻孔。
例:高精度尺寸孔的试切(如图2-90所示)。
图2-90 高精度尺寸孔的试切
M99;O1; N1 G90 G54G00 X0 Y0 S1000 M03 主轴正转,转速为1000r/min,快速定位到X0 Y0 /N2 G90 G43 Z100.0 H01; 快速定位到安全高度,加刀长补 /N3 G76 Z-6.0 R2.0 Q0.2 F72; 用G76精镗孔循环试切孔,起始点距工件表面2mm, 孔深6mm,以备测量 /N4 G91 G80 G28 Z0; 主轴回到机床参考点 /N5 M00; 机床暂停,进行孔径测量及刀具调整 /N6 M99 P2; 程序返回到N2 N7 G90 G43 Z100.0 H01; N8 G76 Z-18.0 R2.0 Q0.2 F72; 用G76精镗孔循环精镗孔 N9 G80; N10 G91 G28 Z0; N11 M30
在主程序中插入N2~N6段程序。当进行试切时,通过按下机床操作面板上的Skip键,Skip键的控制灯On,程序中单句前有“/”的语句可执行,此时可进行试切、孔径的测量、刀头的微调,待试切孔的尺寸精度达到要求时,按下机床操作面板上的Skip键,Skip键的控制灯Off,按下“循环启动”按钮,程序中单句前有“/”的语句N2~N6跳过不执行,执行正常的主程序。
在主程序中插入采用跳过任选程序段(/…)、程序停止(M00) 程序段,可进行精镗孔加工、孔径的测量以及镗刀的调整。
技巧:孔尺寸公差要求高时,需要通过多次试切、测量、刀头尺寸调整才能加工出合格的孔,使用本例中提供的方法,可提高加工效率。