宏入门,拿两个实例来解析,它们分别属于将宏指令放在主程序体中和当作子程序来调用的两种不同应用方式。
数控铣削精加工如图所示矩形外轮廓,要求采用宏程序指令编制加工程序。
思路解析:
假定起刀点在0点,如图1-9 所示按0→1→2→3→4→1→0走刀轨迹加工(不考虑刀具补偿等问题)
则加工程序如下:
G00 XA YB(从0点快速点定位至1点)
G01 XC F100(直线插补至2点)
YI(直线插补至3点)
XA(直线插补至4点)
YB(直线插补至1点)
G00 X0 Y0(返回0点)
将程序中变量A. B、C、I用宏程序中的变量#i来代替,设字母与#i的对应关系为(即将A、B、C、I分别赋值给#1、#2、#3和#4):
#1=A
#2=B
#3=C
#4=I
则编制宏程序如下:
#1=A(将A值赋给#1)
#2=B(将B值赋给#2)
#3=C(将C值赋给#3)
#4=I(将I值赋给#4)
G00 X#1 Y#2(从0点快速点定位至1点)
G01 X#3 F100(直线插补至2点)
Y#4(直线插补至3点)
X#1(直线插补至4点)
Y#2 (直线插补至1点)
G00 X0 Y0 (返回0点)
案例 2
当加工同一类尺寸不同的零件时,只需改变宏指令的数值即可,而不必针对每-一个零件都编一-个程序。当然,实际使用时一-般还需要在上述程序中加上坐标系设定、刀具半径补偿和F、S、T等指令。
调用宏 子程序车削加工如图所示的台阶轴零件。
解:图中标注A的轴肩通常有不同长度,采用宏程序编程可以满足加工不同A尺寸工件的需要。为了加工该工件,需要按照一般的格式编制主程序,在主程序中通常是刀具到达准备开始加工位置时,有一程序段调用宏子程序,宏子程序执行结束,则返回主程序中继续执行。
编制加工程序如下:
主程序:
01010(主程序号)
G50 X150.0 Z50.0(工件坐标系设定)
S550 M03(主轴正转)
G00 X20.0 Z2.0(刀具快速到达切削起始点)
G65 P1011 A15(调用1011号用户宏程序,将轴肩长度15赋值给变量#1)
G01 X30.0(车削轴肩)
G00 X150.0 Z200. 0(快速返回刀具起始点)
M05(主轴停转)
M30(程序结束)
宏子程序:
01011(宏子程序号)
G01 Z-#1 F0.2(车削外圆,可获得任意轴肩长度)
M99(返回主程序)
在主程序中,N40程序段用G65指令调用01011宏程序,A15表示将轴肩的长度15mm赋值给变量#1。车削轴端外圆并保证所需长度尺寸是通过宏程序中下面程序段实现的:
G01 Z-#1 F0.2
如果用一般程序加工轴肩长度为15的外圆,可输入下面的程序段:
G01 Z-15.0 F0.2
然而,这只能加工这种长度的工件。宏程序允许用户加工任意所需长度的工件,这可以通过改变G65指令中地址A后的数值实现。
轴肩的长度加工完成后,执行M99返回到主程序,加工轴肩端面并获得所需直径。如果轴肩直径(图1-10中B尺寸)也需要变化,也可以通过宏程序实现。为此,在主程序中还需要加入地址B,程序可修改如下:
主程序:
01012(主程序号)
G50 X150.0 Z50.0(工件坐标系设定)
S550 M03(主轴正转)
G00 X20.0 Z2.0(刀具快速到达切削起始点)
G65 P1013 A15.0 B30.0 (调用用户宏程序)
(将轴肩长度15和轴肩直径30分别赋值给变量#1和#2 )
G00 X150.0 Z200. 0(快速返回刀具起始点)
M05(主轴停转)
M3 0(程序结束)
宏子程序:
01013(宏子程序号)
G01 Z-#1 F0.2(车削外圆,可获得任意轴肩长度)
X#2(车削轴肩可得到任意直径)
M99(返回主程序)
该程序中通过地址B把直径30赋值给变量#2,只需要修改N40程序段中的A、B值即可加工不同轴肩长度直径的工件。
从以上例子可以看出,用户宏程序中可以用变量代替具体数值,因此在加工同一类型工件时,只需对变量赋不同的值,而不必对每一个零件都编一个程序。
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删