一、 编程思路
由图可知,25个孔分布在5行5列的矩阵上。孔中心之间的行间距和列间距均为10mm,编程原点如图所示,起刀点为(30,20)。
这里按照加工中心编程,先用中心钻在每个孔的中心位置钻出中心孔,再用麻花钻进行孔的加工。使用宏程序调用指令G65,根据不同的钻孔方式传递不同的参数。
这里要使用宏程序循环语句的三重嵌套功能进行编程。
先分析第三级循环的编程。第三级循环主要完成孔的间歇进给、分次钻进。将每次钻进的终止位置定义为变量#14,其初值为#7-#17(安全高度-每次钻进量)。变量#14每变化(减#17)一次,往下钻孔至#14的位置,然后快速提刀至#14+3的位置(便于排屑、散热),紧接着快速下刀至#14+1的位置(距离前一次的钻孔终止位置1mm),该次的钻孔动作完成,当变量#14再变化一次,则重复刚才的动作,直至钻到孔底,则钻孔结束,循环也结束。分次钻孔的循环判定条件为:当#14大于#26(钻深)时,进行钻孔循环,当#14小于等于#26时,钻孔循环结束。
由于钻中心孔不需要分次钻进,也即每次钻进量Q(#17)=0,可以在第三级循环前加条件转移语句,转移条件为:当#17等于0时,跳过分次钻进循环,直接进行一次钻进。
再分析第二级循环的编程。设列变量为#11,将孔中心X坐标定义为变量#13,#13=#24+[#11-1]*#5,当列变量#11不断变化(加1),则#13也随之变化,从而可以得到该行上每个孔的中心X坐标,即可完成列向钻孔的循环定位。列向钻孔循环定位的判定条件为:当#11小于等于#2(列数)时,进行列向钻孔循环定位,当#11大于#2时,列向钻孔循环定位结束。
接着分析第一级循环的编程,设行变量为#10,将孔中心Y坐标定义为变量#12,#12=#25+[#10-1]*#4,当行变量#10不断变化(加1),则#12也随之变化,从而可以得到该列上孔的中心Y坐标,即可完成列向钻孔的循环定位。行向钻孔循环定位的判定条件为:当#10小于等于#1(行数)时,进行行向钻孔循环定位,当#10大于#1时,行向钻孔循环定位结束。
二、 编程
编程原点如图5-13所示,所用刀具为φ5中心钻T01、Φ8麻花钻T02,T01的长度补偿号为H01,T02的长度补偿号为H02,程序编写如下。
O1000;主程序
G91G28Z0;机床回参考点
T01M06;换中心钻
G54G90G17G40;调工件坐标系,初始化
M03M08S1200;钻中心孔切削参数
G43G00Z50H01;建立刀具长度补偿
X30Y20;快速定位到左下角第一个孔
G65P1001X40Y20A5B5I10J10R3Z-3Q0F60;钻中心孔的参数传递
G00G49Z100;取消刀具长度补偿
M05;
M09;
G91G28Z0;机床回参考点
T02M06;换麻花钻头
M03M08S800;钻孔切削参数
G90G43Z50H02;建立刀具长度补偿
X30Y20;快速定位到左下角第一个孔
G65P1001X40Y20A5B5I10J10R3Z-32Q5F100;钻孔的参数传递
G00G49Z100;取消刀具长度补偿
M05;
M09;
M30;主程序结束并复位
O1001;子程序(单向进刀)
#10=1;行变量
WHILE[#10LE#1]DO1;第一级循环条件
#12=[#10-1]*#4;Y坐标
#11=1;列变量
WHILE[#11LE#2]DO2;第二级循环条件
#13=[#11-1]*#5;X坐标
G00X#13Y#12;孔心定位
Z#7;快速接近工件
IF[#17EQ0]GOTO1;条件成立,跳转到N1执行
#14=#7-#17;分次钻进
WHILE[#14GT#26]DO3;第三级循环条件
G01Z#14F#9;钻孔
G00Z[#14+3];快速退刀
Z[#14+1];快进至距前次钻孔位置1mm
#14=#14-#17;钻进终止位置不断变化
END3;第三级循环结束
N1G01Z#26F#9;一次钻进
G00Z#7;抬刀至快进点
#11=#11+1;列加1
END2;第二级循环结束
#10=#10+1;行加1
END1;第一级循环结束
M99;子程序结束
领取专属 10元无门槛券
私享最新 技术干货