您好,欢迎访问三七文档
5轴联动曲面编程的方法2006-11-2010:58:505轴加工中心的刀具可以对工件呈任意的姿势进行加工,所以可避免切削速度为零的现象,还可以选择最适宜的刀具及相对于工件的姿态有效地进行加工,以及对凹入的形状用刀具倾斜的姿态进行加工,这些都是有利于加工的条件。多轴控制加工的控制软件结构。特别是用5轴控制加工时,为了避免具有两根回转轴的刀具与工件发生干涉,必须生成刀具路径。但再生成NC数据是一件很麻烦的事。现在开发了具有通用性的5轴控制软件,即可以生成防止发生刀具与工件干涉的刀具路径。这时以软件实体模型为中心,使用防止发生干涉的算法即可版生成刀具路径(即CL数据)。所生成的刀具路径与5轴控制加工中心的结构无关,是一种中性数据。此处理软件称为主处理程序。除此以外,还需设置能按照规定使用加工中心的结构和组成,从已生成已生成的刀具路径自动生成NC数据的后处理器。如果按照原样使用已生成的刀具路径,就不可能使不同机械结构和构造的5轴控制加工中心运转。为此必须采取各种措施将CL数据变换成适合于各种不同结构加工中心的NC数据。5轴编程的方法一:最初的5轴编程方法是编程员根据零件图样和有关加工工艺要求,用一种专用的数控编程语言来描述整个零件的加工过程,即零件的源程序。然后将源程序输入计算机中,由计算机进行编译、计算,最后再由与所用数控机床相对应的后置处理程序处理后,自动生成相应的数控加工程序。5轴编程的方法二:随着计算机技术的发展,“图形交互式自动编程”也应运而生。它直接将零件的几何图形信息自动转化为数控加工程序。该方法极大地提高了数控编程的效率,并具有精度高、直观性好、使用简便、便于检查等优点。下文对典型零件叶片的加工进行说明.加工过程分为粗,半精加工,精加工三道加工工序。在粗加工时我们用MATERCAM中的挖槽模组对叶片的正反面进行了在吃刀量,快速去除余量,然后用MASTERCAM的四轴加工模组对其进行半精加工,保证用五轴加工时的余量均匀。但在用UG编制五轴程序时,UG自带后处理在处理CLS刀路文件时与我们AB轴机床不匹配。编出的五轴联动加工程序,在实际的工件加工中,由于A轴是不停绕X轴旋转的,B是不停绕Y来回旋转的,AB轴的速度根本不法控制,刀具很快就断了。为此我们根据UG的CLS刀路文件TOOLPATH/VARIABLE_CONTOUR,TOOL,MILLTLDATA/MILL,14.0000,0.0000,75.0000,0.0000,0.0000MSYS/0.0000,0.0000,0.0000,1.0000000,0.0000000,0.0000000,0.0000000,1.0000000,0.0000000PAINT/PATHPAINT/SPEED,2000PAINT/COLOR,186RAPIDXYZIJKGOTO/-0.9099,-45.9492,6.38000,-0.045494,-0.793114,0.607370PAINT/COLOR,42FEDRAT/MMPM,250.0000GOTO/0.0000,-30.0869,-5.7674PAINT/COLOR,31GOTO/0.0000,-28.6040,-3.7810,-0.0360642,-0.8066632,0.5899101GOTO/0.0000,-27.1938,-1.8348,-0.0294535,-0.8103327,0.5852294GOTO/0.0000,-25.8078,0.0669,-0.0253415,-0.8035081,0.5947542GOTO/0.0000,-24.3975,1.9197,-0.0232136,-0.7854378,0.6185052GOTO/0.0000,-23.6691,2.8262,-0.0225369,-0.7730318,0.6339668GOTO/0.0000,-22.9225,3.7176,-0.0218568,-0.7597165,0.6498870GOTO/0.0000,-22.1579,4.5922,-0.0211762,-0.7454128,0.6662667GOTO/0.0000,-21.3754,5.4480,-0.0204974,-0.7300363,0.6831009GOTO/0.0000,-20.5749,6.2833,-0.0198220,-0.7134967,0.7003782我们可以看到XYZIJK分别对应的数值,为X是X的坐标,Y是Y的坐标,Z是Z的坐标,I是在X轴上的分量,J是在Y轴上的分量,K是在Z轴上的分量。A轴是在YZ平面内的,A轴的角度可根据K和J的值来分析出,有如下几种:1)if(k0&&j0)a=180-atan(j/k)*180/p2)if(k0&&j0)a=180-atan(j/k)*180/p3)if(k0&&j0)a=360-atan(j/k)*180/p4)if(k0&&j0)a=-atan(j/k)*180/p5)if(k0&&j==0)a=06)if(k==0&&j0)a=907)if(k==0&&j0)a=2708)if(k0&&j==0)a=180。B轴在ZX平面内的,B轴的角度可根据I的分量来分析出:b=acos(i)*180/p-90在程序的速度控制上根据程序语句之间的AB轴的增量大小的不同来设定它的进给速度:if((da=3.3)&&(dy=0.25))f=150;elsef=20;if((da5)&&(da8))f=8;if((da=8)&&(da=12))f=4;if(da=12)f=2;if(da=350)f=150;用C语言编制了一个XH716专用后处理程序:#include#include#include#include#include#include#definep3.1415926main(){FILE*in,*out;charinfile[12],outfile[12],*ptr;char*temp1=GOTO,*temp2=FEDRAT,*temp3=CIRCLE;floatx,y,z,i,j,k,a,b;floattempa=-999.0,tempy;intn,m,sz,f=2000,tempf=0;intnnn,nn[8],t=1;charch;charaxe[10];charstr[128];printf(Pleaseinputthecutfiletopost!);scanf(%s,infile);if((in=fopen(infile,r))==NULL){printf(FILEcannotbeopenned);exit(1);}printf(Pleaseinputoutfilename!);scanf(%s,outfile);if((out=fopen(outfile,w))==NULL){printf(FILEcannotbeopenned);exit(1);}while(!(feof(in))){fscanf(in,%s,str);m=0;ptr=strstr(str,temp1);if(ptr!=NULL)m=1;ptr=strstr(str,temp2);if(ptr!=NULL)m=2;ptr=strstr(str,temp3);if(ptr!=NULL)m=3;if(m==1)switch(m){case1:{sz=strlen(str);t=1;for(nnn=0;nnn=sz;nnn++){ch=str[nnn];if((ch==“/“)||(ch==“,“)){nn[t]=nnn;t++;}}for(nnn=1;nnnT;NNN++){intcn1=0,op=0;if(nnn=6)switch(nnn){case1:{for(cn1=(nn[nnn]+1);cn1(nn[nnn+1]-1);cn1++){axe[op]=str[cn1];op++;}x=atof(axe);break;}case2:{for(cn1=(nn[nnn]+1);cn1(nn[nnn+1]-1);cn1++){axe[op]=str[cn1];op++;}y=atof(axe);break;}case3:{for(cn1=(nn[nnn]+1);cn1(nn[nnn+1]-1);cn1++){axe[op]=str[cn1];op++;}z=atof(axe);break;}case4:{for(cn1=(nn[nnn]+1);cn1(nn[nnn+1]-1);cn1++){axe[op]=str[cn1];op++;}i=atof(axe);break;}case5:{for(cn1=(nn[nnn]+1);cn1(nn[nnn+1]-1);cn1++){axe[op]=str[cn1];op++;}j=atof(axe);break;}case6:{for(cn1=(nn[nnn]+1);cn1(sz-1);cn1++){axe[op]=str[cn1];op++;}k=atof(axe);break;}}}if(k0&&j0)a=180-atan(j/k)*180/p;if(k0&&j0)a=180-atan(j/k)*180/p;if(k0&&j0)a=360-atan(j/k)*180/p;if(k0&&j0)a=-atan(j/k)*180/p;if(k0&&j==0)a=0;if(k==0&&j0)a=90;if(k==0&&j0)a=270;if(k0&&j==0)a=180;b=acos(i)*180/p-90;fprintf(out,X%.3fY%.3fZ%.3fA%.4fB%.4f,x,y,z,a,b);if(tempa==-999.0){tempa=a;tempy=y;}floatda,dy;if(atempa)da=a-tempa;elseda=tempa-a;tempa=a;if(ytempy)dy=y-tempy;elsedy=tempy-y;tempy=y;if((da=3.3)&&(dy=0.25))f=150;elsef=20;if((da5)&&(da8))f=8;if((da=8)&&(da=12))f=4;if(da=12)f=2;if(da=350)f=150;if(f==tempf)fprintf(out,);else{fprintf(out,F%d,f);tempf=f;}break;}case2:break;}}fclose(in);fclose(out);return(0);}最后处理出的程序如下:X-0.909Y-45.949Z6.380A52.5549B2.6075X0.000Y-30.086Z-5.768A52.5549B2.6075X0.001Y-28.604Z-3.781A53.8221B2.0668X0.001Y-27.193Z-1.834A54.1628B1.6878X0.000Y-25.808Z0.066A53.4912B1.4521X0.001Y-24.397Z1.920A51.7807B1.3301X0.001Y-23.670Z2.827A50.6447B1.2913X0.001Y-22.923Z3.717A49.4552B1.2524X0.001Y-22.158Z4.593A48.2089B1.2134X0.000Y-21.376Z5.449A46.9023B1.1745X0.000Y-20.574Z6.284A45.5316B1.1358X0.000Y-19.757Z7.097A44.0931B1.0973X0.000Y-18.921Z7.885A42.5829B1.0591X0.000Y-18.067Z8.649A40.9973B1.0212X0.001Y-17.196Z9.385A39.3691B0.9809X0.001Y-1
本文标题:5轴曲面编程法
链接地址:https://www.777doc.com/doc-2930326 .html