首页 理论教育 数控铣削曲面零件的宏程序编程实例分析

数控铣削曲面零件的宏程序编程实例分析

时间:2023-06-25 理论教育 版权反馈
【摘要】:实例1图3-110所示零件,毛坯为120mm×100mm×28mm的45钢规则六面体,试分析其加工工艺并编写其数控铣/加工中心的加工程序。以工件上表面中心建立工件坐标系,斜椭圆弧和孔口R8mm的球面需采用宏程序(R参数)进行编程。

数控铣削曲面零件的宏程序编程实例分析

实例1

图3-110所示零件,毛坯为120mm×100mm×28mm的45钢规则六面体,试分析其加工工艺并编写其数控铣/加工中心的加工程序。

1.工艺分析

(1)确定工序及工步 该零件正面为120mm×90mm×8mm的直线与圆弧、椭圆弧光滑的连接凸台,零件中心为ϕ30mm的通孔,孔口为R8mm的圆弧过渡,左上右下对角上各有一ϕ10mm的通孔;零件反面为直线与圆弧组成的矩形两侧开口凹槽。此零件的各尺寸、形状位置、表面粗糙度值及精度要求都较高,因此需分粗、精加工来完成。

由于毛坯零件为规则的长方体零件,因此可以选择通用夹具——机用平口台虎钳作为零件加工定位夹具。

考虑到零件正反面都需要加工,因此根据零件特性和数控加工工艺要求,先加工正面。先用钻削ϕ2.5mm中心孔的A型不带护锥的中心钻进行定位孔加工,再用ϕ9.8mm麻花钻进行预钻孔加工,零件中心再用ϕ20mm麻花钻进行扩孔加工;用ϕ16mm粗齿立铣刀进行ϕ30mm通孔和凸台余量切除,用ϕ12mm粗齿立铣刀进行正面凸台粗加工和孔口球面粗加工,用ϕ25~35mm的镗孔刀精加工ϕ30mm通孔;用ϕ10mm铰刀铰削2×ϕ10mm通孔;最后用ϕ12mm细齿立铣刀精加工凸台,R4mm球头立铣刀精加工R8mm球面。反面用ϕ12mm粗齿立铣刀粗铣两侧开口矩形凹槽,最后用ϕ12mm细齿立铣刀精铣两侧开口矩形凹槽。

考虑零件尺寸精度要求高,半精加工后要仔细检测尺寸,若精加工后尺寸还不符合要求,如果余量不大,这时可再空走一刀;如果余量较多,则再通过改变刀具半径值后走一刀,直到轮廓尺寸符合图样要求再拆装。

978-7-111-33271-8-Chapter03-147.jpg

图3-110 零件示意图

a)零件图 b)效果图

(2)编程与加工难点分析 该零件编程与加工难点在于正面两侧的斜椭圆弧和孔口R8mm的球面。以工件上表面中心建立工件坐标系,斜椭圆弧和孔口R8mm的球面需采用宏程序(R参数)进行编程。斜椭圆弧可通过建立子坐标系和旋转指令编制一个子程序,通过主程序调用子程序加工其中一侧椭圆弧,再通过镜像指令,再次调用子程序加工另一侧椭圆弧。由于是加工椭圆的内侧,因此在选择铣刀尺寸铣削余量时,要注意刀具干涉,铣刀直径不能选得太大。其基点坐标尺寸如图3-111所示。由于R8mm球面余量较多且不均,因此在铣削时,先由下而上采用立铣刀分层粗铣成形,再用球头铣刀精加工,因此在编程时要注意两种铣刀的刀心位置不同,如图3-112所示。

978-7-111-33271-8-Chapter03-148.jpg

图3-111 基点坐标尺寸

978-7-111-33271-8-Chapter03-149.jpg

图3-112 球面刀具切削示意图

a)ϕ12mm立铣刀 b)R4mm球头铣刀

2.宏程序流程结构框图(略)

3.宏程序编制

(1)FANUC 0i数控系统

1)椭圆弧宏子程序。

O3411;宏子程序名

N10#1=90.0;椭圆弧起始角度

N15 G00 X-75.0 Y45.5;刀具快速移动到切削起点

N20 G01 Z-8.0 F1000;刀具下降到凸台背吃刀量

N25 G42 G01 X-37 Y45.5 F120 D08;建立刀具半径右补偿,直线插补到(-37.0,45.5)处

N30 G52 X-45.0 Y30.0;以(-45.0,30.0)为零点,建立局部工件坐标系

N35 G68 X0 Y0 R-37.0;以局部工件坐标系零点为旋转点,将坐标轴顺时针旋转37°

N40 X0.0 Y14.0;直线插补至椭圆起始点

N45 #1=#1-2;角度变量均值递减2°

#10=25.0*COS[#1];椭圆弧上的X坐标值

#11=14.0*SIN[#1];椭圆弧上的Y坐标值

N50 G01 X#10 Y#11;顺着椭圆弧作顺时针直线插补

N55 IF[#1GT-90] GOTO 45;如果角度变量#1大于-90°,则程序跳转到N45程序段

N60 G69;取消坐标系旋转

N65 G52 X0 Y0;取消局部坐标系偏移

N70 X-70.0 Y9.0;直线插补到(-70.0,9.0)处,刀具离开工件

N75 G00 Z10.0;刀具快速上升至工件上表面10mm处

N80 G40 G00 X0.0 Y0.0;取消刀具半径补偿,快速回到工件中心

N85 M99;子程序结束并返回主程序

2)ϕ12mm的粗齿立铣刀粗铣削孔口R8mm球面子程序。

O3412;宏子程序名

N10 G01 Z-8.0 F1000;刀具下降到ϕ30mm孔与R8mm相切处高度

N15 #2=0;角度变量初始值赋零

N20 G90 G01 G42 X[23.0-8.0*COS[#2]]Y0 F200 D07;建立刀具半径右补偿,直线插补到R8mm球面的分层切削圆上

N25 G03 I[-23.0+8.0*COS[#2]] J0;逆时针整圆插补(顺铣)

N30 G01 Z[-8.0+8.0*SIN[#2]];刀具上升到下一个分层切削圆的深度

N35 #2=#2+5;角度变量均值递增5°

N40 IF[#2LE90] GOTO 20;如果角度变量#2小于或等于90°,则程序跳转到N20程序段

N45 G40 G00 X0.0 Y0.0;取消刀具半径补偿,刀具快速退回孔中心

N50 Z100.0;刀具快速上升到工件表面上方100mm处

N55 M99;子程序结束并返回主程序

3)R4mm球头立铣刀精铣削孔口R8mm球面子程序。

O3413;宏子程序名

N10 G01 Z-8.0 F1000;球头刀心下降到ϕ30mm孔与R8mm相切处高度

N15 #2=0;角度变量初始值赋零

N20 G90 G01 X[23.0-12.0*COS[#2]] Y0 F500;直线插补到R8mm球面的分层切削圆上

N25 G03 I[-23.0+12.0*COS[#2]] J0;逆时针整圆插补(顺铣)

N30 G01 Z[-8.0+12.0*SIN[#2]];刀具上升到下一个分层切削圆的深度

N35 #2=#2+2;角度变量均值递增2°

N40 IF[#2LE90]GOTO 20;如果角度变量#2小于或等于90°,则程序跳转到N20程序段

N45 G00 X0.0 Y0.0;刀具快速退回ϕ30mm孔中心

N50 Z100.0;刀具快速上升到工件表面上方100mm处

N55 M99;子程序结束并返回主程序

4)零件正面主程序。

O××××;程序名

N10 M06 T01;调用1号刀(ϕ2.5mm中心钻)

N15 G17 G90 G21 G94 G54 G40 G49 G80;程序运行初始状态设置

N20 G43 G00 Z50.0 H01 S2000 M03;建立刀具长度补偿,主轴正转,转速为2000r/min

N195 G91 G28 Z0;刀具Z向回参考点

N200 M06 T07;调用7号刀(ϕ12mm粗齿立铣刀)

N205 G90 G43 G00 Z50.0 H07 S1000 M03;建立刀具长度补偿,主轴正转,转速为1000r/min

N210 X0.0 Y0.0;刀具快速移到工件右侧中心

N215 G65 P3412;调用ϕ30mm孔口R8mm球面粗加工宏子程序

N220 G91 G28 Z0;刀具Z向回参考点

N225 M06 T08;调用8号刀(ϕ12mm的细齿立铣刀)

N230 G90 G43 G00 Z50.0 H08 S1000 M03;建立刀具长度补偿,主轴正转,转速为1000r/min

N235 X0.0 Y0.0;刀具快速移到工件右侧中心

N240 G65 P3411;调用椭圆弧宏子程序精加工左上侧椭圆弧

N245 G51.1 X0;Y轴镜像

N250 G65 P3411;调用椭圆弧宏子程序精加工右下侧椭圆弧

N255 G50.1 X0;取消Y轴镜像

N260 G91 G28 Z0;刀具Z向回参考点

N265 M06 T09;调用9号刀(R4mm球头立铣刀)

N270 G90 G43 G00 Z50.0 H09 S2000 M03;建立刀具长度补偿,主轴正转,转速为2000r/min

N275 X0.0 Y0.0;刀具快速移到工件右侧中心

N280 G65 P3413;调用ϕ30mm孔口R8mm球面精加工宏子程序

N285 G91 G28 Z0;刀具Z向回参考点

N290 G90 G00 Y100.0 M05;刀具快速退到工件后面,关闭切削液

N295 M30;主程序结束,返回程序起始段

(2)SINUMERIK 802D数控系统

1)椭圆弧宏子程序。

L3411.SPF;宏子程序名

N10 R1=90.0;椭圆弧起始角度

N15 G00 X-75.0 Y45.5;刀具快速移动到切削起点

N20 G01 Z-8.0 F1000.0;刀具下降到凸台背吃刀量

N25 G42 G01 X-37.0 Y45.5 F120.0 D1;建立刀具半径右补偿,直线插补到(-37.0,45.5)处

N30 TRANS X-45.0 Y30.0 Z0.;可编程零点偏移

N35 AROT RPL=-37.0;附加旋转-37°

N40 X0.0 Y14.0;直线插补至椭圆起始点

N45 MARE1:R1=R1-2.0;角度变量均值递减2°

R10=25.0*COS[R1];椭圆弧上的X坐标值

R11=14.0*SIN[R1];椭圆弧上的Y坐标值

N50 G01 X=R10 Y=R11;顺着椭圆弧作顺时针直线插补

N55 IF R1>-90 GOTOB MARKE1;如果角度变量R1大于-90°,则程序跳转到标志符MARKE1程序段

N60 TRANS;取消坐标系旋转和偏移

N65 X-70.0 Y9.0;直线插补到(-70.0,9.0)处,刀具离开工件

N70 G00 Z10.0;刀具快速上升至工件上表面10mm处

N75 G40 G00 X0.0 Y0.0;取消刀具半径补偿,快速回到工件中心

N80 RET;子程序结束并返回主程序

2)ϕ12mm的粗齿立铣刀粗铣削孔口R8mm球面子程序。

L3412.SPF;宏子程序名

N10 G01 Z-8.0 F1000.0;刀具下降到ϕ30mm孔与R8mm相切处高度

N15 R2=0.;角度变量初始值赋零

N20 MARKE1:G90 G01 G42 X=23.0-8.*COS[R2] Y0 F200 D7;建立刀具半径右补偿,直线插补到R8mm球面的分层切削圆上

N25 G03 I=-23.0+8.*COS[R2] J0;逆时针整圆插补(顺铣)

N30 G01 Z=-8.0+8.*SIN[R2];刀具上升到下一个分层切削圆的深度

N35 R2=R2+5.0;角度变量均值递增5°

N40 IF R2<=90.GOTOB MARKE1;如果角度变量R2小于或等于90°,则程序跳转到标识符MARKE1程序段

N45 G40 G00 X0.0 Y0.0;取消刀具半径补偿,刀具快速退回孔中心

N50 Z100.0;刀具快速上升到工件表面上方100mm处

N55 RET;子程序结束并返回主程序

3)R4mm球头立铣刀精铣削孔口R8mm球面子程序。

L3413.SPF;宏子程序名

N10 G01 Z-8.0 F1000.;球头刀心下降到ϕ30mm孔与R8mm相切处高度

N15 R2=0.;角度变量初始值赋零

N20 MARKE1:G90 G01 X=23.0-12.0*COS[R2] Y0.F500.;直线插补到R8mm球面的分层切削圆上

N25 G03 I=-23.0+12.*COS[R2] J0;逆时针整圆插补(顺铣)

N30 G01 Z=-8.0+12.*SIN[R2];刀具上升到下一个分层切削圆的深度

N35 R2=R2+2.0;角度变量均值递增2°

N40 IF R2<=90.GOTOB MARKE1;如果角度变量R2小于或等于90°,则程序跳转到标记符MARKE1程序段

N45 G00 X0.0 Y0.0;刀具快速退回ϕ30mm孔中心

N50 Z100.0;刀具快速上升到工件表面上方100mm处

N55 RET;子程序结束并返回主程序

4)零件正面主程序。

FZG×××;程序名

N10 M06 T1 D1;调用1号刀(ϕ2.5mm中心钻)

N15 G17 G90 G71 G94 G54 G40 G49;程序运行初始状态设置

N20 G43 G00 Z50.0 S2000 M03;建立刀具长度补偿,主轴正转,转速为2000r/min

N195 G91 G74 Z0;刀具Z向回参考点

N200 M06 T7 D7;调用7号刀(ϕ12mm粗齿立铣刀)

N205 G90 G43 G00 Z50.0 S1000 M03;建立刀具长度补偿,主轴正转,转速为1000r/min

N210 X0.0 Y0.0;刀具快速移到工件右侧中心

N215 L3412;调用ϕ30mm孔口R8mm球面粗加工宏子程序

N220 G91 G74 Z0;刀具Z向回参考点

N225 M06 T8 D8;调用8号刀(ϕ12mm细齿立铣刀)

N230 G90 G43 G00 Z50.0 S1000 M03;建立刀具长度补偿,主轴正转,转速为1000r/min

N235 X0.0 Y0.0;刀具快速移到工件右侧中心

N240 L3411;调用椭圆弧宏子程序精加工左上侧椭圆弧

N245 MIRROR X0;Y轴镜像

N250 L3411;调用椭圆弧宏子程序精加工右下侧椭圆弧

N255 MIRROR;取消Y轴镜像

N260 G91 G74 Z0;刀具Z向回参考点

N265 M06 T9 D9;调用9号刀(R4mm球头立铣刀)

N270 G90 G43 G00 Z50.0 S2000 M03;建立刀具长度补偿,主轴正转,转速为2000r/min

N275 X0.0 Y0.0;刀具快速移到工件右侧中心

N280 L3413;调用ϕ30mm孔口R8mm球面精加工宏子程序

N285 G91 G74 Z0;刀具Z向回参考点

N290 G90 G00 Y100.0 M05;刀具快速退到工件后面,关闭切削液

N295 M02;主程序结束,返回程序起始段

(3)HNC—21/22M华中世纪星数控系统

1)椭圆弧宏子程序。

%3411;宏子程序名

N10 #1=90.0;椭圆弧起始角度

N15 G00 X-75.0 Y45.5;刀具快速移动到切削起点

N20 G01 Z-8.0 F1000;刀具下降到凸台背吃刀量

N25 G42 G01 X-37 Y45.5 F120 D08;建立刀具半径右补偿,直线插补到(-37.0,45.5)处

N30 G68 X-45.0 Y30.0 R-37.0;以(-45.0,30.0)为旋转零点,将坐标轴顺时针旋转37°

N35 X-45.0 Y30.0;直线插补至椭圆起始点

N40 WHILE#1GE-90;如果角度变量#1小于-90°,则程序跳转到N60程序段

N45 #1=#1-2.0;角度变量均值递减2°

#10=25.0*COS[#1*PI/180];椭圆弧上的X坐标值

#11=14.0*SIN[#1*PI/180];椭圆弧上的Y坐标值

N50 G01 X[-45.0+#10] Y[30.0+#11];顺着椭圆弧作顺时针直线插补

N55 ENDW;循环结束,执行下条语句

N60 G69;取消坐标系旋转

N65 X-70.0 Y9.0;直线插补到(-70.0,9.0)处,刀具离开工件

N70 G00 Z10.0;刀具快速上升至工件上表面10mm处

N75 G40 G00 X0.0 Y0.0;取消刀具半径补偿,快速回到工件中心

N80 M99;子程序结束并返回主程序

2)ϕ12mm的粗齿立铣刀粗铣削孔口R8mm球面子程序。

%3412;宏子程序名

N10 G01 Z-8.0 F1000;刀具下降到ϕ30mm孔与R8mm相切处高度

N15 #2=0;角度变量初始值赋零

N20 WHILE#2LT90;如果角度变量#2大于或等于90°,则程序跳转到N50程序段

N25 G90 G01 G42 X[23.0-8.*COS[#2*PI/180]] Y0 F200 D07;建立刀具半径右补偿,直线插补到R8mm球面的分层切削圆上

N30 G03 I[-23.0+8.*COS[#2*PI/180]]J0;逆时针整圆插补(顺铣)

N35 G01 Z[-8.0+8.*SIN[#2*PI/180]];刀具上升到下一个分层切削圆的深度

N40 #2=#2+5.;角度变量均值递增5°

N45 ENDW;循环结束

N50 G40 G00 X0.0 Y0.0;取消刀具半径补偿,刀具快速退回孔中心

N55 Z100.0;刀具快速上升到工件表面上方100mm处

N60 M99;子程序结束并返回主程序

3)R4mm球头立铣刀精铣削孔口R8mm球面子程序。

%3413;宏子程序名

N10 G01 Z-8.0 F1000;球头刀心下降到ϕ30mm孔与R8mm相切处高度

N15 #2=0;角度变量初始值赋零

N20 WHILE#2LT90;如果角度变量#2大于或等于90°,则程序跳转到N50程序段

N25 G90 G01 X[23.0-12.0*COS[#2*PI/180]] Y0 F500;直线插补到R8mm球面的分层切削圆上

N30 G03 I[-23.0+12.0*COS[#2*PI/180]] J0;逆时针整圆插补(顺铣)

N35 G01 Z[-8.0+12.0*SIN[#2*PI/180]];刀具上升到下一个分层切削圆的深度

N40 #2=#2+2;角度变量均值递增2°

N45 ENDW;循环结束

N50 G00 X0.0 Y0.0;刀具快速退回ϕ30mm孔中心

N55 Z100.0;刀具快速上升到工件表面上方100mm处

N60 M99;子程序结束并返回主程序

4)零件正面主程序。

O××××;程序名

%3400;程序号

N10 M06 T01;调用1号刀(ϕ2.5mm中心钻)

N15 G17 G90 G21 G94 G54 G40 G49 G80;程序运行初始状态设置

N20 G43 G00 Z50.0 H01 S2000 M03;建立刀具长度补偿,主轴正转,转速为2000r/min

N195 G91 G28 Z0;刀具Z向回参考点

N200 M06 T07;调用7号刀(ϕ12mm粗齿立铣刀)

N205 G90 G43 G00 Z50.0 H07 S1000 M03;建立刀具长度补偿,主轴正转,转速为1000r/min

N210 X0.0 Y0.0;刀具快速移到工件右侧中心

N215 M98 P3412;调用ϕ30mm孔口R8mm球面粗加工宏子程序

N220 G91 G28 Z0;刀具Z向回参考点

N225 M06 T08;调用8号刀(ϕ12mm细齿立铣刀)

N230 G90 G43 G00 Z50.0 H08 S1000 M03;建立刀具长度补偿,主轴正转,转速为1000r/min

N235 X0.0 Y0.0;刀具快速移到工件右侧中心

N240 M98 P3411;调用椭圆弧宏子程序精加工左上侧椭圆弧

N245 G24 X0.;Y轴镜像

N250 M98 P3411;调用椭圆弧宏子程序精加工右下侧椭圆弧

N255 G25 X0;取消Y轴镜像

N260 G91 G28 Z0;刀具Z向回参考点

N265 M06 T09;调用9号刀(R4mm球头立铣刀)

N270 G90 G43 G00 Z50.0 H09 S2000 M03;建立刀具长度补偿,主轴正转,转速为2000r/min

N275 X0.0 Y0.0;刀具快速移到工件右侧中心

N280 M98 P3413;调用ϕ30mm孔口R8mm球面精加工宏子程序

N285 G91 G28 Z0;刀具Z向回参考点

N290 G90 G00 Y100.0 M05;刀具快速退到工件后面,关闭切削液

N295 M30;主程序结束,返回程序起始段

实例2

图3-113所示零件,毛坯为139mm×99mm×24mm的45钢规则六面体,试分析其加工工艺并编写其数控铣/加工中心的加工程序。

978-7-111-33271-8-Chapter03-150.jpg

图3-113 零件示意图

1.工艺分析

(1)确定工序及工步 由图3-113可知,该零件正面中心为直线与圆弧光滑连接的凸台,零件中心为ϕ40mm的通孔,孔口为C3mm倒角过渡,凸台轮廓外侧为R5mm圆弧过渡;左侧有一长60mm、宽15.5mm由R50mm组成的凹圆柱曲面,右侧上方有一25mm×20mm×6mm的封闭凹槽、中心有一16mm×12mm×5mm的开口半圆键槽,右侧下方有一18mm×10mm×6mm的键形凸台;零件正面上还有4×M10mm螺纹不通孔、2×ϕ12mm(H7)通孔。由于该零件的各尺寸、形状和位置精度及表面粗糙度值要求都较高,因此需分粗、精加工来完成。

由于毛坯零件为139mm×99mm×10mm规则的长方体零件,因此可以选择通用夹具——机用平口台虎钳作为零件加工定位夹具。

根据零件特性和数控加工工艺要求,先用钻削ϕ2.5mm中心孔的A型不带护锥的中心钻进行定位孔加工,再用ϕ8.4mm麻花钻进行螺纹底孔钻削,用ϕ11.8mm麻花钻对ϕ12mm(H7)进行扩孔钻削,用ϕ12mm粗齿立铣刀进行各凸台、圆柱面及ϕ40mm通孔余量切除,用ϕ35~45mm的镗孔刀精加工ϕ40mm通孔,用ϕ12mm铰刀铰削2×ϕ12mm通孔,用M10(H6)mm丝锥刀攻削4×M10(H6)mm螺纹不通孔;最后用R4mm球头立铣刀精加工R50mm的凹圆柱曲面、凸台外轮廓的R5mm过渡球面和孔口C3mm锥面。

(2)编程与加工难点分析 该零件编程与加工难点在于工件左侧的R50mm凹圆柱曲面、凸台外轮廓的R5mm过渡圆弧球面和孔口C3mm的锥面,需采用宏程序(R参数)进行编程。将工件坐标零点设置在ϕ40mm圆槽中心上表面,水平方向为X轴,纵向为Y轴,垂向为Z轴。在编制左侧R50mm凹圆柱曲面程序时,最好在凹圆柱曲面顶点上方建立一个新坐标系,建立G19(YOZ平面),如图3-114a所示。可分别采用“行切法”或“阶梯法”对凹圆柱曲面进行编程加工。如图3-114a所示,先用立铣刀采用阶梯法粗铣去余量,再用球头立铣刀采用图3-114b所示行切法精铣凹圆柱曲面;或者采用图3-114c所示阶梯法精铣凹圆柱曲面。各相互关系如图3-114d所示。

978-7-111-33271-8-Chapter03-151.jpg

图3-114 凹圆柱面加工示意图

a)立铣刀阶梯法粗铣去余量 b)球头铣刀行切法精铣球面 c)阶梯法精铣凹圆柱曲面 d)球头铣刀变量关系

立铣刀(图3-114c):

#2=立铣刀半径;

978-7-111-33271-8-Chapter03-152.jpg

球头铣刀(图3-114d):

978-7-111-33271-8-Chapter03-153.jpg

由于凸台是由直线和圆弧光滑连接而成的不规则轮廓,因此在编程时可通过改变刀具半径补偿量来分层铣削R5mm过渡圆球面,孔口的C3mm锥面同样可用此方法编程。在铣削时,先由下而上采用立铣刀分层粗铣成形,再用球头铣刀精加工,因此在编程时要注意两种铣刀的刀心位置不同,如图3-115所示。

978-7-111-33271-8-Chapter03-154.jpg

图3-115 球面与锥面加工示意图

a)ϕ12mm立铣刀铣R5mm过渡圆弧面及C3mm锥面 b)R4mm球头铣刀铣R5mm过渡圆弧面及C3mm锥面

ϕ12mm立铣刀铣R5mm过渡圆弧面及C3mm锥面时的刀具半径值D

铣凸台外轮廓R5mm过渡圆弧面时:

刀具半径补偿值(D)=铣刀半径值(6)-半径递减值(5-5COSα

刀具中心离工件表面高度:H=-5+5SINα

ϕ40mm孔口C3mm锥面时:

刀具半径补偿值(D)=铣刀半径值(6)-半径递减均值(Δ)

刀具中心离工件表面高度:H=-5+半径递减值(Δ)

R4mm立铣刀铣R5mm过渡圆弧面及锥面时的刀具半径值D

铣凸台外轮廓R5mm过渡圆弧面时:

刀具半径补偿值(D)=铣刀半径值(4)-半径递减值(9-9COSα

刀具中心离工件表面高度:H=-5+9SINα

ϕ40mm孔口C3mm锥面时:

刀具半径补偿值(D)=铣刀半径值(4)-半径递减均值(Δ)

刀具中心离工件表面高度:H=-3+ΔTAN45°

在手工编程加工中,半径补偿值输入CNC存储器的方法有两种,方法一是用手动的方法将要使用的刀具半径值直接输入CNC存储器,这种方法输入的半径值是固定不变的;方法二是在程序中用指令将对应的半径值输入CNC存储器,这种输入方法在程序运行中可以将半径值输入存储器。

FANUC系统中,当刀具半径值为变量时,常用指令G10 L12 P_R_来进行刀具半径补偿,指令格式中P为刀具补偿号,R为刀具补偿值。

SIEMENS系统中,当刀具半径值为变量时,则用指令$TC_DP6[t,d]=R_将对应的刀具半径值变量输入到CNC存储器中,指令中t为刀具号,d为刀具补偿号,R为计算参数。

2.宏程序流程结构框图(略)

3.宏程序编制

(1)FANUC 0i数控系统

1)阶梯法粗铣R50mm圆柱曲面程序。

O3421;程序名

N010 M06 T04;调用4号刀(ϕ12mm粗齿直柄立铣刀)

N015 G17 G90 G94 G21 G80 G49 G40 G69 G54;参数设置,程序初始化

N020 G43 G00 Z150.0 H04 S800 M03;调用刀具长度补偿,主轴正转,转速800r/min

N025 X-80.0 Y0.0;刀具快速移动到下刀点

N030 G52 X-69.5 Y0.0 Z0.0;以坐标点(-69.5,0,0)为零点,建立局部工件坐标系

N035 #1=50.0;凹圆柱半径

N040 #2=6.0;将平底立铣刀刀具半径赋给变量#2

#3=10.0;工件表面到曲面底面的高度

N045 #5=15.5;曲面厚度

N050 #6=INT SQRT[#1*#1-#2*#2]-[#1-#3];将分层背吃刀量值取整赋给变量#6

N055 G01 Z-#6 F500 M08;刀具下降到凹圆柱曲面底部粗铣深度,切削液打开

N060 G01 X[#5+0.5]F100;直线插补,粗切凹圆柱曲面余量

N065 #2=#2+2.0;凹圆柱底部切削宽度均值递增2mm

N070 #6=INT SQRT[#1*#1-#2*#2]-[#1-#3];将分层背吃刀量值取整赋给变量#6

N075 G01 Z-#6 F500;刀具上升至下一个分层切削高度

N080 G01 Y#2 F100;Y正向直线插补,粗切凹圆柱曲面余量

N085 X-0.5;X负向直线插补,粗切凹圆柱曲面余量

N090 Y-#2;Y负向直线插补,粗切凹圆柱曲面余量

N095 X[#5+0.5];X正向直线插补,粗切凹圆柱曲面余量

N100 Y0;Y正向直线插补,粗切凹圆柱曲面余量

N105 IF[#2LE[SQRT[#1*#1-[#1-#3]*[#1-#3]]]] GOTO 65;如果刀具背吃刀量#2小于或等于凹圆柱曲面高度,则程序跳转到N65程序段

N110 G52 X0.0 Y0.0 Z0.0;取消局部工件坐标系

N115 G00 Z150.0 M09;刀具快速抬起至工件表面上150mm处

N120 G00 X-80.0 Y0.0 M05;刀具快速移动至工件左侧,关闭切削液

N125 M30;程序结束,返回程序开头

2)行切法精铣R50mm圆柱曲面程序。

O3422;程序名

N010 M06 T08;调用8号刀(R4mm球头铣刀)

N015 G17 G90 G94 G21 G80 G49 G40 G69 G54;参数设置,程序初始化

N020 G43 G00 Z150.0 H08 S1800 M03;调用刀具长度补偿,主轴正转,转速1800r/min

N025 X-80.0 Y0.0;刀具快速移动到工件左侧

N030 G52 X-69.5 Y0.0 Z0.0;以坐标点(-69.5,0,0)为零点,建立局部工件坐标系

N035#1=50.0;凹圆弧半径

#2=4.0;将球头铣刀刀具半径赋给变量#2

#3=10.0;工件表面到曲面底面的高度

#4=15.5;曲面厚度

#5=ACOS[[#1-#3]/#1];圆弧圆心与工件表面起始角度

#6=0;X向分层切削初始值

#7=0.1;X向分层递进步距

#8=[#1-#3]-[#1-#2]*COS[#5];圆弧曲面顶点的Z向坐标值

#9=[#1-#2]*SIN[#5];圆弧曲面顶点的Y向坐标值

N040 G19 G90 G01 X-1.0 Y#9 Z#8 F500;建立YOZ平面,刀具以500mm/min的工进速度移动到循环起点

N045 WHILE[#6LE#4]DO1;如果#6大于#4,则程序跳转到N090程序段

N050 G01 X#6 F200 M08;X向分层切削工进一个步距,切削液打开

N055 G02 Y-#9 Z#8 R[#1-#2]F200;直线插补至曲面右侧

N060 #6=#6+#7;步距均值递增

N065 IF[#6GT#4] GOTO 90;如果#6大于#4,则程序跳转至N090程序段

N070 G01 X#6;X向分层切削再工进一个步距

N075 G90 G03 Y#9 Z#8 R[#1-#2] F200;直线插补至曲面右侧

N080 #6=#6+#7;步距均值递增

N085 END1;循环1结束,返回循环起始程序段N045

N090 G52 X0 Y0 Z0;取消局部工件坐标系

N095 G17 G49 G00 Z150.0 M09;建立XOY平面,取消刀具长度补偿,关闭切削液

N100 X-100.0 Y0 M05;刀具快速退到工件左侧,主轴停止

N105 M30;程序结束,返回程序开头

3)粗铣凸台外轮廓R5mm圆弧过渡面和ϕ40mm孔口C3mm圆锥面。

O3423;程序名

N005 M06 T04;调用4号刀(ϕ12mm粗齿直柄立铣刀)

N010 G17 G90 G94 G21 G40 G49 G80 G69 G15 G54;系统参数初始化

N015 G52 X0 Y0 Z0;取消局部工件坐标系

N020 G50.1 X0 Y0;取消可编程镜像

N025 M03 S1500;主轴正转,转速1500r/min

N030 G00 G43 H04 Z100.0;建立刀具长度补偿,并快速移到初始平面

N035 X-44.0 Y0.0 M08;刀具快速移动至下刀点,打开切削液

N040 G01 Z-5.0 F1000;刀具以1000mm/min工进速度下降至圆弧深度

N045 #11=0;将初始角步距赋给变量#11

N050 #12=6.1;将铣刀的半径值赋给变量#12(留0.1mm精加工余量)

N055 #13=5.0;将倒圆半径值赋给变量#13

N060 #100=#13-#13*COS[#11];半径递减均值

N065 #101=#12-#100;半径值

N070 #102=-#13+#13*SIN[#11];Z向深度值

N075 G10 L12 P04 R[#101];通过可编程参数指令G10将宏参数计算得到的#101单元中的数据传入半径补偿地址单元D04内

N080 G41 G01 X-35.0 Y0 Z#102 F80 D4;建立刀具半径左补偿,直线插补到轮廓切入点

N085 G02 X[-35.0*SIN[11.537]] Y[35.0*COS[11.537]] R35.0;顺时针圆弧插补

N090 G02 X[30.0+25.0*COS[44.4153]] Y[25.0*SIN[44.4153]] R65.0;圆弧插补

N095 G02 X[30.0+25.0*SIN[19.4712]] Y[-25.0*COS[19.4712]] R25.0;圆弧插补

N100 G01 X[35.0*SIN[19.4712]] Y[-35.0*COS[19.4712]];直线插补

N105 G02 X-35.0 Y0.0 R35.0;顺时针圆弧插补

N110 #11=#11+5.0;角步距均值递增

N115 IF[#11LE90] GOTO 60;如果#11小于或等于90°,则程序跳转到N060程序段

N120 G00 Z10.0;刀具快速抬起至工件表面10mm处

N125 X0.0 Y0.0;刀具快速移动至工件XY轴零点

N130 G01 Z-3.0 F1000;刀具以1000mm/min的工进速度下降至倒角深度处

N135 #21=0;深度递增初始值赋给变量#21

N140 #22=6.0;铣刀半径值赋给变量#22

N145 #23=0.1;深度逐次递增均值赋给变量#23

N150 #24=TAN[45];三角形两直角比的正切(斜率)值赋给变量#24

N155 #25=3.0;倒角高度值赋给变量#25

N160 #103=#22-#21*#24;分层刀具半径补偿值

N170 G10 L12 P04 R[#103];通过可编程参数指令G10将宏参数计算得到的

#103单元中的数据传入半径补偿地址单元D04内

N170 G41 G01 X20.0 Y0.0 F500 D4;建立刀具半径左补偿,直线插补到分层切削圆的半径上

N175 G03 I-20.0 Y0.0;逆时针整圆插补

N180 #21=#21+#23;分层背吃刀量均值递增

N185 G01 Z[-3.0+#21];直线插补到分层背吃刀量

N190 IF[#21LE#25] GOTO 160;如果#21小于或等于#25,则程序跳转到N160程序段

N195 G40 G00 X0.0 Y0.0 M09;取消刀具半径补偿,刀具退到工件零点,关闭切削液

N200 G49 Z100.0 M05;取消刀具长度补偿,刀具退回起始高度,主轴停止旋转

N205 M30;程序结束,返回程序起始段

4)精铣凸台外轮廓R5mm圆弧过渡面和ϕ40mm孔口C3mm圆锥面。

O3424;程序名

N005 M06 T08;调用8号刀(R4mm球头铣刀)

N010 G17 G90 G94 G21 G40 G49 G80 G69 G15 G54;系统参数初始化

N015 G52 X0 Y0 Z0;取消局部工件坐标系

N020 G50.1 X0 Y0;取消可编程镜像

N025 M03 S1500;主轴正转,转速1500r/min

N030 G00 G43 H08 Z100.0;建立刀具长度补偿,并快速移到初始平面

N035 X-44.0 Y0.0 M08;刀具快速移动至下刀点,打开切削液

N040 G01 Z-5.0 F1000;刀具以1000mm/min工进速度下降至圆弧深度

N045 #11=0;将初始角步距赋给变量#11

N050 #12=4.0;将球头铣刀的半径值赋给变量#12

N055 #13=5.0;将倒圆半径值赋给变量#13

N060 #100=[#12+#13]-[#12+#13]*COS[#11];半径递减均值

N065 #101=#12-#100;半径值

N070 #102=-#13+[#12+#13]*SIN[#11];Z向深度值

N075 G10 L12 P08 R[#101];通过可编程参数指令G10将宏参数计算得到的#101单元中的数据传入半径补偿地址单元D08内

N080 G41 G01 X-35.0 Y0 Z#102 F80 D8;建立刀具半径左补偿,直线插补到轮廓切入点

N085 G02 X[-35.0*SIN[11.537]] Y[35.0*COS[11.537]] R35.0;顺时针圆弧插补

N090 G02 X[30.0+25.0*COS[44.4153]] Y[25.0*SIN[44.4153]] R65.0;圆弧插补

N095 G02 X[30.0+25.0*SIN[19.4712]] Y[-25.0*COS[19.4712]] R25.0;圆弧插补

N100 G01 X[35.0*SIN[19.4712]] Y[-35.0*COS[19.4712]];直线插补

N105 G02 X-35.0 Y0.0 R35.0;顺时针圆弧插补

N110 #11=#11+2.0;角步距均值递增

N115 IF[#11LE90] GOTO 60;如果#11小于或等于90°,则程序跳转到N060程序段

N120 G00 Z10.0;刀具快速抬起至工件表面10mm处

N125 X0.0 Y0.0;刀具快速移动至工件XY轴零点

N130 G01 Z-3.0 F1000;刀具以1000mm/min的工进速度下降至倒角深度处

N135 #21=0;深度递增初始值赋给变量#21

N140 #22=4.0;球刀半径值赋给变量#22

N145 #23=0.1;深度逐次递增均值赋给变量#23

N150 #24=TAN[45];三角形两直角比的正切(斜率)值赋给变量#24

N155 #25=3.0;倒角高度值赋给变量#25

N160 #103=#22-#21*#24;分层刀具半径补偿值

N165 G10 L12 P08 R[#103];通过可编程参数指令G10将宏参数计算得到的#103单元中的数据传入半径补偿地址单元D08内

N170 G41 G01 X20.0 Y0.0 F500 D8;建立刀具半径左补偿,直线插补到分层切削圆的半径上

N175 G03 I-20.0 Y0.0;逆时针整圆插补

N180 #21=#21+#23;分层背吃刀量均值递增

N185 G01 Z[-3.0+#21];直线插补到分层背吃刀量

N190 IF[#21LE#25] GOTO 160;如果#21小于或等于#25,则程序跳转到N160程序段

N195 G40 G00 X0.0 Y0.0 M09;取消刀具半径补偿,刀具退到工件零点,关闭切削液

N200 G49 Z100.0 M05;取消刀具长度补偿,刀具退回起始高度,主轴停止旋转

N205 M30;程序结束,返回程序起始段

(2)SINUMERIK 802D数控系统

1)阶梯法粗铣R50mm圆柱曲面程序。

FZG3421;程序名

N010 M06 T4 D4;调用4号刀(ϕ12mm粗齿直柄立铣刀)

N015 G17 G90 G94 G71 G49 G40 G54;参数设置,程序初始化

N020 G43 G00 Z150.0 S800 M03;调用刀具长度补偿,主轴正转,转速800r/min

N025 X-80.0 Y0.0;刀具快速移动到下刀点

N030 TRANS X-69.5 Y0.0 Z0.;可编程零点偏移

N035 R1=50.0;凹圆柱半径

N040 R2=6.0;将平底立铣刀刀具半径赋给变量R2

R3=10.0;工件表面到曲面底面的高度

N045 R5=15.5;曲面厚度

N050 R6=TRUNC[SQRT[R1*R1-R2*R2]-[R1-R3]];将分层背吃刀量值取整赋给变量R6

N055 G01 Z=-R6 F500 M07;刀具下降到凹圆柱曲面底部粗铣深度,打开切削液

N060 G01 X=R5+0.5 F100;直线插补,粗切凹圆柱曲面余量

N065 MARKE1:R2=R2+2.0;凹圆柱底部背吃刀量均值递增2mm

N070 R6=TRUNC[SQRT[R1*R1-R2*R2]-[R1-R3]];将分层背吃刀量值取整赋给变量R6

N075 G01 Z=-R6 F500;刀具上升至下一个分层切削高度

N080 G01 Y=R2 F100;Y正向直线插补,粗切凹圆柱曲面余量

N085 X=-0.5;X负向直线插补,粗切凹圆柱曲面余量

N090 Y=-R2;Y负向直线插补,粗切凹圆柱曲面余量

N095 X=R5+0.5;X正向直线插补,粗切凹圆柱曲面余量

N100 Y0;Y正向直线插补,粗切凹圆柱曲面余量

N105 IF R2<=SQRT[R1*R1-[R1-R3]*[R1-R3]] GOTOB MARKE1;如果刀具背吃刀量R2小于或等于凹圆柱曲面高度,则程序跳转到标记符MARKE1程序段

N110 TRANS;取消局部工件坐标系

N115 G00 Z150.0 M09;刀具快速抬起至工件表面上150mm处

N120 G00 X-80.0 Y0.0 M05;刀具快速移动至工件左侧,关闭切削液

N125 M30;程序结束,返回程序开头

2)行切法精铣曲面程序。

FZG3422;程序名

N010 M06 T8 D8;调用8号刀(R4mm球头铣刀)

N015 G17 G90 G94 G71 G49 G40 G54;参数设置,程序初始化

N020 G43 G00 Z150.0 S1800 M03;调用刀具长度补偿,主轴正转,转速1800r/min

N025 X-80.0 Y0.0;刀具快速移动到工件左侧

N030 TRANS X-69.5 Y0.0 Z0.0 M07;可编程零点偏移,打开切削液

N035 R1=50.0;凹圆弧半径

R2=4.0;将球头铣刀刀具半径赋给变量R2

R3=10.0;工件表面到曲面底面的高度

R4=15.5;曲面厚度

R5=37.0;圆弧圆心与工件表面起始角度R5=ACOS[(R1-R3)/R1]

R6=0;X向分层切削初始值

R7=0.1;X向分层递进步距

R8=[R1-R3]-[R1-R2]*COS[R5];圆弧曲面顶点的Z向坐标值

R9=[R1-R2]*SIN[R5];圆弧曲面顶点的Y向坐标值

N040 G19 G90 G01 X-1.0 Y=R9 Z=R8 F500;建立YOZ平面,刀具以500mm/min的工进速度移动到循环起点

N045 MARKE1:G01 X=R6 F200;X向分层切削工进一个步距

N050 G02 Y=-R9 Z=R8 CR=R1-R2 F200;直线插补至曲面右侧

N055 R6=R6+R7;步距均值递增

N060 IF R6>R4 GOTOF MARKE2;如果R6大于R4,则程序跳转至标记符MARKE2程序段

N065 G01 X=R6;X向分层切削再工进一个步距

N070 G90 G03 Y=R9 Z=R8 CR=R1-R2 F200;直线插补至曲面右侧

N075 R6=R6+R7;步距均值递增

N080 IF R6<=R4 GOTOB MARKE1;如果R6小于或等于R4,则程序跳转到标记符MARKE1程序段

N085 MARKE2:TRANS;取消工件坐标系偏移

N090 G17 G49 G00 Z150.0 M09;建立XOY平面,取消刀具长度补偿,关闭切削液

N095 X-100.0 Y0 M05;刀具快速退到工件左侧,主轴停止

N100 M02;程序结束,返回程序开头

3)粗铣凸台外轮廓R5mm圆弧过渡面和ϕ40mm孔口C3mm圆锥面。

FZG3423;程序名

N010 M06 T4 D4;调用4号刀(ϕ12mm粗齿直柄立铣刀)

N015 G17 G90 G94 G71 G40 G49 G54;参数设置,程序初始化

N020 M03 S1500;主轴正转,转速1500r/min

N025 G00 G43 Z100.0;建立刀具长度补偿,并快速移到初始平面

N030 X-44.0 Y0.0;刀具快速移动至下刀点

N035 G01 Z-5.0 F1000;刀具以1000mm/min工进速度下降至圆弧深度

N040 R11=0;将初始角步距赋给变量R11

N045 R12=6.1;将铣刀的半径值赋给变量R12(留0.1mm精加工余量)

N050 R13=5.0;将倒圆半径值赋给变量R13

N055 MARKE1:R100=R13-R13*COS[R11];半径递减均值

N060 R101=R12-R100;半径值

N065 R102=-R13+R13*SIN[R11];Z向深度值

N070 $TC_DP6[4,4]=R101;用指令$TC_DP6将R101代表的对应半径值输入到4号刀具的CNC存储器D4中

N075 G41 G01 X-35.0 Y0 Z=R102 F80 D4;建立刀具半径左补偿,直线插补到轮廓切入点

N080 G02 X[-35.0*SIN[11.537]] Y[35.0*COS[11.537]] CR=35.0;顺时针圆弧插补

N085 G02 X[30.0+25.0*COS[44.4153]] Y[25.0*SIN[44.4153]] CR=65.0;圆弧插补

N090 G02 X[30.0+25.0*SIN[19.4712]] Y[-25.0*COS[19.4712]] CR=25.0;圆弧插补

N095 G01 X[35.0*SIN[19.4712]] Y[-35.0*COS[19.4712]];直线插补

N100 G02 X-35.0 Y0.0 CR=35.0;顺时针圆弧插补

N105 R11=R11+5.0;角步距均值递增

N110 IF R11<=90 GOTOB MARKE1;如果R11小于或等于90°,则程序跳转到标志符MARKE1程序段

N115 G00 Z10.0;刀具快速抬起至工件表面10mm处

N120 X0.0 Y0.0;刀具快速移动至工件XY轴零点

N125 G01 Z-3.0 F1000;刀具以1000mm/min的工进速度下降至倒角深度处

N130 R21=0;深度递增初始值赋给变量R21

N135 R22=6.0;铣刀半径值赋给变量R22

N140 R23=0.1;深度逐次递增均值赋给变量R23

N145 R24=TAN[45];三角形两直角比的正切(斜率)值赋给变量R24

N150 R25=3.0;倒角高度值赋给变量R25(www.xing528.com)

N155 MARKE2:R103=R22-R21*R24;分层刀具半径补偿值

N160 $TC_DP6[4,4]=R103;用指令$TC_DP6将R103代表的对应半径值输入到4号刀具的CNC存储器D4中

N165 G41 G01 X20.0 Y0.0 F500;建立刀具半径左补偿,直线插补到分层切削圆的半径上

N170 G03 I-20.0 Y0.0;逆时针整圆插补

N175 R21=R21+R23;分层背吃刀量均值递增

N180 G01 Z[-3.0+R21];直线插补到分层背吃刀量

N185 IF R21<=R25 GOTOB MARKE2;如果R21小于或等于R25,则程序跳转到标志符MARKE2程序段

N190 G40 G00 X0.0 Y0.0 M09;取消刀具半径补偿,刀具退到工件零点,关闭切削液

N195 G49 Z100.0 M05;取消刀具长度补偿,刀具退回起始高度,主轴停止旋转

N200 M02;程序结束,返回程序起始段

4)精铣凸台外轮廓R5mm圆弧过渡面和ϕ40mm孔口C3mm圆锥面。

FZG3424;程序名

N010 M06 T8 D8;调用8号刀(R4mm球头铣刀)

N015 G17 G90 G94 G71 G40 G49 G54;参数设置,程序初始化

N020 M03 S2500;主轴正转,转速2500r/min

N025 G00 G43 Z100.0;建立刀具长度补偿,并快速移到初始平面

N030 X-44.0 Y0.0;刀具快速移动至下刀点

N035 G01 Z-5.0 F1000;刀具以1000mm/min工进速度下降至圆弧深度

N040 R11=0;将初始角步距赋给变量R11

N045 R12=4.0;将球头铣刀的半径值赋给变量R12

N050 R13=5.0;将倒圆半径值赋给变量R13

N055 MARKE1:R100=[R12+R13]-[R12+R13]*COS[R11];半径递减均值

N060 R101=R12-R100;半径值

N065 R102=-R13+[R12+R13]*SIN[R11];Z向深度值

N070 $TC_DP6[8,8]=R101;用指令$TC_DP6将R103代表的对应半径值输入到8号刀具的CNC存储器D8中

N075 G41 G01 X-35.0 Y0 Z=R102 F80;建立刀具半径左补偿,直线插补到轮廓切入点

N080 G02 X[-35.0*SIN[11.537]] Y[35.0*COS[11.537]] CR=35.0;顺时针圆弧插补

N085 G02 X[30.0+25.0*COS[44.4153]] Y[25.0*SIN[44.4153]] CR=R65.0;圆弧插补

N090 G02 X[30.0+25.0*SIN[19.4712]] Y[-25.0*COS[19.4712]] CR=R25.0;圆弧插补

N095 G01 X[35.0*SIN[19.4712]] Y[-35.0*COS[19.4712]];直线插补

N100 G02 X-35.0 Y0.0 CR=35.0;顺时针圆弧插补

N105 R11=R11+2.0;角步距均值递增

N110 IF R11<=90 GOTOB MARKE1;如果R11小于或等于90,则程序跳转到标志符MARKE1程序段

N115 G00 Z10.0;刀具快速抬起至工件表面10mm处

N120 X0.0 Y0.0;刀具快速移动至工件XY轴零点

N125 G01 Z-3.0 F1000;刀具以1000mm/min的工进速度下降至倒角深度处

N130 R21=0;深度递增初始值赋给变量R21

N135 R22=4.0;球刀半径值赋给变量R22

N140 R23=0.1;深度逐次递增均值赋给变量R23

N145 R24=TAN[60];三角形两直角比的正切(斜率)值赋给变量R24

N150 R25=3.0;倒角高度值赋给变量R25

N155 MARKE2:R103=R22+R21*R24;分层刀具半径补偿值

N160 $TC_DP6[8,8]=R103;用指令$TC_DP6将R103代表的对应半径值输入到8号刀具的CNC存储器D8中

N165 G41 G01 X20.0 Y0.0 F500;建立刀具半径左补偿,直线插补到分层切削圆的半径上

N170 G03 I-20.0 Y0.0;逆时针整圆插补

N175 R21=R21+R23;分层背吃刀量均值递增

N180 G01 Z[-3.0+R21];直线插补到分层背吃刀量

N185 IF R21<=R25 GOTOB MARKE2;如果R21小于或等于R25,则程序跳转到标志符MARKE2程序段

N190 G40 G00 X0.0 Y0.0 M09;取消刀具半径补偿,刀具退到工件零点,关闭切削液

N195 G49 Z100.0 M05;取消刀具长度补偿,刀具退回起始高度,主轴停止旋转

N200 M02;程序结束,返回程序起始段

(3)HNC—21/22M华中世纪星数控系统

1)阶梯法粗铣R50mm圆柱曲面程序。

O3421;程序名

%3421;程序号

N010 M06 T04;调用4号刀(ϕ12mm粗齿直柄立铣刀)

N015 G17 G90 G94 G21 G80 G49 G40 G69 G54;参数设置,程序初始化

N020 G43 G00 Z150.0 H04 S800 M03;调用刀具长度补偿,主轴正转,转速800r/min

N025 X-80.0 Y0.0;刀具快速移动到下刀点

N030 #1=50.0;凹圆柱半径

N035 #2=6.0;将平底立铣刀刀具半径赋给变量#2

#3=10.0;工件表面到曲面底面的高度

#4=-69.5;凹圆柱曲面顶点X坐标值

N040 #5=15.5;曲面厚度

N045 #6=INT[SQRT[#1*#1-#2*#2]-[#1-#3]];将分层背吃刀量值取整赋给变量#6

N050 G01 Z[-#6]F500;刀具下降到凹圆柱曲面底部粗铣深度

N055 G01 X[#4+#5+0.5]F100;直线插补,粗切凹圆柱曲面余量

N060 WHILE#2LE30.0;如果刀具背吃刀量#2大于凹圆柱曲面深度,则程序跳转到N110程序段

N065 #2=#2+2.0;凹圆柱底部切削宽度均值递增2mm

N070 #6=INT[SQRT[#1*#1-#2*#2]-[#1-#3]];将分层背吃刀量值取整赋给变量#6

N075 G01 Z[-#6] F500;刀具上升至下一个分层切削高度

N080 G01 Y[#2] F100;Y正向直线插补,粗切凹圆柱曲面余量

N085 X[#4-0.5];X负向直线插补,粗切凹圆柱曲面余量

N090 Y[-#2];Y负向直线插补,粗切凹圆柱曲面余量

N095 X[#4+#5+0.5];X正向直线插补,粗切凹圆柱曲面余量

N100 Y0;Y正向直线插补,粗切凹圆柱曲面余量

N105 ENDW;循环结束,执行下条语句

N110 G00 Z150.0 M09;刀具快速抬起至工件表面上150mm处

N115 X-80.0 Y0.0 M05;刀具快速移动至工件左侧,关闭切削液

N120 M30;程序结束,返回程序开头

2)行切法精铣曲面程序。

O3422;凹圆柱曲面精铣程序名

%3422;凹圆柱曲面精铣程序号

N010 M06 T08;调用8号刀(R4mm球头铣刀)

N015 G17 G90 G94 G21 G80 G49 G40 G69 G54;参数设置,程序初始化

N020 G43 G00 Z150.0 H08 S1800 M03;调用刀具长度补偿,主轴正转,转速1800r/min

N025 X-80.0 Y0.0;刀具快速移动到工件左侧

N030 #0=-69.5;凹圆柱曲面的X坐标值

#1=50.0;凹圆弧半径

#2=4.0;将球头铣刀刀具半径赋给变量#2

#3=10.0;工件表面到曲面底面的高度

#4=15.5;曲面厚度

#5=36.87;圆弧圆心与工件表面起始角度(#5=ACOS[[#1-#3]/#1])

#6=0;X向分层切削初始值

#7=0.1;X向分层递进步距值

#8=[#1-#3]-[#1-#2]*COS[#5*PI/180];圆弧曲面顶点的Z向坐标值

#9=[#1-#2]*SIN[#5*PI/180];圆弧曲面顶点的Y向坐标值

N035 G19 G90 G01 X-70.5 Y#9 Z#8 F500;建立YOZ平面,刀具以500mm/min的工进速度移动到循环起点

N040 WHILE#6LE#4;如果#6大于#4,则程序跳转到N090程序段

N045 G01 X[#6+#0] F200;X向分层切削工进一个步距

N050 G02 Y[-#9] Z[#8] R[#1-#2] F200;直线插补至曲面右侧

N055 #6=#6+#7;步距均值递增

N060 IF#6GT#4;如果#6大于#4,则程序跳转至N080程序段

N065 G01 X[#6+#0];X向分层切削再工进一个步距

N070 G90 G03 Y[#9] Z[#8] R[#1-#2] F200;直线插补至曲面右侧

N075 #6=#6+#7;步距均值递增

N080 ENDIF;返回循环起始程序段N040

N085 ENDW;循环结束,执行下条程序段

N090 G17 G49 G00 Z150.0 M09;建立XOY平面,取消刀具长度补偿,关闭切削液

N095 X-100.0 Y0 M05;刀具快速退到工件左侧,主轴停止

N100 M30;程序结束,返回程序开头

3)粗铣凸台外轮廓R5mm圆弧过渡面和ϕ40mm孔口C3mm圆锥面。

O3423;程序名

N010 M06 T04;调用4号刀(ϕ12mm粗齿直柄立铣刀)

N015 G17 G90 G94 G21 G40 G49 G80 G69 G54;系统参数初始化

N020 M03 S1500;主轴正转,转速1500r/min

N025 G00 G43 H04 Z100.0;建立刀具长度补偿,并快速移到初始平面

N030 X-44.0 Y0.0;刀具快速移动至下刀点

N035 G01 Z-5.0 F1000;刀具以1000mm/min工进速度下降至圆弧深度

N040 #11=0;将初始角步距赋给变量#11

N045 #12=6.1;将铣刀的半径值赋给变量#12(留0.1mm精加工余量)

N050 #13=5.0;将倒圆半径值赋给变量#13

N055 #100=#13-#13*COS[#11*PI/180];半径递减均值

N060 WHILE#11LE90;如果#11大于90°,则程序跳转到N115程序段

N065 #101=#12-#100;半径值

N070 #102=-#13+#13*SIN[#11*PI/180];Z向深度值

N075 G41 G01 X-35.0 Y0 Z[#102]F80 D[#101];建立刀具半径左补偿,直线插补到轮廓切入点

N080 G02 X[-35.0*SIN[11.537*PI/180]] Y[35.0*COS[11.537*PI/180]]R35.0;顺时针圆弧插补

N085 G02 X[30.0+25.0*COS[44.4153*PI/180]] Y[25.0*SIN[44.4153*PI/180]]R65.0;圆弧插补

N090 G02 X[30.0+25.0*SIN[19.4712*PI/180]] Y[-25.0*COS[19.4712*PI/180]]R25.0;圆弧插补

N095 G01 X[35.0*SIN[19.4712*PI/180]] Y[-35.0*COS[19.4712*PI/180]];直线插补

N100 G02 X-35.0 Y0.0 R35.0;顺时针圆弧插补

N105 #11=#11+5.0;角步距均值递增

N110 ENDW;循环结束,执行下一语句

N115 G00 Z10.0;刀具快速抬起至工件表面10mm处

N120 X0.0 Y0.0;刀具快速移动至工件XY轴零点

N125 G01 Z-3.0 F1000;刀具以1000mm/min的工进速度下降至倒角深度处

N130 #21=0;深度递增初始值赋给变量#21

N135 #22=6.0;铣刀半径值赋给变量#22

N140 #23=0.1;深度逐次递增均值赋给变量#23

N145 #24=1;三角形两直角比的正切(斜率)值赋给变量#24

N150 #25=3.0;倒角高度值赋给变量#25

N155 WHILE#21LE#25;如果#21大于#25,则程序跳转到N190程序段

N160 #103=#22-#21*#24;分层刀具半径补偿值

N165 G41 G01 X20.0 Y0.0 F500 D[#103];建立刀具半径左补偿,直线插补到分层切削圆的半径上

N170 G03 I-20.0 Y0.0;逆时针整圆插补

N175 #21=#21+#23;分层背吃刀量均值递增

N180 G01 Z[-3.0+#21];直线插补到分层背吃刀量

N185 ENDW;循环结束,执行下一语句

N190 G40 G00 X0.0 Y0.0 M09;取消刀具半径补偿,刀具退到工件零点,关闭切削液

N195 G49 Z100.0 M05;取消刀具长度补偿,刀具退回起始高度,主轴停止旋转

N200 M30;程序结束,返回程序起始段

4)精铣凸台外轮廓R5mm圆弧过渡面。

O3424;程序名

%3424;程序号

N010 M06 T08;调用8号刀(R4mm球头铣刀)

N015 G17 G90 G94 G21 G40 G49 G80 G69 G25 G54;系统参数初始化

N020 M03 S2500;主轴正转,转速2500r/min

N025 G00 G43 H08 Z100.0;建立刀具长度补偿,并快速移到初始平面

N030 X-44.0 Y0.0;刀具快速移动至下刀点

N035 G01 Z-5.0 F1000;刀具以1000mm/min工进速度下降至圆弧深度

N040 #11=0;将初始角步距赋给变量#11

N045 #12=4.0;将球头铣刀的半径值赋给变量#12

N050 #13=5.0;将倒圆半径值赋给变量#13

N055 WHILE#11LE90;如果#11大于90°,则程序跳转到N115程序段

N060 #100=[#12+#13]-[#12+#13]*COS[#11*PI/180];半径递减均值

N065 #101=#12-#100;半径值

N070 #102=-#13+[#12+#13]*SIN[#11*PI/180];Z向深度值

N075 G41 G01 X-35.0 Y0 Z[#102]F80 D[#101];建立刀具半径左补偿,直线插补到轮廓切入点

N080 G02 X[-35.0*SIN[11.537*PI/180]] Y[35.0*COS[11.537*PI/180]] R35.0;顺时针圆弧插补

N085 G02 X[30.0+25.0*COS[44.4153*PI/180]] Y[25.0*SIN[44.4153*PI/180]] R65.0;圆弧插补

N090 G02 X[30.0+25.0*SIN[19.4712*PI/180]] Y[-25.0*COS[19.4712*PI/180]] R25.0;圆弧插补

N095 G01 X[35.0*SIN[19.4712*PI/180]] Y[-35.0*COS[19.4712*PI/180]];直线插补

N100 G02 X-35.0 Y0.0 R35.0;顺时针圆弧插补

N105 #11=#11+2;角步距均值递增,返回循环起始程序段N055

N110 ENDW;循环1结束,执行下条程序段

N115 G00 Z10.0;刀具快速抬起至工件表面10mm处

N120 X0.0 Y0.0;刀具快速移动至工件XY轴零点

N125 G01 Z-3.0 F1000;刀具以1000mm/min的工进速度下降至倒角深度处

N130 #21=0;深度递增初始值赋给变量#21

N135 #22=4.0;球刀半径值赋给变量#22

N140 #23=0.1;深度逐次递增均值赋给变量#23

N145 #24=1.0;三角形两直角比的正切(斜率)值赋给变量#24

N150 #25=3.0;倒角高度值赋给变量#25

N155 WHILE#21LE#25;如果#21大于#25,则程序跳转到N190程序段

N160 #103=#22+#21*#24;分层刀具半径补偿值

N165 G41 G01 X20.0 Y0.0 F500 D[#103];建立刀具半径左补偿,直线插补到分层切削圆的半径上

N170 G03 I-20.0 Y0.0;逆时针整圆插补

N175 #21=#21+#23;分层背吃刀量均值递增

N180 G01 Z[-3.0+#21];直线插补到分层背吃刀量,返回循环起始程序段N155

N185 ENDW;循环2结束,执行下条程序段

N190 G40 G00 X0.0 Y0.0 M09;取消刀具半径补偿,刀具退到工件零点,关闭切削液

N195 G49 Z100.0 M05;取消刀具长度补偿,刀具退回起始高度,主轴停止旋转

N200 M30;程序结束,返回程序起始段

实例3

图3-116所示零件,毛坯为120mm×100mm×28mm的45钢规则六面体,试分析其加工工艺并编写其数控铣/加工中心的加工程序。

978-7-111-33271-8-Chapter03-155.jpg

图3-116 零件示意图

a)零件图 b)效果图

1.工艺分析

(1)确定工序及工步 该零件正面为正六边形凸台,上方为一ϕ88mm的圆台,圆台上有一8mm×8mm的阿基米德螺旋线凹槽,反面两侧各有一个50mm×30mm×10mm、锥度为10°的开口锥槽,左侧下方有一个10mm×4mm(宽×深)十字凹槽,4×ϕ8.6mm、2×ϕ10mm、ϕ20+0.0330mm的通孔,4×ϕ16mm×8.5mm沉孔、ϕ30mm×10mm沉孔。由于该零件各尺寸、形状和位置精度及表面粗糙度值要求都较高,因此,需分粗、精加工完成。

由于零件毛坯为规则的长方体零件,故选择通用夹具——平口钳作为零件加工的定位夹具。

考虑到零件正反面都需要加工,因此根据零件特性和数控加工工艺要求,先加工反面,先用钻削ϕ2.5mm中心孔的A型不带护锥的中心钻钻各通孔、定位孔及十字槽下刀孔,再用ϕ8.6mm麻花钻钻4×ϕ8.6mm通孔、用ϕ9.8mm麻花钻钻对2×10H7mm预钻孔、ϕ10mm铰刀铰2×10H7mm通孔;换ϕ8mm立铣刀,粗铣两侧40mm×25mm×10mm的开口直槽,粗、精工件表面中心左下侧十字凹槽;换R3mm球头铣刀,半精铣和精铣两侧开口槽。

正面加工换装ϕ16mm立铣刀,粗、精铣正六边形凸台和ϕ88mm圆台,粗铣ϕ20+0.0330 mm的通孔,单边留铰削余量0.1mm,粗、精铣ϕ30+0.0330mm的沉孔;换ϕ8mm键槽铣刀,铣削阿基米德螺旋线凹槽;换ϕ20H7铰刀,铰削ϕ20+0.0330mm的通孔。

(2)编程与加工难点分析 该零件编程与加工难点在于反面两侧50mm×30mm×10mm、锥度为10°开口锥槽的编程与加工,正面8mm×8mm阿基米德螺旋线凹槽的编程与加工。开口锥槽和阿基米德螺旋线凹槽需采用宏程序(R参数)进行编程,开口锥槽首先需得出锥槽底部的开口尺寸,其基点坐标和开口槽尺寸如图3-117、图3-118所示。由于开口锥槽顶部和底部余量较多,因此在铣削时,先采用立铣刀分层粗铣成形,再用球头铣刀精加工。

978-7-111-33271-8-Chapter03-156.jpg

图3-117 基点坐标

978-7-111-33271-8-Chapter03-157.jpg

图3-118 尺寸图

阿基米德螺旋线凹槽的宏程序(R参数)编程,根据阿基米德螺旋线公式:

Ri=RA+(αi-α)T/360

Xi=(RA+(αi-α)T/360)COSαi

Yi=(RA+(αi-α)T/360)SINαi

采用圆弧逼近法进行加工,用螺旋角作为自变量,以2°作为一个角步距,采用不对称顺铣削方式铣削阿基米德螺旋槽。

由图3-116可知,阿基米德螺旋线螺距T为18mm,螺旋线的起始角度为246°,最终转动角度为645°,即246°≤αi≤645°。当螺旋线由起始点转过24°,转到Y轴上(270°-246°=24°),此时,螺旋线在i点的半径为19mm,则由Ri=RA+(αi-α)T/360算出螺旋线在起始点的半径RA

RA=Ri-αT/360=19-24×18/360=17.8

再由上述阿基米德螺旋线坐标公式,求出阿基米德螺旋线的起始点坐标值(XA、YA):

XA=17.8×SIN246°≈-7.234

YA=17.8×COS246°≈-16.2611

阿基米德螺旋线上任意一点(Xi,Yi)的坐标为

Xi=(17.8+(αi-246)18/360)COSαi

Yi=(17.8+(αi-246)18/360)SINαi

2.宏程序流程结构框图(略)

3.宏程序编制

(1)FANUC 0i数控系统

1)50mm×30mm×10mm开口锥槽主程序。

O××××;开口锥槽程序名

N010 M06 T03;调用3号刀(ϕ8mm立铣刀)

N015 G17 G90 G21 G94 G54 G40 G49 G80;程序运行初始状态设置

N020 G43 G00 Z50.0 H03 S1000 M03;建立刀具长度补偿,主轴正转,转速为1000r/min

N025 X70.0 Y0;刀具快速移到工件右侧中心

N030 G65 P3431;调用开口锥槽粗加工子程序铣削右侧开口锥槽

N035 G51.1 X0.0;Y轴镜像

N040 G65 P3431;调用开口锥槽粗加工子程序铣削左侧开口锥槽

N045 G50.1 X0;取消Y轴镜像

N050 G91 G28 Z0.0;刀具Z向回参考点

N055 M06 T04;调用4号刀(R3mm球头铣刀)

N060 G43 G00 Z50.0 H04 S1800 M03;建立刀具长度补偿,主轴正转,转速为1800r/min

N065 X70.0 Y0.0;刀具快速移到工件右侧中心

N070 G65 P3432;调用开口锥槽精加工子程序铣削右侧开口锥槽

N075 G51.1 X0.0;Y轴镜像

N080 G65 P3432;调用开口锥槽精加工子程序铣削左侧开口锥槽

N085 G50.1 X0.0;取消Y轴镜像

N090 G91 G28 Z0.0;刀具Z向回参考点

N095 G90 G00 Y100.0 M05;刀具快速退到工件后面,关闭切削液

N100 M30;主程序结束,返回程序起始段

①开口锥槽粗加工子程序(ϕ8mm立铣刀铣削)。

O3431;宏子程序名

N010 #1=0.7521;深度逐次递减均值#10=1;深度下降次数初始值

N015 #11=#1*#10;下降深度的绝对值

N020 G01 Z-#11;刀具逐次下降一个深度均值

N025 #12=#11*TAN(10);开口槽单边逐次递减均值

N030 G41 G00 X70.0 Y[25.0-#12]D03;建立左刀补,刀具快速走到开口槽上侧壁延长线处

N035 G01 X40.0 M08;直线插补铣削开口槽上侧壁

N040 G03 X[30.0+#12]Y15.0 R[10.0-#12];拐角倒圆

N045 G01 Y-15.0;直线插补铣削开口槽左侧壁

N050 G03 X40.0 Y[-25.0+#12]R[10.0-#12];拐角倒圆

N055 G01 X70.0;直线插补铣削开口槽下侧壁

N060 G40 G00 Y0.0;取消左刀补,刀具快速退到起始点

N065 #10=#10+1;铣削次数逐次增加一次

N070 IF [#10LT10.0] GOTO 15;如果铣削次数不满10次,则程序跳转到N015程序段

N075 #3=15.0;R3mm槽底球面赋角度初始值

N080 #13=3.0*COS[#3];R3mm槽底球面当前切点离刀心的横向距离#14=3.0-3.0*SIN[#3];R3mm槽底球面当前切点离槽底的垂向距离

N085 G01 Z-[7.0+#14] F1000;深度分层逐次下降一个均值

N090 G41 G00 X70.0 Y[25.0-#13] D03;建立左刀补,刀具快速走到开口槽上侧壁R3mm球面延长线处

N095 G01 X40.0;直线插补铣削开口槽上侧与底部的R3mm球面壁

N100 G03 X[30.0-#13] Y15.0 R[10.0-[4.281-#13]];拐角倒圆

N105 G01 Y-15.0;直线插补铣削开口槽左侧与底部的R3mm球面壁

N115 G03 X40.0 Y[25.0-#13] R[10.0-[4.281-#13]];拐角倒圆

N120 G01 X70.0;直线插补铣削开口槽下侧与底部的R3mm球壁面

N125 G40 G00 Y0.0;取消左刀补,刀具快速退到起始点

N130 #3=#3+5.0;角度变量均值递增

N135 IF [#3LE90] GOTO 80;如果角度小于或等于90°,则程序跳转到N080程序段

N140 G00 Z50.0 M09;刀具快速上升,切削液关闭

N145 M99;子程序结束并返回主程序

②开口锥槽精加工子程序(R3mm球头刀铣削)。

O3432;宏子程序名

N10#10=3.0*SIN[10];球头铣刀球心起刀点高度

#11=3.0*COS[10];球头铣刀球心起刀点与槽壁距离

#12=0.1;深度下降初始值

N15#13=#12*TAN[10];开口槽各切削层平面上X、Y方向逐次递减值

N20#14=#10-#12;下降深度的绝对值

N25 G01 Z#14;刀具逐次下降一个深度均值

N30 G00 X70.0 Y[25.0-#11-#13];刀具快速接近开口槽上侧

N35 G01 X40.0 F1200 M08;直线插补开口槽上侧面

N40 G03 X[30.0+#11+#13] Y15.0 R[10.0-#11-#13];拐角倒圆

N45 G01 Y-15.0;直线插补开口槽左侧面

N50 G03 X40.0 Y[-25.0+#11+#13] R[10.0-#11-#13];拐角倒圆

N55 G01 X70.0;直线插补开口槽下侧面

N60 G00 Y0.0;刀具快速回退到起刀点

N65 #12=#12+0.1;深度逐次递加均值

N70 IF [#12LT7.521] GOTO 15;如果球刀心还没到槽底,则程序跳转到N15程序段

N75 G00 Z50.0 M09;刀具快速上抬

N80 M99;子程序结束并返回主程序

2)阿基米德螺旋线凹槽主程序。

O××××;阿基米德螺旋线凹槽程序名

N10 M06 T03;调用3号刀(ϕ8mm立铣刀)

N15 G17 G90 G21 G94 G54 G40 G49 G80;程序运行初始状态设置

N20 G43 G00 Z50.0 H03 S1000 M03;建立刀具长度补偿,主轴正转,转速为1000r/min

N25 #1=246.0;螺旋线起始转动角度

#2=645.0;螺旋线终点角度

#3=2.0;角步距

N30 G00 X-7.234 Y-16.262;刀具移动到螺旋线起始点上方

N35 Z5.0;刀具快速下降到工件上方5mm处

N40 G01 Z-10.0 F50.0;刀具以工进速度深度切削

N45 WHILE [#1LT#2] DO1;如果#1大于或等于#2,则程序跳转到N70程序段

N50 #1=#1+#3;角步距均值递增

N55 #10=17.8+#1*18/360;螺旋线在当前点的半径RA+(αi-α)T/360

#11=#10*COS[#1];螺旋线在当前点的X坐标(RA+(αi-α)T/360)COSαi

#12=#10*SIN[#1];螺旋线在当前点的Y坐标(RA+(αi-α)T/360)SINαi

N60 G03 X#11 Y#12 R#10 F120;圆弧插补法逼近螺旋线

N65 END1;循环结束,执行下条语句

N70 G00 Z100.0 M09;刀具退到工件上表面100mm处,切削液关闭

N75 G49;取消刀具长度补偿

N80 X0 Y100.0 M05;刀具退回工件坐标零点,主轴停止

N85 M30;程序结束并返回程序开头

(2)SINUMERIK 802D数控系统

1)50mm×30mm×10mm开口锥槽主程序。

FZG×××.MPF;开口锥槽程序名

N010 M06 T3 D1;调用3号刀(ϕ8mm立铣刀)

N015 G17 G90 G71 G94 G54 G40 G49;程序运行初始状态设置

N020 G43 G00 Z50.0 S1000 M03;建立刀具长度补偿,主轴正转,转速为1000r/min

N025 X70.0 Y0.0;刀具快速移到工件右侧中心

N030 L3431;调用开口锥槽粗加工子程序铣削右侧开口锥槽

N035 MIRROR X0.0;Y轴镜像

N040 L3431;调用开口锥槽粗加工子程序铣削左侧开口锥槽

N045 MIRROR;取消Y轴镜像

N050 G91 G74 Z1=0;刀具Z向回参考点

N055 M06 T4 D1;调用4号刀(R3mm球头铣刀)

N060 G90 G43 G00 Z50.0 S1800 M03;建立刀具长度补偿,主轴正转,转速为1800r/min

N065 X70.0 Y0.0;刀具快速移到工件右侧中心

N070 L3432;调用开口锥槽精加工子程序铣削右侧开口锥槽

N075 MIRROR X0.0;Y轴镜像

N080 L3432;调用开口锥槽精加工子程序铣削左侧开口锥槽

N085 MIRROR;取消Y轴镜像

N090 G91 G74 Z1=0;刀具Z向回参考点

N095 G90 G00 Y100.0 M05;刀具快速退到工件后面,关闭切削液

N100 M02;主程序结束,返回程序起始段

①开口锥槽粗加工子程序(ϕ8mm立铣刀铣削)。

L3431.SPF;宏子程序名

N010 R1=0.7521;深度逐次递减均值R10=1;深度下降次数初始值

N015 MARKE1:R11=R1*R10;下降深度的绝对值

N020 G01 Z-R11;刀具逐次下降一个深度均值

N025 R12=R11*TAN[10];开口槽单边逐次递减均值

N030 G41 G00 X70.0 Y=25-R12;建立左刀补,刀具快速走到开口槽上侧壁延长线处

N035 G01 X40.0 M07;直线插补铣削开口槽上侧壁,打开切削液

N040 G03 X=30.0+R12 Y15.0 CR=10.0-R12;拐角逆圆弧插补

N045 G01 Y-15.0;直线插补铣削开口槽左侧壁

N050 G03 X40.0 Y=-25.0+R12 CR=10.0-R12;拐角逆圆弧插补

N055 G01 X70.0;直线插补铣削开口槽下侧壁

N060 G40 G00 Y0.0;取消左刀补,刀具快速退到起始点

N065 R10=R10+1.0;铣削次数逐次增加一次

N070 IF R10<10.0 GOTOB MARKE1;如果铣削次数不满10次,则程序跳转到标志符MARKE1程序段

N075 R3=15.0;R3mm槽底球面赋角度初始值

N080 MARKE2:R13=3*COS[R3];R3mm槽底球面当前切点离刀心的横向距离

R14=3-3*SIN[R3];R3mm槽底球面当前切点离槽底的垂向距离

N085 G01 Z=-[7.0+R14]F1000;深度分层逐次下降一个均值

N090 G41 G00 X70.0 Y=25-R13;建立左刀补,刀具快速走到开口槽上侧壁R3mm球面延长线处

N095 G01 X40.0;直线插补铣削开口槽上侧与底部的R3mm球面壁

N100 G03 X=30.0-R13 Y15.0 CR=10-[4.281-R13];拐角逆圆弧插补

N105 G01 Y-15.0;直线插补铣削开口槽左侧与底部的R3mm球面壁

N115 G03 X40.0 Y=25.0-R13 CR=10-[4.281-R13];拐角逆圆弧插补

N120 G01 X70.0;直线插补铣削开口槽下侧与底部的R3mm球壁面

N125 G40 G00 Y0.0;取消左刀补,刀具快速退到起始点

N130 R3=R3+5.0;角度变量均值递增

N135 IF R3<=90 GOTOB MARKE2;如果角度小于或等于90°,则程序跳转到N080程序段

N140 G00 Z50.0 M09;刀具快速上升,切削液关闭

N145 RET;子程序结束并返回主程序

②开口锥槽精加工子程序(R3mm球头刀铣削)。

L3432.SPF;宏子程序名

N10 R10=3*SIN[10];球头铣刀球心起刀点高度

R11=3*COS[10];球头铣刀球心起刀点与槽壁距离

R12=0.1;深度下降初始值

N15 MARKE1:R13=R12*TAN[10];开口槽各切削层平面上X、Y方向上逐次递减值

N20 R14=R10-R12;下降深度的绝对值

N25 G01 Z=R14;刀具逐次下降一个深度均值

N30 G00 X70.0 Y=25-R11-R13;刀具快速接近开口槽上侧

N35 G01 X40.0 F1200 M07;直线插补开口槽上侧面,打开切削液

N40 G03 X=30.0+R11+R13 Y15.0 CR=10-R11-R13;拐角逆圆弧插补

N45 G01 Y-15.0;直线插补开口槽左侧面

N50 G03 X40.0 Y=-25+R11+R13 CR=10-R11-R13;拐角逆圆弧插补

N55 G01 X70.0;直线插补开口槽下侧面

N60 G00 Y0.0;刀具快速回退到起刀点

N65 R12=R12+0.1;深度逐次递加均值

N70 IF R12<7.521 GOTOB MARKE1;如果球刀心还没到槽底,则程序跳转到标志符MARKE1程序段

N75 G00 Z50.0 M09;刀具快速上抬

N80 RET;子程序结束并返回主程序

2)阿基米德螺旋线凹槽主程序。

FZG×××.MPF;阿基米德螺旋线凹槽程序名

N10 M06 T3 D1;调用3号刀(ϕ8mm立铣刀)

N15 G17 G90 G71 G94 G54 G40 G49;程序运行初始状态设置

N20 G43 G00 Z50.0 S1000 M03;建立刀具长度补偿,主轴正转,转速为1000r/min

N25 R1=246.0;螺旋线起始转动角度

R2=645.0;螺旋线终点角度

R3=2.0;角步距

N30 G00 X-7.234 Y-16.262;刀具移动到螺旋线起始点上方

N35 Z5.0;刀具快速下降到工件上方5mm处

N40 G01 Z-10.0 F50.0;刀具以工进速度深度切削

N45 MARKE2:R1=R1+R3;角步距均值递增

N50 R10=17.8+R1*18/360;螺旋线在当前点的半径RA+(αi-α)T/360

R11=R10*COS[R1];螺旋线在当前点的X坐标(RA+(αi-α)T/360)COSαi

R12=R10*SIN[R1];螺旋线在当前点的Y坐标(RA+(αi-α)T/360)SINαi

N55 G03 X=R11 Y=R12 CR=R10 F120;圆弧插补法逼近螺旋线

N60 IF R1<R2 GOTOF MARKE2;如果R1小于R2,则程序跳转到标志符MARKE2程序段

N65 G00 Z100.0 M09;刀具退到工件上表面100mm处,切削液关闭

N70 G49;取消刀具长度补偿

N75 X0 Y100.0 M05;刀具退回工件坐标零点,主轴停止

N80 M02;程序结束并返回程序开头

(3)HNC—21/22M华中世纪星数控系统

1)50mm×30mm×10mm开口锥槽主程序。

O××××;开口锥槽程序名

%3430;程序号

N10 M06 T03;调用3号刀(ϕ8mm立铣刀)

N15 G17 G90 G21 G94 G54 G40 G49 G80;程序运行初始状态设置

N20 G43 G00 Z50.0 H03 S1000 M03;建立刀具长度补偿,主轴正转,转速为1000r/min

N25 X70.0 Y0.0;刀具快速移到工件右侧中心

N30 M98 P3431;调用开口锥槽粗加工子程序铣削右侧开口锥槽

N35 G24 X0.0;Y轴镜像

N40 M98 P3431;调用开口锥槽粗加工子程序铣削左侧开口锥槽

N45 G25 X0.0;取消Y轴镜像

N50 G91 G28 Z0.0;刀具Z向回参考点

N55 M06 T04;调用4号刀(R3mm球头铣刀)

N60 G90 G43 G00 Z50.0 H04 S1800 M03;建立刀具长度补偿,主轴正转,转速为1800r/min

N65 X70.0 Y0.0;刀具快速移到工件右侧中心

N70 M98 P3432;调用开口锥槽精加工子程序铣削右侧开口锥槽

N75 G24 X0.0;Y轴镜像

N80 M98 P3432;调用开口锥槽精加工子程序铣削左侧开口锥槽

N85 G25 X0.0;取消Y轴镜像

N90 G91 G28 Z0.0;刀具Z向回参考点

N95 G90 G00 Y100.0 M05;刀具快速退到工件后面,关闭切削液

N100 M30;主程序结束,返回程序起始段

①开口锥槽粗加工子程序(ϕ8mm立铣刀铣削)。

%3431;宏子程序名

N010 #1=0.7521;深度逐次递减均值

#10=1.0;深度下降次数初始值

N015 WHILE#10LT10.0;如果#10(深度下降次数)大于或等于10,则程序跳转到N080程序段

N020 #11=#1*#10;下降深度的绝对值

N025 G01 Z-#11;刀具逐次下降一个深度均值

N030 #12=#11*TAN[10*PI/180];开口槽单边逐次递减均值

N035 G41 G00 X70.0 Y[25-#12] D03;建立左刀补,刀具快速走到开口槽上侧壁延长线处

N040 G01 X40.0 M07;直线插补铣削开口槽上侧壁

N045 G03 X[30.0+#12] Y15.0 R[10.0-#12];拐角逆圆弧插补

N050 G01 Y-15.0;直线插补铣削开口槽左侧壁

N055 G03 X40.0 Y[-25.0+#12] R[10.0-#12];拐角逆圆弧插补

N060 G01 X70.0;直线插补铣削开口槽下侧壁

N065 G40 G00 Y0.0;取消左刀补,刀具快速退到起始点

N070 #10=#10+1.0;铣削次数逐次增加一次,返回循环起始段N015

N075 ENDW;循环结束,执行下条语句

N080 #3=15.0;R3mm槽底球面赋角度初始值

N085 WHILE #3LE90;如果角度大于90°,则程序跳转到N140程序段

N088 #13=3*COS[#3*PI/180];R3mm槽底球面当前切点离刀心的横向距离

#14=3-3*SIN[#3*PI/180];R3mm槽底球面当前切点离槽底的垂向距离

N090 G01 Z-[7.0+#14]F1000;深度分层逐次下降一个均值

N095 G41 G00 X70.0 Y[25-#13];建立左刀补,刀具快速走到开口槽上侧壁R3mm球面延长线处

N100 G01 X40.0;直线插补铣削开口槽上侧与底部的R3mm球面壁

N105 G03 X[30.0-#13]Y15.0 R[10-[4.281-#13]];拐角逆圆弧插补

N110 G01 Y-15.0;直线插补铣削开口槽左侧与底部的R3mm球面壁

N115 G03 X40.0 Y[25.0-#13] R[10-[4.281-#13]];拐角逆圆弧插补

N120 G01 X70.0;直线插补铣削开口槽下侧与底部的R3mm球壁面

N125 G40 G00 Y0.0;取消左刀补,刀具快速退到起始点

N130 #3=#3+5.0;角度变量均值递增,返回循环起始段N085

N135 ENDW;循环结束,执行下条语句

N140 G00 Z50.0 M09;刀具快速上升,切削液关闭

N145 M99;子程序结束并返回主程序

②开口锥槽精加工子程序(R3mm球头刀铣削)。

%3432;宏子程序名

N10 #10=3*SIN[10*PI/180];球头铣刀球心起刀点高度

#11=3*COS[10*PI/180];球头铣刀球心起刀点与槽壁距离

#12=0.1;深度下降初始值

N15 WHILE#12LT7.521;如果球刀心的背吃刀量(#12)大于或等于7.521,则程序跳转到N75程序段

N20 #13=#12*TAN[10*PI/180];开口槽各切削层平面上X、Y方向逐次递减值

#14=#10-#12;下降深度的绝对值

N25 G01 Z[#14];刀具逐次下降一个深度均值

N30 G00 X70.0 Y[25.0-#11-#13];刀具快速接近开口槽上侧

N35 G01 X40.0 F1200 M07;直线插补开口槽上侧面

N40 G03 X[30.0+#11+#13]Y15.0 R[10.0-#11-#13];拐角逆圆弧插补

N45 G01 Y-15.0;直线插补开口槽左侧面

N50 G03 X40.0 Y[-25+#11+#13] R[10.0-#11-#13];拐角逆圆弧插补

N55 G01 X70.0;直线插补开口槽下侧面

N60 G00 Y0.0;刀具快速回退到起刀点

N65 #12=#12+0.1;深度逐次递加均值,返回循环起始段N15

N70 ENDW;循环结束,执行下条语句

N75 G00 Z50.0 M09;刀具快速上抬

N80 M99;子程序结束并返回主程序

2)阿基米德螺旋线凹槽主程序。

O××××;阿基米德螺旋线凹槽程序名

%3433;程序号

N10 M06 T03;调用3号刀(ϕ8mm立铣刀)

N15 G17 G90 G21 G94 G54 G40 G49 G80;程度运行初始状态设置

N20 G43 G00 Z50.0 H03 S1000 M03;建立刀具长度补偿,主轴正转,转速为1000r/min

N25 #1=246.0;螺旋线起始转动角度

#2=645.0;螺旋线终点角度

#3=2.0;角步距

N30 G00 X-7.234 Y-16.262;刀具移动到螺旋线起始点上方

N35 Z5.0;刀具快速下降到工件上方5mm处

N40 G01 Z-10.0 F50.0;刀具以工进速度深度切削

N45 WHILE #1LT#2;如果#1大于或等于#2,则程序跳转到N70程序段

N50 #1=#1+#3;角步距递增一个均值

N55 #10=17.8+#1*18/360;螺旋线在当前点的半径RA+(αi-α)T/360

#11=#10*COS[#1*PI/180];螺旋线在当前点的X坐标(RA+(αi-α)T/360)COSαi

#12=#10*SIN[#1*PI/180];螺旋线在当前点的Y坐标(RA+(αi-α)T/360)SINαi

N60 G03 X[#11] Y[#12] R[#10] F120;圆弧插补法逼近螺旋线

N65 ENDW;循环结束,执行下条语句

N70 G00 Z100.0 M09;刀具退到工件上表面100mm处,切削液关闭

N75 G49;取消刀具长度补偿

N80 X0.0 Y100.0 M05;刀具退回工件坐标零点,主轴停止

N85 M30;程序结束并返回程序开头

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈