首页 理论教育 设计算法及流程框图

设计算法及流程框图

时间:2023-06-16 理论教育 版权反馈
【摘要】:2)利用FANUC数控系统中旋转指令G68以及G69来实现轮廓的旋转。图2-35 区域优先铣削圆周槽流程框图图2-36 层优先铣削圆周槽流程框图3.根据算法以及流程框图编写加工的宏程序代码程序1:采用区域优先加工原则,调用子程序嵌套的方法编写加工代码实例2-4 程序1编程要点提示:本程序是采用子程序嵌套的方式来实现圆周槽的铣削,关于子程序的叙述可以参考2.1节程序O2002的编程要点提示。

设计算法及流程框图

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)也可以采用子程序嵌套的方式来完成圆周槽的铣削加工。

978-7-111-45798-5-Chapter02-68.jpg

图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所示。

978-7-111-45798-5-Chapter02-69.jpg

图2-35 区域优先铣削圆周槽流程框图

978-7-111-45798-5-Chapter02-70.jpg

图2-36 层优先铣削圆周槽流程框图

3.根据算法以及流程框图编写加工的宏程序代码

程序1:采用区域优先加工原则调用子程序嵌套的方法编写加工代码

978-7-111-45798-5-Chapter02-71.jpg

978-7-111-45798-5-Chapter02-72.jpg

实例2-4 程序1编程要点提示:

(1)本程序是采用子程序嵌套的方式来实现圆周槽的铣削,关于子程序的叙述可以参考2.1节程序O2002的编程要点提示。

(2)在含有多重子程序嵌套编程时,要注意子程序嵌套调用的顺序。在本实例中,主程序O2026调用一级子程序O2027,一级子程序O2027调用二级子程序O2028,二级子程序O2028调用三级子程序O2029,调用的顺序不可颠倒。

(3)利用坐标系旋转G68以及G69指令可以简化编程,在G17平面内的格式为:

978-7-111-45798-5-Chapter02-73.jpg

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:利用三角函数来计算每个槽的起始坐标和终点坐标按层优先铣削圆周槽

978-7-111-45798-5-Chapter02-74.jpg

978-7-111-45798-5-Chapter02-75.jpg

实例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:利用三角函数来计算每个槽的起始坐标和终点坐标按区域优先铣削圆周槽

978-7-111-45798-5-Chapter02-76.jpg

978-7-111-45798-5-Chapter02-77.jpg

实例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程序中的编程要点提示,为了节省篇幅,在此不再赘述。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈