图3-51中左图是一个半圆形螺旋槽零件,图中的虚线是粗车后、精车前的轮廓线。如果使用R3mm的圆头车刀,升速段的长度取螺距的2倍即50mm,精车分25刀(这时相邻两刀间的夹角是7.5°)。在用刀尖圆心(即刀心)做对刀点亦即编程用点的前提下,适用于发那科系统的不用变量的精车NC加工程序为O343。
图3-51 精车半圆形螺旋槽的编程用图1
O343;
N08 G54 S160 M03;
N09 T0101;
N10 G00 X200 Z180;
N11 G00 X140;
N12 Z57; (Z1=50+7×cos0°)
N13 X100; (X1=100-14×sin0°)
N14 G32 Z-118 F25;
N16 G00 X140;
N16 Z56.940; (Z2=50+7×cos7.5°)
N17 X98.173; (X2=100-14×sin7.5°)
N18 G32Z-118; ……(隐去N19~N102段)
N103 G00 X140;
N104 Z43.069; (Z24=50+7×cos172.5°)
N105 X98.173; (X24=100-14×sin172.5°)
N106 G32 Z-118;
N107 G32 X140;
N108 Z43; (Z25=50+7×cos180°)
N109 X100; (X25=100-14×sin180°)
N110 G32 Z-118;
N111 G00 X200;
N112 Z180 M05;
N113 M30;
这里不用G92指令而用G32指令编程,是为了便于转换成适用于西门子数控系统的程序。
PP343.MPF是适用于西门子系统的不用R参数的精车NC加工程序。
PP343.MPF
N08 G54S160 M03
N09 T1 D1
N10 G00 X200 Z180
N11 G00 X140
N12 Z57; Z1=50+7×cos0°
N13 X100; X1=100-14×sin0°
N14 G33 Z-118 K25
N15 G00 X140
N16 Z56.940; Z2=50+7×cos7.5°
N17 X98.173; X2=100-14×sin7.5°
N18 G33 Z-118 ……(隐去N19~N102段)
N103 G00 X140;
N104 Z43.069; Z24=50+7×cos172.5°
N105 X98.173; X24=100-14×sin172.5°
N106 G33 Z-118
N107 G00 X140
N108 Z43; Z25=50+7×cos180°
N109 X100; X25=100-14×sin180°
N110 G33 Z-118
N111 G00 X200
N112 Z180 M05
N113 M02
以上两个程序很长,各有106个程序段。试切后如果觉得分刀数偏多或偏少,重定分刀数后又要重算重编,非常麻烦。此外,这两个程序只适用于精车。
如果引入变量,把NC程序改成宏程序,不但可大大减少程序段,而且使用也更方便灵活。这就上升到一个新的平台。变量越少,编程越简单,但宏程序的通用性也越差。这里分别介绍用1个变量、2个变量和3个变量的加工宏程序。
先介绍用1个变量的宏程序。O344程序和PP344.MPF程序分别是适用于发那科系统和西门子系统的使用1个变量的加工宏程序。
O344;
N05 #8=0; (#8代表刀尖圆心点所在的角度α,此赋初始值)
N08 G54 S160 M03; (设定坐标系指定转速指定主轴正转)
N09 T0101; (指令刀位号和刀补号)
N10 G00 X200 Z180; (到达总出发点)
N11 G00 X140; (X向到达车螺纹每刀出发点,此段中的G00不可省)
N12 Z[50+7∗COS[#8]]; (动点的Z坐标值)
N13 X[100-14∗SIN[#8]]; (动点的X坐标值)
N14 G32 Z-118 F25; (车一刀)
N15 #8=#8+7.5; (计算下一刀的α值)
N16 IF[#8LE180]GOTO11; (如果α未超过180°就继续车)
N17 G00 X200; (X向回到总退回点)
N18 Z180 M05; (Z向回到总退回点)
N19 M30;
PP344.MPF
N05 R8=0; R8代表刀尖圆心点所在的角度α,此处赋初始值
N08 G54 S160 M03; 设定坐标系指定转速指定主轴正转
N09 T1 D1; 指令刀位号和刀补号
N10 G00 X200 Z180; 到达总出发点
N11 MA1:G00 X140; X向到达车螺纹每刀出发点,此段中的G00不可省
N12 Z=50+7∗COS(R8); 动点的Z坐标值
N13 X=100-14∗SIN(R8); 动点的X坐标值(www.xing528.com)
X14 G33 Z-118 K25; 车一刀
N15 R8=R8+7.5; 计算下一刀的α值
N16 IF R8<=180GOTOB MA1; 如果α未超过180°就继续车
N17 G00 X200; X向回到总退回点
N18 Z180 M05; Z向回到总退回点
N19 M02
这两个程序各有13个程序段。变量#8/R8代表车螺旋槽起始处刀尖圆心点所在的角度α,令其等于0是初始值,即第1刀的值。N15段中的7.5是分25刀时相邻两刀间的角度间隔值。试切后如果想改成分31刀车,把此值改成6即可。
改变分刀数就必须改变程序中某段等式中的一个数据,这在更改过程中容易出错。如果再增加一个变量,情况就会改善。O345程序和PP345.MPF程序分别是适用于发那科系统和西门子系统的使用2个变量的加工宏程序。
O345;
N05 #8=0; (#8代表刀尖圆心点所在的角度α,此处赋初始值)
N07 #15=7.5; (两刀间的角度间隔Δα,它必须能把180除尽)
N08 G54 S160 M03; (设定坐标系,指定主轴转速且主轴正转)
N09 T0101; (指令刀位号和刀补号)
N10 G00 X200 Z180; (到达总出发点)
N11 G00 X140; (X向到达车螺纹每刀出发点)
N12 Z[50+7∗COS[#8]]; (动点的Z坐标值)
N13 X[100-14∗SIN[#8]]; (动点的X坐标值)
N14 G32 Z-118 F25; (车一刀)
N15 #8=#8+#15; (计算下一刀的α值)
N16 IF[#8LE180]GOTO11; (如果α未超过180°就继续车)
N17 G00 X200; (X向回到总退回点)
N18 Z180 M05; (Z向回到总退回点)
N19 M30;
PP345.MPF
N05 R8=0; R8代表刀尖圆心点所在的角度α,此处赋初始值
N07 R15=7.5; 两刀间的角度间隔Δα,它必须能把180除尽
N08 G54S160 M03; 设定坐标系,指定主轴转速且主轴正转
N09 T1D1; 指令刀位号和刀补号
N10 G00 X200 Z180; 到达总出发点
N11 MA1:G00 X140; X向到达车螺纹每刀出发点
N12 Z=50+7∗COS(R8); 动点的Z坐标值
N13 X=100-14∗SIN(R8); 动点的X坐标值
N14 G33 Z-118 K25; 车一刀
N15 R8=R8+R15; 计算下一刀的α值
N16 IF R8<=180GOTOBMA1; 如果α未超过180°就继续车
N17 G00 X200; X向回到总退回点
N18 Z180 M05; Z向回到总退回点
N19 M02
新增加的变量#15(R15)代表起始处相邻两刀间的间隔角度值,令此角度为7.5°对应的是车25刀。用2个变量后,要想改变分刀数,只需改变程序中N07段内等号后的数据即可。这两个程序各有14个程序段。
这里还有一个小小的限制,那就是所赋的数值必须能把180除尽。而要想把这个限制去掉,就得再引入一个变量。O346程序和PP346.MPF程序分别是适用于发那科系统和西门子系统的使用3个变量的加工宏程序。
O346;
N05 #8=0; (#8代表刀尖圆心点所在的角度α,此处赋初始值)
N06 #7=25; (#7代表精车分刀数N)
N07 #15=180/[#7-1]; (#15代表两刀间的角度间隔Δα)
N08 G54 S160 M03; (设定坐标系,指定主轴转速,指定主轴正转)
N09 T0101; (指令刀位号和刀补号)
N10 G00 X200 Z180; (到达总出发点)
N11 G00 X140; (X向到达车螺纹每刀出发点)
N12 Z[50+7∗COS[#8]]; (动点的Z坐标值)
N13 X[100-14∗SIN[#8]]; (动点的X坐标值)
N14 G32 Z-118 F25; (车一刀)
N15 #8=#8+#15; (计算下一刀的α值)
N16 IF [#8LE180]GOTO11; (如果α未超过180°就继续车)
N17 G00 X200; (X向回到总退回点)
N18 Z180 M05; (Z向回到总退回点)
N19 M30;
PP346.MPF
N05 R8=0; R8代表刀尖圆心点所在的角度α,此处赋初始值
N06 R7=25; R7代表精车分刀数N
N07 R15=180/(R7-1); R15代表两刀间的角度间隔Δα
N08 G54 S160 M03; 设定坐标系,指定主轴转速,指定主轴正转
N09 T1D1; 指令刀位号和刀补号
N10 G00 X200 Z180; 到达总出发点
N11 MA1:G00 X140; X向到达车螺纹每刀出发点
N12 Z=50+7∗COS(R8); 动点的Z坐标值
N13 X=100-14∗SIN(R8); 动点的X坐标值
N14 G33 Z-118 K25; 车一刀
N15 R8=R8+R15; 计算下一刀的α值
N16 IF R8<=180 GOTOB MA1; 如果α未超过180°就继续车
N17 G00 X200; X向回到总退回点
N18 Z180 M05; Z向回到总退回点
N19 M02
新增加的变量#7/R7代表分刀数。原来需要赋值的变量#15/R15这里不用赋值(已经用已知值变量的算式给它赋值了),所以需要赋值的仍然是两个变量。改用3个变量后,分刀数就不受限制了。这两个程序各有15个程序段。
变量还可以一个一个地增加,这里不再详列。变量数越多,宏程序的通用性越好。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。