3.2 数控车削宏程序应用
宏程序允许用变量编程进行数学计算和逻辑运算,所以能够用于非圆曲线 (如椭圆、抛物线等)的加工编程,完成普通程序无法实现的特殊功能,例如,用于加工系列零件的宏程序、用于加工椭圆表面的宏程序、用于加工抛物线表面的宏程序等。
3.2.1 加工系列零件宏程序
系列零件指形状相同,加工过程也相同,只是部分尺寸不同的一类零件,例如系列孔系零件等,如果将系列零件中的不同尺寸用宏变量表示,利用宏程序可以编出加工某种系列零件的通用程序。
例3⁃3:某系列零件如图3⁃8所示,零件右端面半球球径R可在10~20mm范围内取系列数据,将球半径R用变量#1表示,编程原点设在工件右端面中心,毛坯直径ϕ45mm。从图中可以看出编程所需B、C点均与球径R相关,零件表面各基点坐标如表3⁃4所示。
图3⁃8 系列零件示例
表3⁃4 图3⁃8零件尺寸mm
解:粗车本系列外圆宏程序中设半径R=10mm,R的取值在10mm<R<20mm范围的相同形状的系列零件,都可以用本程序粗车。
粗车削宏程序如下。
O5200; 宏程序号
T0101 M03 S800; 换刀,启动主轴
G54 G98 G40; 设定工件坐标系
G00 X100.0 Z100.0; 定位于程序起点
G00 X42.0 Z5.0; 定位于切削起点
G71 U2.0 R1.0; 切外圆循环,完成粗车
G71 P10 Q20 U0.5 W0 F150.;
N10 G00 X0; 定位到精车起点(N10~N20是精车轨迹)
G01 X0 F0.1; 进刀切削到A
#1=10.; 变量#1赋值(即半径取值)
G03 X[2 *#1] Z⁃#1 R#1; 车球面AB
G01 Z⁃[60⁃2 *(40⁃2 *#1)]; 车圆柱面(母线BC)
G01 X40. Z⁃60.; 车圆锥(母线CD)
N20 G01 Z⁃90.; 车圆柱面DE(精车轨迹结束段)
G00 X100.; 快速退刀
Z100.; 回到程序起点
M05; 主轴停
M30; 程序结束
3.2.2 加工椭圆表面宏程序
编制非圆曲面类的宏程序有两个要点,即建立数学模型和循环体。数学模型由零件轮廓的曲面方程转化而来,用于计算出曲面上每一点的坐标,从而生成刀具轨迹节点。循环体由循环指令和对应的加法器组成,作用是将一组节点顺序连接成刀具轨迹,依次加工成曲面。下面以椭圆曲线为例说明。
(1)椭圆曲线数学知识
椭圆如图3⁃9所示,数控坐标轴是椭圆的对称轴,原点是对称中心。对称中心叫做椭圆中心。图中,a、b分别为椭圆的长半轴和短半轴的长,椭圆和X轴、Z轴的四个交点叫椭圆顶点。
图3⁃9 ZX坐标轴上的椭圆
图3⁃9所示坐标系中椭圆标准方程:
+=1 (a为长半轴的长,b为短半轴的长,a>b>0)
可导出:X=±×(3⁃1)
Z=±×(3⁃2)
设椭圆上某点P(z,x),在宏程序中设变量#1为椭圆上P点的Z坐标值,变量#2为P点的X坐标值,根据公式(3⁃1),X坐标值的宏程序表达式为:
#2=b/a×SQRT[[a×a]-[#1×#1]] (只用正值)(3⁃3)
(2)用直线拟合非圆曲线
数控加工椭圆曲线的方法是把椭圆曲线分成若干小段,用直线插补加工曲线上一小段,这些诸多直线段拟合成椭圆曲线。具体作法如图3⁃10所示,在椭圆曲线上按Z轴每间距小距离(如0.1mm)取一个点。间距越小,拟合精度越高,通常间距可取0.1~0.5mm。
① 先确定曲线上点的Z坐标值。Z轴上每间距0.1mm取一个点,相邻点的Z坐标递减0.1mm,由前一个点Pn(xn,zn),计算Pn+1(xn+1,zn+1)点的Z坐标关系式:Zn+1Zn-0.1。用变量#1表示Z坐标的宏程序表达式为:#1=#1-0.1。
② 算出曲线上该点的X坐标值。以Z轴坐标(#1)为自变量,X轴坐标(#2)为变量,根据表达式(3⁃3)计算出曲线上该点的X坐标值。
③ 运行程序:“G01 X[2*#2] Z[#1];”,完成切割小段直线。
循环体:循环运行上述①~③程序过程,用诸多直线段拟合成规定的椭圆曲线段,如图3⁃10所示。
图3⁃10 用直线拟合椭圆曲线
例3⁃4:车削图3⁃11所示工件,编写宏程序。
图3⁃11 具有椭圆表面的零件
解:#1为椭圆曲线公式中的Z值,初始值为19,终值为0。#2为椭圆曲线公式中的X值,初始值为0。图3⁃11所示坐标系与标准方程坐标系(图3⁃9)比较,原点沿Z轴负向平移a距离,所以图3⁃11工件坐标系中某点Z坐标值为:(#1-a)。宏程序变量分配如表3⁃5所示。
表3⁃5 宏程序变量分配
图3⁃11右半个椭圆面宏程序组成框图如图3⁃12所示。
宏程序如下。
O0600
G54 X100.0 Z100.0; 设定工件原点在右端面,定位到换刀点
T0101 S500 M03; 换刀,换刀T01,设定位置补偿,刀补号01
G99 G97 G21;
G50 S1000;
G96 S120;
G00 X53.0 Z5.0 M08; 定位到循环始点
G73 U21 W1.0 R19.0; 粗车循环
G73 P10 Q20 U0.5 W0.1 F0.2; N10~N20为精车轨迹程序段
N10 G00 X0 S1000;
G42 G01 Z0 F0.08; Z向切入,建立刀具半径有补偿
#1=19.0; 设Z变量初值为19mm
#2=0; X变量初值为0
WHILE [#1 GE 0] DO1; Z≥0运行DO~END间程序,Z<0转到END后
#2=13/19 *SQRT[[19 *19]⁃[#1 *#1]] 计算X坐标(半径值)
G01 X[2 *#2] Z[#1⁃19.0] F0.1; 直径编程,用直线拟合椭圆曲线
#1=#1⁃0.1; Z变量每次按0.1递减
END1; 循环体结束
X36.0 Z⁃29.0; 车锥面
Z⁃46.0; 车直径ϕ46mm
X44.0; 车台阶面
X46.0 Z⁃47.0; 倒角“C1”
Z⁃55.0; 车圆柱ϕ46mm
N20 G40 X52.0; X向切出,取消刀具半径补偿
G70 P10 Q20; 精车循环(取出精车余量)
G00 X100.0 Z100.0; 返回换刀点
T0100 M05; 取消刀具位置补偿
M30; 程序结束
图3⁃12 车椭圆宏程序组成框图
例3⁃5:车削图3⁃13所示工件,编写宏程序。
图3⁃13 工件
解:#1为椭圆曲线公式中的Z值,初始值为12.5,终值为-12.5。#2为椭圆曲线公式中的X值,初始值设为0,由于是车凹椭圆面,#2计算后取负值。图3⁃13所示坐标系与图3⁃9的标准方程坐标系比较,坐标原点沿X轴正向平移20mm距离,沿Z轴负向平移21mm距离,所以图3⁃13工件坐标系中椭圆上某点坐标X:(2×#2+40),Z:(#1-21)。宏程序变量分配如表3⁃6所示。
表3⁃6 宏程序变量分配
程序如下。
O0600;
G54 X100.0 Z100.0; 设定工件原点在右端面,定位到换刀点
T0101 S500 M03; 换刀,换刀T01,设定位置补偿,刀补号01
G99 G97 G21;
G50 S1000;
G96 S120;
G00 X53.0 Z5.0 M08; 定位到循环始点
G73 U21 W1.0 R19.0; 粗车循环
G73 P10 Q20 U0.5 W0.1 F0.2; N10~N20为精车轨迹程序段
N10 G00 X0 S1000; 定位
G42 G01 Z0 F0.08; Z向切入,建立刀具半径有补偿
X30.0; 车端面
Z⁃8.5; 车直径ϕ30mm
#1=12.5; 设Z变量初值为12.5mm
#2=0; X变量初值为0
WHILE [#1 GE [-12.5]] DO1; Z≥-12.5运行循环体程序,Z<-12.5转到END后
#2=8/16 *SQRT[[16 *16]-[#1 *#1]] 计算X坐标(半径值)
#2=⁃[#2] 车凹椭圆面,取负值
G01 X[2 *#2+40.0] Z[#1⁃21.0] F0.1; 直径编程,用直线拟合椭圆曲线
#1=#1⁃0.5; Z变量每次按“0.5”递减
END1; 循环体结束
Z⁃42.0; 车直径ϕ44mm
X40.0; 车台阶面
Z⁃65.0; 车圆柱ϕ44mm
N20 G40 X50.0; X向切出,取消刀具半径补偿
G70 P10 Q20; 精车循环(取出精车余量)
G00 X100.0 Z100.0; 返回换刀点
M05; 主轴停
M30; 程序结束
3.2.3 加工抛物线表面宏程序
例3⁃6:车削图3⁃14所示工件的抛物线表面,编写宏程序。
图3⁃14 具有抛物线表面零件
解:
(1)数学模型
如图3⁃15所示,标准抛物线方程:
X2=±2PZ,即Z=±(3⁃4)
(2)用直线拟合非圆曲线
数控加工抛物线的方法是把抛物线分成若干小段,用直线插补加工曲线上一小段,这些直线段拟合成抛物线,如图3⁃15所示,在抛物线上按X轴每间距小距离(如1mm)取一个点。间距越小,拟合精度越高。
图3⁃15 抛物线方程
① 先确定曲线上点的X坐标值。X轴上每间距1mm取一个点,相邻点的X坐标递增1mm,由曲线上前一个点Pn(xn,zn),计算下一点Pn+1(xn+1,zn+1)的X坐标关系式:Xn+1←Xn+1。用变量#24表示X坐标的宏程序表达式为:#24=#24+1。
② 算出曲线上该点的Z坐标值。以X轴坐标(#24)为自变量,Z轴坐标(#26)为变量,根据Z=-[式(3⁃4)取负值],宏程序表达式为:#26=[#24×#24]/#17,计算出曲线上该点的Z坐标值。
③ 执行程序:“G01 X[2×#24] Z#26 F[#9];”,切割小段直线。通过循环完成整体抛物线加工。
(3)宏程序变量分配
#26为抛物线公式中的Z值,初始值为0。#24为抛物线公式中的X值,初始值为0,终点值为21(#22/2)。宏程序变量分配如表3⁃7所示。
表3⁃7 宏程序变量分配
(4)编写宏程序
车抛物线宏程序组成框图如图3⁃16所示。宏程序中N30~N60为循环体。
图3⁃16 车抛物线宏程序组成框图
宏程序如下。
O0523
M03 S800;
G98;
G00 X90.Z100.;
N10 #24=0; 抛物线顶点处X值
#26=0; 抛物线顶点处Z值
#17=⁃10.; 常量
#22=42.; 抛物线开口处直径
#6=1.; 每次步进量
#9=100.; 进给率
G00 X#24 Z[#26+5.]; 定位于加工起点
G01 Z#26 F[2 *#9]; 切入工件
N30 #24=#24+#6; X向递增
#26=[#24 *#24]/#17; 计算Z坐标
G01 X[2 *#24] Z#26 F#9; 切削小段表面
N60 IF [#24 LT #22/2] GOTO30; 如果X值小于开口处直径一半跳转到“30”
G01 X#22 Z#26 F[3 *#9]; 退刀
M05;
M30;