王启祥
(天津中德职业技术学院,天津 300350)
圆弧过渡编程指令的开发
王启祥
(天津中德职业技术学院,天津 300350)
文章运用宏程序开发相应的圆弧过度指令,达到减少辅助时间,简化程序编写的目的,从而提高编程的效率及准确性。
宏程序;过渡;倒角
现在的很多数控系统一般都提供了直线和圆弧插补器,对于以直线和圆弧构成的零件的轮廓铣削加工,运用手工编程相对于自动编程更方便、快捷。但如果轮廓要素之间存在如直线与圆弧、圆弧与圆弧的圆弧过度等较为复杂的连接时, 其基点的计算将会在很大程度上影响编程的效率。为此,有些数控系统提供了轮廓简化编程功能,如美国A-B公司的GTL编程、德国海德汉公司的轮廓过度编程、法国NUM公司的PGP编程,以及意大利ECS公司的GAP编程等。这些功能很好的解决了基点的自动求解功能。除了代码编程以外,有些数控系统具有图形编程功能,如MAZAK、FAGOR和SIEMENS等公司开发的图形会话式编程等。如SIEMENS公司的SHOPMILL系统提供了平面铣削、轮廓铣削、凸台铣削、槽铣削、型腔铣削和孔加工等一系列功能丰富的图形编程功能。此类数控系统可以根据编程人员的操作呈现出加工图形,既直观,又快捷。这些功能的出现极大的简化了编程的过程,提高了编程效率和准确率。对于非直线、圆弧轮廓,如果能够用数学公式定义的话,可以利用宏程序进行编程。系统根据给定的条件自动的判别基点或节点坐标,再以直线或圆弧的形式去逼近真实轮廓曲线。其精度可以利用步距来控制,且不需要增加程序的大小,使得修改和调整更加方便。
目前,国内数控机床装备的数控系统种类繁多,其中以日本的FANUC系统居多,但该系统在处理直线与圆弧,圆弧与圆弧之间的倒角及倒圆时会比较困难。运用系统厂商提供的标准ISO代码编写数控加工程序,所使用的代码功能是固定的,具体功能由厂家定义。编程人员只能按照规定的格式去运用指令,如此,便限制了编程的灵活性及适用性。系统厂商为此为用户提供了宏程序功能。使用者可以根据自己的需要来扩展数控系统的功能。用户首先需要把实现某种功能的一组指令存储在系统中,然后通过参数设定使得某个指令代表这个程序,在今后的编程过程中,只需要调用该指令即可,这个指令便称为宏指令。针对圆弧轮廓之间倒角计算量大且容易出错等现象,我们便可以通过用户宏程序开发相应的指令来解决。从而达到减少计算等辅助时间,扩展系统功能,提高编程效率和准确性的目的。以下,文章将主要针对圆弧之间的过渡功能指令开发展开研究。
(一)几何要素分类
根据图样中的直线和圆弧轮廓,将其中的几何要素分为两类:
其一根据自身给定的条件便可以确定各个元素的位置,这类元素叫做主元素或基本元素。如两点或一点及方向和长度便可以确定一条直线。已知圆心和半径或圆上的两个点及半径可以确定一个圆弧。主元素无需依赖其他元素而独立存在。
其二需要通过主元素才能确定该元素的位置,这类元素叫做辅助元素或过渡元素。如边倒角,圆弧过渡,圆与圆的切线等。这些元素是随着主元素的变化而变化的。
通过给定的条件便可以计算出基本元素自身坐标的,称为封闭元素。若需通过其他基本元素才能够确定其自身坐标的元素称为开放元素。开放元素需要两个基本要素来描述,若它们之间有过渡元素,那么还需将过渡元素包含进去。
(二)轮廓的方向性性与光顺性
根据编程时所使用的插补指令、起点坐标和终点坐标可以判别轮廓的矢量方向。除了轮廓的方向之外,还应考虑到零件轮廓之间连接的光顺性,那么就要求两元素的方向必须一致。
(三)交点及切点的判别
1.自动判别
根据切点处方向的一致性,可以自动判别切点的位置。如图1所示,在圆弧与圆弧的交点处,可以作四个相切过渡圆弧。根据圆弧及过渡圆弧的方向,便可以自动确定其中一个过渡圆弧,如表1所示。表1 过渡圆弧判别C1C2R过渡圆弧顺时针逆时针逆时针4顺时针2顺时针逆时针1顺时针3图1 两圆弧之间的过渡圆弧
2.判别参数判别
当两圆相交或相切时,以第一圆的圆心至第二圆的圆心作直线,建立一个判别矢量。以第一圆的圆心为中心,按逆时针方向旋转,若交点或切点的角度在之间,则为第一交点或切点;若在之间则为第二交点或切点。为第一点、为第二点。当两圆不相交时,判别过渡圆弧的圆心,方向同前。如图2所示。
图2 根据DS判别过渡圆弧
A、B表示角度。在含有两个基本元素时,A表示第一元素的角度,B表示第二元素的角度,单位为度。角度以横坐标正方向为基准,逆时针为正,顺时针为负。
I、J表示圆弧中心的横、纵坐标值,用绝对坐标表示,K表示半径及旋转方向,K的绝对值表示半径值,其符号表示圆弧的方向。规定逆时针旋转,K为正值,顺时针旋转,K为负值。如果两个基本元素都为圆弧时,第一圆为I1J1K1,第二圆弧为I2J2K2,其I、J、K的顺序不能颠倒。
R表示过渡圆弧半径及旋转方向。R值表示过渡圆半径值,其符号表示过渡圆弧的方向。规定,逆时针旋转时,R为正值,顺时针旋转时R为负值。当R=0时,表示两圆之间以切线连接。
X、Y表示第一基本元素终点的横、纵坐标值,以绝对坐标表示。
U、V表示第二基本元素终点的横、纵坐标值,以绝对坐标表示。
S表示判别参数。S=1表示第一交点、切点或第一过渡圆弧圆心;S=2表示第二交点、切点或第二过渡圆弧圆心。当省略时表示第一点。
(一)宏指令
根据圆弧之间的几何特征和数控指令,可用以下指令实现直线圆弧的倒角功能。
G65 P9028 I1____J1____K1____I2____J2____K2____R____S____;
式中,I1、I2——圆弧1、2圆心的横坐标;
J1、J2——圆弧1、2圆心的纵坐标;
K1、K2——圆弧1、2的半径及旋转方向;
R——过渡圆弧的半径及旋转方向,当R=0时为切线;
S——交点或切点的判别参数。
在参数NO.229中设定204(自定),既G204=G65 P9019。
指令的几种形式:圆与圆的相对位置,有同心圆、内切、相交、外切、外离,除了同心圆不考虑外,还有五种情况。当既不相交,也不相切时,必须用过渡圆弧或切线连接。若相交或相切时,则可用过渡圆弧或切线连接。
1.已知两圆及判别参数
指令格式:G204 I1____J1____K1____I2____J2____K2R____S____;
此时两圆为相交或相切,交点或切点用S判别。如图3所示,求交点或切点的坐标X、Y。
图3 两圆弧交点或切点的判别
先求出两段圆弧的中心距及角度
角度α=arctan(J2-J1)/(I2-I1)
在由两半径及圆弧圆心连线构成的三角形中
A=α+β
则有交点或切点的坐标为:
X=I1+|K1|·cosA
Y=J1+|K1|·sinA
2.已知两圆之间以切线连接
指令格式:G204 I1____J1____K1____I2____J2____K2____R____;
此时两圆相交、相切或相离,如图4所示。
图4 两圆弧之间的切线
利用中心距及其角度,再根据K1与K2的差,计算出圆心连线与圆心到切点的角度。
如果|K2|>|K1|
如果|K2|<|K1|,或K1与K2异向
当K1为负值时,β取正;
当K1为正值时,β取负。
第1圆的切点:
X1=I1+|K1|·cosA
Y1=J1+|K1|·sinA
第2圆的切点,当K1与K2同向时
X2=I2+|K2|·cosA
Y2=J2+|K2|·sinA
X2=I2-|K2|·cosA
Y2=J2-|K2|·sinA
3.已知两圆弧之间以过渡圆弧连接
指令格式:G204 I1____J1____K1____I2____J2____K2____R____S____;
如图5所示,根据两圆的圆心距及半径的大小,两圆的位置有五种情况,每种情况的过渡圆弧数量不尽相同。同一种情况,由于过渡圆弧的大小不同,数量也不一样,两个交点最多有八个过渡圆弧。根据两圆及过渡圆圆弧的方向和判别参数,可以确定切点。
图5 两圆弧之间的切线
由圆C1、C2及过渡圆弧R的中心线组成的三角形,如图6所示。
过渡圆弧中心Ir、JrIr=I1+O1Or·cosAJr=J1+O1Or·sinA过渡圆与圆弧的切点坐标X1=Ir+RI1-IrR-K1=I1R-IrK1R-K1Y1=Jr+RJ1-JrR-K1=J1R-JrK1R-K1图6 三角形O1O2Or
过渡圆与圆弧C2的切点坐标
(二)根据上述几何及逻辑关系设计宏程序执行过程框图,如图7所示
图7 程序设计流程图
指令G204调用宏程序如下:
O9019(C—C);
IF[#4 NE#7]GOTO 2;
IF[#5 EQ#8]GOTO 90;
N2 IF [#6 EQ #0]GOTO 90; IF [#9 EQ #0]GOTO 90; #33=#4003; #31=#5001; #32=#5002; IF[#6 GT 0]GOTO 4; #30=2; GOTO 5;
N4#30=3;
N5#2=ATAN[#8-#5]/[#7-#4]; #10=SQRT[[#7-#4]*[#7-#4]+[#8-#5]*[#8-#5]]; IF [#8 EQ 0]GOTO 20; IF [[ABS[#6-#18]+ABS[#9-#18]]LE #10]GOTO 90; #11=[[#6-#18]*[#6-#18]+#10*#10-[#9-#18]*[#9-#18]]/[2*ABS[#6-#18]*#10]; #3=ATAN[SQRT[1-#11*#11]]/#11; IF [#3 GT 0]GOTO6; #3=#3+180.0;
N6 IF[#19 NE 2]GOTO7; #3=-#3;
N7 #1=#2+#3; #12=#4+ABS[#18-#6]*COS[#1]; #13=#5+ABS[#18-#6]*SIN[#1]; IF [#18 NE #0]GOTO 10; G#30 G90 X#12 Y#13 I[#4-#31]J[#5-#32]; GOTO 100;
N10 IF [#18 GT 0]GOTO 11; #29=2; GOTO 12;
N11 #29=3;
N12 #24=[#4*#18-#12*#6]/[#18-#6]; #25=[#5*#18-#13*#6]/[#18-#6]; #27=[#7*#18-#12*#9]/[#18-#9]; #28=[#8*#18-#13*#6]/[#18-#9]; G#30 G90 X#24 Y#25 I[#4-#31]J[#5-#32]; G#29 X#27 Y#28 I[#12-#24]J[#13-#25]; GOTO 100;
N20 IF [[ABS[#6]/#6]NE[ABS[#9]/#9]]GOTO 24; #14=1; IF [ABS[#6] LT ABS[#9]] GOTO 22; #3=ATAN [SQRT[#10*#10-[#6-#9]*[#6-#9]]]/[ABS[#6-#9]]; GOTO 26;
N22#3=90.0+ATAN[ABS[#6-#9]]/[SQRT[#10*#10-[#6-#9]*[#6-#9]]];
GOTO 26;
N24 IF[ABS[#6-#9]LE #10]GOTO 90; #3=ATAN[SQRT[#10*#10-[#6-#9]*[#6-#9]]/[ABS[#6-#9]]; #14=-1;
N26 IF[#6 LT 0]GOTO 27; #3=-#3;
N27 #1=#2+#3; #24=#4+ABS[#6]*COS[#1]; #25=#5+ABS[#6]*SIN[#1]; IF[[ABS[#6]/#6]EQ[ABS[#9]/#9]]GOTO 29; #1=#1+180.0;
N29 #27=#7+#14*ABS[#9]*COS[#1]; #28=#8+#14*ABS[#9]*SIN[#1]; G#30 G90 X#24 Y#25 I[#4-#31]J[#5-#32]; G01 X#27 Y#28; GOTO 100;
N90 #3000=n;
N100 G#33 M99;
运用宏程序开发数控编程指令在很大程度上丰富了机床系统的编程功能。在目前仍以单机生产为主的中小型企业中,运用指令G204编制圆弧之间的过渡程序,大大减少了基点坐标计算等辅助时间,从而提高了编程效率及准确率。
[1]北京发那科机电有限公司.FANUC CNC用户宏程序培训教程[M].北京:高教出版社,2013.
[2]杜军.数控宏程序编程手册[M].北京:化学工业出版社,2014.
[3]张喜江.加工中心宏程序应用案例[M].北京:金盾出版社,2013.
[4]陈海舟.数控铣削加工宏程序及应用实例[M].北京:机械工业出版社,2010.
Development of Programming Instruction of Circular Arc Transition
WANG Qi-xiang
(TianjinSino-GermanVocationalTechnicalCollege,Tianjin, 300350)
With the purposes of reducing non-cutting time, simplifying programming and then improving efficiency and accuracy of programming, this paper utilizes macroprogram to develop corresponding instructions of circular arc transition.
macroprogram; transition; chamfering
2015-05-05
王启祥(1977-),男,天津市人,天津中德职业技术学院讲师。研究方向:数控技术应用及职业教育研究。
TP271
A
1673-582X(2015)08-0082-07