1.算法的设计
(1)该零件槽尺寸完全相同,可以将铣削槽轮廓编制成一个独立程序,然后通过调用该程序来实现整个零件的加工。
(2)关于槽起始位置和终点位置的坐标值计算,可以通过以下方法来实现:
1)构建如图2-34所示的三角函数数学模型,设置#100号变量来控制角度的变化,利用角度的变化和三角函数计算槽的起点位置和终点位置的坐标值。
2)利用FANUC数控系统中旋转指令G68以及G69来实现轮廓的旋转。
3)利用极坐标系G16以及G15来编程。
(3)设置#101号变量来控制槽的数量作为循环结束条件,即每铣完一个槽,#101号变量减1,当#101大于0时,跳转到铣槽子程序继续铣削下一个槽,直到#101号变量值为0,结束循环。
(4)也可以设置#101号变量初始值为0来控制铣削槽的深度,作为循环结束的条件,即Z向到达一定的深度(#101号变量的值),依次铣削6个槽的轮廓,#101减去每次的进刀量(2mm),当#101号变量到达-10mm,跳转到铣削槽的子程序,直到#101号变量的值为-10,结束循环。
(5)也可以采用子程序嵌套的方式来完成圆周槽的铣削加工。
图2-34 构建数学模型示意图
根据图2-34建立的数学模型可知,任意一个槽起点位置的坐标如点A所示,终点位置如点B所示,根据三角函数关系可知:
#104=(OA-刀具半径)∗COS(#100)以及#101=(OA-刀具半径)∗SIN(#100),得到点A的坐标值,也是槽起点的坐标值。
#103=(OB+刀具半径)∗COS(#100)以及#102=(OB+刀具半径)∗SIN(#100),得到点B的坐标值,也是槽终点的坐标值。
2.程序流程框图设计
根据以上零件图以及算法的分析,加工的流程框图有以下两种方式:按照区域优化加工原则,依次一个一个铣削圆周槽,如图2-35所示;按照层优先原则,一层一层分层铣削圆周槽,如图2-36所示。
图2-35 区域优先铣削圆周槽流程框图
图2-36 层优先铣削圆周槽流程框图
3.根据算法以及流程框图编写加工的宏程序代码
程序1:采用区域优先加工原则,调用子程序嵌套的方法编写加工代码
实例2-4 程序1编程要点提示:
(1)本程序是采用子程序嵌套的方式来实现圆周槽的铣削,关于子程序的叙述可以参考2.1节程序O2002的编程要点提示。
(2)在含有多重子程序嵌套编程时,要注意子程序嵌套调用的顺序。在本实例中,主程序O2026调用一级子程序O2027,一级子程序O2027调用二级子程序O2028,二级子程序O2028调用三级子程序O2029,调用的顺序不可颠倒。
(3)利用坐标系旋转G68以及G69指令可以简化编程,在G17平面内的格式为:
G68指令为旋转坐标系生效,G69指令为取消旋转坐标系,恢复直角坐标系。和极坐标系G16、G15一样,G68和G69必须成对使用,在程序中用G68指定旋转坐标系后,必须用G69取消旋转坐标系,否则会执行不正确的移动。
X_Y_:坐标系旋转中心的绝对值坐标;R_:旋转角度,该角度一般取0°~360°之间的正值。旋转角度零度方向为第一坐标轴的正方向,逆时针方向为角度变化的正方向,顺时针方向为角度变化的负方向。
例如:G68 X0 Y0 R10,表示坐标系以(0,0)作为旋转的中心,逆时针旋转10°。
旋转坐标系适用于:在不同位置有重复出现的形状或结构时,可利用旋转坐标系指令旋转某一坐标系,通过指定的角度建立一个新的坐标系,以达到简化编程的目的。(www.xing528.com)
采用坐标系旋转指令时,要注意确定旋转的中心和旋转的角度。在多重旋转时,要注意先取消前面的旋转,否则旋转中心的坐标值以及旋转角度会相互叠加,将会产生意想不到的轨迹运动。
使用旋转坐标系而必须使用刀具半径补偿时,刀具半径补偿一般在坐标系旋转后(G68生效时)建立,在G69生效前取消。
坐标系旋转取消指令(G69)以后的第一个移动指令必须采用(G90)绝对值编程,如果采用(G91)增量编程,将不执行正确的移动。
(4)在调用完三级子程序后,Z轴位置为-10mm,在进行第二次以及以后调用一级子程序时,需要将Z轴抬刀到Z0的位置,如二级子程序O2026中的G0Z0为必不可少的。
(5)本实例中,调用子程序中,G90和G91要及时转换使用。
(6)本实例采用是刀心编程,因此在计算坐标时,需要考虑刀具的半径值,也可以设置一个变量如#105号变量,来控制刀具的半径值。
程序2:利用三角函数来计算每个槽的起始坐标和终点坐标,按层优先铣削圆周槽
实例2-4 程序2编程要点提示:
(1)本程序是根据图2-34构建数学模型和利用三角函数公式,计算每个槽的起始位置和终点位置的坐标值来铣削圆周槽的。
(2)#100号变量是控制角度的变换,并赋初始值为0,通过数学表达式和语句#104=[#105-#107]∗COS[#100]和#101=[#105-#107]∗SIN[#100],计算第一个槽(X和Y轴正方向)起始位置的坐标值,然后通过#100=#100+60角度的递增变化,分别计算出其余各个圆周槽的起始位置坐标值。
(3)语句#103=[#106+#107]∗COS[#100]和#102=[#106+#107]∗SIN[#100]的含义和作用参考(2)。
(4)#110号变量控制铣削槽深度的变化,通过#110=#110-2实现槽的分层铣削。本程序采用一层一层的方式铣削圆周槽,具体步骤:
1)第一次铣削深度为2mm,即第一个槽铣削2mm后,Z轴抬刀至安全高度,X、Y、Z轴再移到第二槽的加工起始位置,准备进行下一个槽的铣削加工。
2)等6个槽全部铣削2mm后,Z轴再进刀一定的深度,进行第二次深度的铣削。
3)如此循环,直到铣削的深度为10mm,并且6个槽全部铣削完毕后结束程序循环。
(5)IF[#100LT360]GOTO 20和#100=#100+60判断铣削槽的个数是否完毕,作为结束每层铣削槽个数的循环条件,控制铣削槽的个数也可以设置一个变量来控制,具体应用见下面程序号O2031宏程序代码。
(6)本程序是基于层优先的加工原则,通过分层一圈一圈铣削圆周槽的,相应的抬刀和进刀的次数会明显增多,空切较多。
(7)本程序采用刀心编程,因此在计算槽的起始位置和终点位置坐标值,需要考虑刀具的半径值。计算槽终点位置坐标,如程序语句#104=[#105-#107]∗COS[#100]中,采用内圆半径#105号变量值减去刀具半径#107号变量值(由于是计算槽的起始位置,而进刀方向选择在X0、Y0处);计算槽的终点位置坐标,如程序语句#103=[#106+#107]∗COS[#100]中,采用外圆半径#106号变量的值加上刀具半径#107号变量的值。
程序3:利用三角函数来计算每个槽的起始坐标和终点坐标,按区域优先铣削圆周槽
实例2-4 程序3编程要点提示:
(1)本程序和O2027的区别有两点:
1)铣削的方法不一样。
O2030是采取一圈一圈的方式铣削圆周槽的。
O2031则是采取一个一个的方式铣削圆周槽的,先将第一个槽(X轴正方向)铣削至-10mm处,然后通过角度的变化,定位至第二个槽的位置,进而加工第二个槽,如此循环。
2)结束循环的判断语句(条件)不一样。
O2030采用#100号变量(角度)的变化。每铣削好一个槽,累加一次角度(#100=#100+60)。当角度大于等于360°(圆的一周角度变化的范围:0°~360°)就结束循环。
O2031采用#102号变量(槽的个数)变换。每铣削好一个槽,槽的数量递减一次(槽的个数初始值为6),即#112=#112-1,当#112号变量的值为0(槽全部加工完毕)就结束循环。
(2)本程序其他的编程要点,如槽的起始位置、终点位置坐标值的计算,刀具半径等问题,可以参考O2030程序中的编程要点提示,为了节省篇幅,在此不再赘述。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。