实例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细齿立铣刀精铣两侧开口矩形凹槽。
考虑零件尺寸精度要求高,半精加工后要仔细检测尺寸,若精加工后尺寸还不符合要求,如果余量不大,这时可再空走一刀;如果余量较多,则再通过改变刀具半径值后走一刀,直到轮廓尺寸符合图样要求再拆装。
图3-110 零件示意图
a)零件图 b)效果图
(2)编程与加工难点分析 该零件编程与加工难点在于正面两侧的斜椭圆弧和孔口R8mm的球面。以工件上表面中心建立工件坐标系,斜椭圆弧和孔口R8mm的球面需采用宏程序(R参数)进行编程。斜椭圆弧可通过建立子坐标系和旋转指令编制一个子程序,通过主程序调用子程序加工其中一侧椭圆弧,再通过镜像指令,再次调用子程序加工另一侧椭圆弧。由于是加工椭圆的内侧,因此在选择铣刀尺寸铣削余量时,要注意刀具干涉,铣刀直径不能选得太大。其基点坐标尺寸如图3-111所示。由于R8mm球面余量较多且不均,因此在铣削时,先由下而上采用立铣刀分层粗铣成形,再用球头铣刀精加工,因此在编程时要注意两种铣刀的刀心位置不同,如图3-112所示。
图3-111 基点坐标尺寸
图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钢规则六面体,试分析其加工工艺并编写其数控铣/加工中心的加工程序。
图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所示。
图3-114 凹圆柱面加工示意图
a)立铣刀阶梯法粗铣去余量 b)球头铣刀行切法精铣球面 c)阶梯法精铣凹圆柱曲面 d)球头铣刀变量关系
立铣刀(图3-114c):
#2=立铣刀半径;
球头铣刀(图3-114d):
由于凸台是由直线和圆弧光滑连接而成的不规则轮廓,因此在编程时可通过改变刀具半径补偿量来分层铣削R5mm过渡圆球面,孔口的C3mm锥面同样可用此方法编程。在铣削时,先由下而上采用立铣刀分层粗铣成形,再用球头铣刀精加工,因此在编程时要注意两种铣刀的刀心位置不同,如图3-115所示。
图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钢规则六面体,试分析其加工工艺并编写其数控铣/加工中心的加工程序。
图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所示。由于开口锥槽顶部和底部余量较多,因此在铣削时,先采用立铣刀分层粗铣成形,再用球头铣刀精加工。
图3-117 基点坐标
图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;程序结束并返回程序开头
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。