宏程序裳华职业技术中专鲍新涛宏程序概述其实说起来宏就是用公式来加工零件的,比如说椭圆,如果没有宏的话,我们要逐点算出曲线上的点,然后慢慢来用直线逼近,如果是个光洁度要求很高的工件的话,#1=#1+#2;#2=#2+#1;END1;M30由浅入深宏程序1-宏程序入门基础之销轴加工对于没有接触过宏程序人,觉得它很神秘,其实很简单,只要掌握了各类系统宏程序的基本格式,应用指令路。
T0101G0Z5X82赋给XO5679T0101#1=76X82G0Z5M5M30由浅入深宏程序2-宏程序之销轴粗精加工本篇文章利用宏程序简单模仿数控系统的外圆车削循环功能。
在此用前一篇的图纸与程序原程序:O0985T0101M3S800G0X82Z5粗加工开始#2=0.05Z向的加工余量#3=0.5外圆方向的加工余量#4=0.3每层切削后的回退量#1=76+2*#3考虑了精加工余量的第一次切削直径N10 G0X[#1]将变量赋给X,则X方向进刀的直径则为#1变量中实际存储值。
N10是程序G1Z[-40+#2]F0.2段的编号,用来标识本段,为后面循环跳转所用。
X[#1+#4]每次切削只回退#4的值G0Z5#1=#1-4单边切深为2mm,直径方向每次递减4mmX方向,则由端#1,G3X[#3]Z-20R20F0.1切削圆弧G1X42直线插补切削至外圆G0Z5退至端面外侧#1=#1-4直径方向递减4mmIF[#1GE0]GOTO10如果#1>=0,即此表达式满足条件,则程序跳转到N10继续执行。
G0X150Z150当不满足#1>=0,即#1<0,则最后一条圆弧已经切完,跳出循环。
M5M30由浅入深宏程序4-圆的标准方程编制宏程序车半球面我们知道无论什么样的曲线,数控系统都是CAD/CAM软件在处理时都会将其按照内部的算法划分成小段的直线进行加工,接下来我们利用圆的方程来将直线划分成小段直线在利用宏程序对其加工。
下图为圆的标准方程X*X+Y*Y=R*R,若将X和Y用参数变量代替可改写为#1*#1+#2*#2=R*R圆弧可沿#1方向划分成无数小段直线,然后求出其相应端点坐标,再求出相对的数控车床中的坐标,再按直线进行编程加工。
如下图所示:则此段圆弧精加工轨迹为:G0X0G1Z0F0.1#1=0N10#2=SQRT[20*20-#1*#1]SQRT表示开平方#3=#1-20圆的原点在工件坐标左侧20,所以圆弧上所有点坐标Z要减20#4=2*#2#1=#1-0.5G1X42O6789T0101M3S800G0X42Z5#5=36G1Z0F0.1#1=20#3=#1-20#1=#1-0.5G1X42G0Z5#5=#5-4M5M30以上程序分内外二层循环,外层循环为分层加工,内层循环为小段直线插补一条圆弧。
由浅入深宏程序5-圆的参数方程编制宏程序车半球面圆的标准方程为:X=R*COSθY=R*SINθ可改写为:#1=20*cos[#3]#3为参数方程对应图纸中角度#2=20*sin[#3]使用参数方程比圆的标准方程具有一个优点,从下图中可以看出,使用标准方程式,在工件最右端,划分直线坡度较大,从右至左划分线段不均匀,而使用圆的参数方程所划分的直线段是按照圆周方向划分的,因此分布均匀,从而使用零件表面加工质量好。
相应程序修改如下:O9876T0101M3S800G0X42Z5#6=36N5 G0X[#6]G1Z0F0.1#3=0N10#1=20*COS[#3]#5=#1-20#3=#3+3G1X42G0Z5#6=#6-4M5M30假设椭圆G0X0G1Z0F0.1#1=30N10#2=20*SQRT[1-30*30/#1*#1]SQRT表示开平方#3=#1-30椭圆的原点在工件坐标左侧30,所以椭圆上所有点坐标Z要减20 #4=2*#2方程计算出的为半径值,需转化为直径值才能按直径编程。
G1X[#4]Z[#3]F0.1沿小段直线插补加工#1=#1-1递减一小段距离,此值越小,椭圆越光滑。
IF[#1GE0]GOTO10条件判断是否到达终点。
G1X42直线切出外圆如果要再加上分层的粗加工,设偏移量为#5,则程序改为O5678T0101M3S800G0X42Z5#5=36N5 G0X[#5]G1Z0F0.1#1=30N10#2=20*SQRT[30*30-[#1*#1]]/30SQRT表示开平方#3=#1-30椭圆的原点在工件坐标左侧30,所以椭圆上所有点坐标Z要减20 #4=2*#2方程计算出的为半径值,需转化为直径值才能按直径编程。
G1X[#4]Z[#3]F0.1沿小段直线插补加工#1=#1-1递减一小段距离,此值越小,椭圆越光滑。
G1X42G0Z5#5=#5-4M5M30Y=b*SINθO3456T0101M3S800G0X42Z5#6=36G1Z0F0.1#3=0N10#1=#2=20*SIN[#3]#4=2*#2+#6计算出的为半径值,需转化为直径值才能与直径编程对应。
#5=#1-30G1X[#4]Z[#5]F0.1沿小段直线插补加工#3=#3+3递减3度,此值越小,工件表面越光滑。
IF[#3LE90]GOTO10条件判断是否到达终点。
G1X42直线插补切到工件外圆之外G0Z5#6=#6-4IF[#6GE0]GOTO5G0X150Z150M5M30由浅入深宏程序8-车床任意位置椭圆宏程序的编制不在轴线上的椭圆宏程序编制也没有什么特殊的,只是改下偏置的数值罢了。
椭圆的参数方程为:X=a*COSθY=b*SINθ可改写为:#1=30*cos[#3]#3为参数方程对应的中角度#2=20*sin[#3]图中椭圆长半轴30mm,短半轴20mm,椭圆中心位置如图所示,不在轴线上,因此在计算编程所用的坐标值时,X 方向要再加上40,Z方向要减去30+10=30#3=0M5M30要对斜椭圆进行编程,首先要知道单个坐标点旋转所用的公式。
如下图所示,单个点逆时针旋转一定角度,公式推导如下:s=rcos(a+b)=rcos(a)cos(b)–rsin(a)sin(b)??(1.1)t=rsin(a+b)=rsin(a)cos(b)+rcos(a)sin(b)?(1.2)其中x=rcos(a)?,y=rsin(a)代入(1.1),(1.2),s=xcos(b)–ysin(b)???(1.3)t=xsin(b)+ycos(b)???(1.4)根据下图,原来的点(#1,#2),旋转后的点(#4,#5),则公式:#4=#1*COS[30]-#2*SIN[30]#5=#1*SIN[30]+#2*COS[30]下图中椭圆旋转了30度,即#1=30旋转前后的点坐标的坐标原点都是椭圆中心。
程序如下:O1234T0101M3S800G0X82Z5#6=16工件毛坯假设为90mm,#6为每层切削时椭圆弧向+X的偏移量。
N5 G0X[#6+30+40]斜椭圆与端面的交点直径为70G1Z0F0.1#3=0N10#1=30*COS[#3]对应角度#3的椭圆上的一个点的坐标,此为未旋转的椭圆的点#8=#1-26#3=#3+3G1X92G0Z5#6=#6-4M5M30O0001;T0101;M03S800Z0.;Z-19.;X35.988Z-29.;Z-46;X44.;X45.992Z-47.;N20Z-55.;G70P10Q20S1000 F120;(精车右端外形轮廓)G00X100.;Z50.;S800 F150;#150=26.;(定义椭圆加工余量)N30IF[#150LT1]GOTO40;(如果余量小于1,跳到40句)M98P0003;(调用椭圆加工宏程序)#150=#150-2;(每次递减2mm )GOTO30;(无条件跳转到30句)N40 G0X30.Z2.;S1500 F80;#150=0;(开始精加工椭圆轮廓)M98P0003;G0X100.Z5.;M30;O0003;(椭圆加工子程序)#101=20.#102=13.#103=20.GOTO20M99; O0027;T0101;G98;M43;M03S800Z-8.79;N15#102=[#100+44]*[#100+44]; #103=SQRT[36*36-#102];(构造)#104=10+2/3*#103;(构造X ) #105=2*#104;G01X#105Z#100;#100=#100-2;(Z 向递减2mm )IF[#100GT-72.102]GOTO15(如果Z 坐标值大于-72.102跳转到15句)G00U30;N20X70;G00X80Z5;G70P10Q20 F100;(精加工椭圆轮廓)G00X100;Z100;M05;M30;参数方程编写椭圆宏程序:O0271;T0101;M03S800;G0X36Z26;#20=26;(X 向总加工余量)N56 G0U2;Z26;(Z#1=12.5;#2=25;#3=0.5;#5=90;END2G0U2;Z26;G0X100;M05;M30;抛物线宏程序编制:O0272;M03S800;G98;G00X90Z100;N10#24=0;(抛物线顶点处X值)#26=0;(抛物线顶点处Z值)#17=-10;(常量)#22=42;(抛物线开口处直径)#6=1;(每次步进量)#9=100;M05;M30;焦点在X焦点在YO0273;T0101;G98;G01X10;Z-5.05;X17.524;#1=20;G01X2*#2Z#3;#1=#1+1;IF[#1LT80]GOTO10;G01X56Z-56.473;X60;G00X100;Z100;M05;M30;焦点在X轴上的双曲线宏程序编程:O0045;T0101;G98;M03S500;G00X60Z0;G01X0;#100=0;N15#101=4/3*SQRT[[#100-6]*[#100-6]-36]; G01X2*#101Z#100;#100=#100-1;IF[#100GT-16.594]GOTO15;G01X58Z-16.594;/64,则。