随着国内五坐标数控机床的逐渐增多和数控编程软件功能的不断完善,许多厂家都采用数控加工技术来加工一些复杂零件,大大提高了生产效率及加工精度。企业往往购进结构各异、不同国家生产的各类四、五坐标加工中心及数控机床,并使用了多种国内、外数控软件。
昌河飞机工业(集团)有限责任公司为满足直升机研制以及与国外合作生产项目的需要,缩短与当今世界先进机械加工水平的差距,提高公司的机械加工能力,从西班牙ZAYER公司引进了一台型号为KPU3000的五坐标加工中心。为了尽早使它进入正常应用阶段,发挥它的效益,必须尽快解决CATIA 五轴NC后置处理软件开发这个关键问题。由于公司没有购置CATIA软件通用后置处理模块,我们专门成立了CATIA五轴NC后置处理软件攻关小组。经过努力,成功地利用C语言开发出了针对KPU3000数控机床的五坐标NC后置处理软件,为公司以后引进更多的五轴,甚至六轴数控加工中心打下了良好的基础。下面简要介绍一下该软件的开发思路和方法。
二、NC后置处理软件的4种编制方式
根据我们了解,NC后置处理软件的编制一般有以下4种方式:
(1)利用高级语言将刀位记录转换成数控指令代码,这种方式的优点是灵活性高,缺点是工作量大,程序编制困难。
(2)软件商提供一个交互式后处理书写器(Post Writer),用来确定一些具体参数,用户回答后,就形成了针对具体机床的后处理软件。这种方式的优点是简单方便,缺点是形成的数控文件灵活性差,难以令用户随心所欲。
(3)软件厂家为各种控制系统和不同布局的机床编制专用后处理程序,优点是无需用户自己开发,缺点是购新机床时,需补充订购该机床的专用后处理程序。
(4)软件厂家提供一个软件编制工具包,它提供一套语法规则,由用户编制针对具体机床的专用后处理程序,特点是既灵活又简便,不过用户需要额外掌握一种“语言”。一般提供一个通用的Post软件包,做后置处理操作时,Post负责调入机床文件及刀位文件,并根据刀位文件语句,由Post去调用机床文件中相应的宏(子程序),该宏将刀位记录转换成相应机床的指令格式并进行必要的计算。
我们主要是采用第一种开发方法,即自己利用C语言开发CATIA软件专用的NC后置处理软件。
三、刀位轨迹与机床坐标、回转角度的关系
用数控软件进行编程时,按规定均视工件不同由刀具运动来完成加工动作,这样可得到一个不针对具体机床的中性刀位文件。
实际上,机床运动的实现方式各异,有的运动由工作台实现,有的则由刀具运动来实现。在三个直线坐标(X、Y、Z)运动情况下,编程员一般不用关心是工作台运动,还是刀具运动,因为机床厂家均按国际标准(右手规则)来定义机床的坐标系及其运动方向。
在有回转坐标的情况下,情况要复杂得多:有刀具摆动的,有工作台回转的,有采用直角铣头的,还有立卧主轴交替加工的等等,这就要求后处理程序针对不同情形进行不同的计算。
在多轴加工时,数控软件生成的刀位文件中既包含刀具刀尖点的坐标值(X、Y、Z),也包含刀轴方位的方向矢量(dx、dy、dz),这时后置处理程序需要将刀位文件中刀位轨迹坐标转换为机床坐标及相应的回转角度。
四、五轴机床的结构及转角计算
(1)Table/Table:两个回转轴均为工作台,第四轴转动会影响第5轴的方位;
(2)Table/Head:一个转轴为工作台,另一个为主轴头,两者互为独立;
(3)Head/Head:两个回转轴均为主轴头,第4轴转动会影响第5轴的方位。
对于前两种情况,一般是选择两个互相垂直的坐标轴作为回转轴,两个回转角的计算及后处理中的坐标变换较为简单。
KPU3000五坐标数控加工中心是属于第3种情况,也就是两个回转轴均为主轴,具体情况如图1所示。B角的回转范围是:-100°~+100°;C角的回转范围是:-185°~+185°。
图1 KPU3000五坐标数控加工中心主轴及转角
五、软件编制思路
1. 机床摆角算法分析
为了正确实现NC后置处理程序的转换,必须了解B、C角的正负方向。KPU 3000数控机床的坐标系及其运动方向符合国际标准(右手规则)。根据右手规则,利用三角函数的算法,我们就可以根据各个刀具刀尖点的方向矢量所指向的象限来确定该点的B、C转角了。还要注意的是,当方向矢量指向坐标轴时,要对B、C角特别处理。
根据分析,KPU 3000五轴数控机床任何一个点的坐标都不是唯一的,任意一点的B角都可以取正值,也可以取负值。为了防止B角发生跳变,我们在程序的开始就给用户一个选择。在一个NC后置处理过程中,B角在正与负之间只能选择一种,下面的算法也是基于这个条件之上的。
2. 摆角B取正值的情况
摆角B取正值的情况如图2所示。
图2 摆角B取正值
(1)C角的计算方法
首先根据当前刀轴方位的方向矢量情况,确定要处理的刀具刀尖点处在哪个象限,同时根据前一个被处理刀具刀尖点所处的象限不同,确定不同的C角的算法。
1)当dx>0且dy>0时,表示当前被处理刀具刀尖点位于第一象限,此时C角的算法为:c=asin(dy/sqrt(dy*dy+dx*dx))/3.1415926*180;
2)当dx<0且dy>0,表示当前被处理刀具刀尖点位于第二象限,此时C角的算法要分两种情况:根据前一个被处理刀具刀尖点所处的象限不同而采取两种不同的算法。
☆当前一个刀具刀尖点在第一或第二象限,即前一个点的C摆角为正时,C角的算法为:c=180-asin(dy/sqrt(dy*dy+dx*dx))/3.1415926*180;
☆当前一个刀具刀尖点在第三或第四象限,即前一个点的C摆角为负时,先计算C角:c=asin(dy/sqrt(dy*dy+dx*dx))/3.1415926*180,然后判断C角的情况:如果c>5,则表示C角超出了机床的最大转角范围,程序终止退出;如果c<5或c=5,则c=-180-c;
3)当dx<0且dy<0,表示当前被处理刀具刀尖点位于第三象限,此时C角的算法要分两种情况:根据前一个被处理刀具刀尖点所处的象限不同而采取两种不同的算法。
☆当前一个点在第三或第四象限时,即前一个点的C摆角角为负值或0时,C角的算法为:c=-(180-asin(-dy/sqrt(dy*dy+dx*dx))/3.1415926*180);
☆当前一个点在第一或第二象限时,即前一个点的C角为正值时,先计算C角:c=asin(-dy/sqrt(dy*dy+dx*dx))/3.1415926*180,然后判断C角的情况:如果c>5,则表示C角超出了机床的最大转角范围,程序终止退出;如果c<5或c=5,则c=180+c;
4)当dx>0且dy<0,表示当前被处理刀具刀尖点位于第四象限,此时c角的算法为:c=-asin(-dy/sqrt(dx*dx+dy*dy))/3.1415926*180;
5)如果dx=0且dy=0,则C角保持不变;
6)如果dx>=0且dy=0,则c=0;
7)如果dx=0且dy>0,则c=90;
8)如果dx<0且dy=0,分两种情况:如果上一个刀具刀尖点位于第一或第二象限,则c=180;如果上一个刀具刀尖点在第三或第四象限,则c=-180;
9)如果dx=0且dy<0,则c=-90;
(2)B角的计算方法
根据被处理刀轴方位的方向矢量的不同,B角的算法分为以下三种情况:
1)如果dz>0,表示B角在0~90°之间,B角的算法为:
b=acos(dz/sqrt(dz*dz+dy*dy+dx*dx))/3.1415926*180;
2)如果dz=0且(dx!=0||dy!=0),则B角为90;
3)如果dz<0,表示B角的值超过了90°,此时,首先计算b=asin(-dz/sqrt(dz*dz+dy*dy+dx*dx))/3.1415926*180,然后判断:如果b>10,表示B角的值超过了机床的极限值100°,则程序终止退出,否则,b=90+b。
3. 摆角B取负值的情况
摆角B取负值的情况如图3所示。
图3 摆角B取负值
(1)C角的计算方法
首先根据当前刀轴方位的方向矢量情况,确定要处理的刀具刀尖点处在哪个象限,同时根据前一个被处理刀具刀尖点所处的象限不同,确定不同的C角的算法。
1)当dx>0且dy>0时,表示当前被处理刀具刀尖点位于第一象限,此时C角的算法要分两种情况,根据前一个被处理刀具刀尖点所处的象限不同而采取两种不同的算法。
☆当前一个点位于第一或第二象限,即前一个点的C角为负值或0时,C角的算法为:c=-(180-asin(dy/sqrt(dy*dy+dx*dx))/3.1415926*180;
☆当前一个点在第三或第四象限,即前一个点的C角为正值时,先计算C角:c=asin(dy/sqrt(dy*dy+dx*dx))/3.1415926*180,然后根据c的值来判断,如果c>5,表明C角超出了机床的最大转角范围,程序终止退出;如果c<5或c=5,则c=180+c;
2)当dx<0且dy>0,表示当前被处理刀具刀尖点位于第二象限,则C角的算法为:
c=-asin(dy/sqrt(dy*dy+dx*dx))/3.1415926*180;
3)当dx<0且dy<0,表示当前被处理刀具刀尖点位于第三象限,则C角的算法为:c=asin(-dy/sqrt(dy*dy+dx*dx))/3.1415926*180;
4)当dx>0且dy<0,表示当前被处理刀具刀尖点位于第四象限,此时要根据前一个被处理刀具刀尖点的位置不同而采取不同的算法:如果前一个刀具刀尖点在第三或第四象限,即前一个刀具刀尖点的C角为正值时,C角的算法为:c=180-asin(-dy/sqrt(dy*dy+dx*dx))/3.1415926*180;如果前一个刀具刀尖点在第一或第二象限,即前一个刀具刀尖点的C角为负值,先计算C角:c=asin(-dy/sqrt(dy*dy+dx*dx))/3.1415926*180,在判断C的情况:如果c>5,则表示C角超出了机床的最大转角范围,程序终止退出;否则如果c<5或c=5,则c=-180-c;
5)如果dx=0且dy=0,则C角保持不变;
6)如果dx>=0且dy=0,要根据上一个刀具刀尖点的情况来决定C角的算法,如果上一个点在第三或第四象限,则c=180;如果上一个点在第一或第二象限,则c=-180;
7)如果dx=0且dy>0,则c=-90;
8)如果dx<0且dy=0,则c=0;
9)如果dx=0且dy<0,则c=-90。
(2)B角的计算方法
根据被处理刀具刀尖点的法矢量的不同,B角的算法分为以下三种情况:
1) 如果dz>0,表示B角在-90°~0之间,B角的算法为:
b=-acos(dz/sqrt(dz*dz+dy*dy+dx*dx))/3.1415926*180;
2)如果dz=0且(dx!=0||dy!=0),则b=-90;
3)如果dz<0,表示B角的值超过了-90°,首先计算:b=asin(-dz/sqrt(dz*dz+dy*dy+dx*dx))/3.1415926*180,然后判断b的情况:如果b>10,表示B角超过了机床的极限值100°,程序终止退出,否则, b=-90-b。
3. 关于算法的几点说明
在编制带B和C摆角的NC后置处理软件时,需要特别要注意的是:摆角B取正值或取负值将会影响C角度的算法。当B角取正值时,C摆角从正X轴的位置开始算起;当B角取负值时,C摆角从负X轴的位置开始计算,而且B角的符号取值不同,也会影响C角的正负符号。具体可参照上述算法,否则计算出的B角和C角也将是错误的,这点要特别小心处理。
4. 五轴NC后置处软件的简单程序示意图
我们所开发的五轴NC后置处软件的简单程序示意图,如图4所示。
图4 简单程序框图
六、结束语
经过实践证明,我们开发的NC后置处理软件能够将CATIA软件生成的APT刀位轨迹正确转换成带B、C转角的五轴NC数控加工程序,现已在KPU 3000数控机床上成功投入使用,加工了多个重要飞机零件,得到有关部门的高度评价。
该软件采用Turbo C语言开发(篇幅有限,不附软件清单),软件可以运行于DOS或Windows环境下。该 NC五轴NC后置处理软件的成功开发,为发挥五坐标加工中心及CATIA软件的五坐标编程功用奠定了坚实的基础。