实例:现有一100*100*50的钢板,在板中央加工工一个直径为80深度为30的沉孔。目前有刀具直径20的铣刀,进行相应的编程加工。图示如下。
准备:对刀设定坐标原点为沉孔中心,将工件沉孔中心在机床的XY机械坐标位置输入到G54坐标系的相应位置,Z轴检查下设置为0。在刀补中设置铣刀长度补偿作为Z轴的零点位置。这里默认为G54坐标系和01号刀具。铣刀每次走刀的背吃刀量为1mm。原点位置如下图所示。
程序如下:
G54G90G00Y0;(设定坐标系移动到原点)
G43H1Z30;(设定Z轴刀补位置)
M03S1000;(主轴启动)
M08;(切削液)
G0X-10;(移动X轴)
#1=0;(设定初始值)
#2=-1;(设定增量值)
N1IF[#1EQ-30]GOTO2;(设定条件语句满足#1=30循环结束)
G01Z#1F80;(切深度)
G01X-10F80;(X走刀)
G02X-10Y0I10J0F80;(走小圆)
G01X-30F80;(X走刀)
G02Y0I30J0F80;(走大圆)
GOTO1;(循环回程序段N1)
N2G0Z30;(程序段N2抬刀)
M05M09M30;(停止)
注意程序走大圆后铣刀要先回到走小圆的起始位,不然程序会出错。这里增加一个知识点,在条件转移语句命令中有多种格式:
1、IF [条件] GOTO n(如果指定条件表达式满足时,转移到标有顺序号n的程序段;如果指定条件表达式不满足,执行下个程序段);
2、IF [条件]THEN(如果指定条件表达式满足时,执行设定的宏程序)注意这里只执行一个宏程序语句,也是跟GOTO命令的区别。
3、WHILE[条件]DO m……END m(满足指定条件表达式时,执行DO和END之间的程序,否则执行END后的语句)这里要注意的是m的数值在DO和END和的数值只能是1、2、3超出范围会报警。
条件语句可以嵌套进行,但不要超过允许的程序数值。但有程序交叉重复循环即DO范围重叠就会出错报警。图示如下。
大家看到在WHILE语句和IF语句两个命令都可以实现相同的切削循环,但还是有区别的如果应用到小于3的编号程序时WHILE条件语句会更合适,因为GOTO语句要进行程序段检索,反向检索时间要比正向检索时间长,所以WHILE运行速度更快。当然用于多段程序时超过3后,就只能用IF语句了。