首页 理论教育 算法与程序流程框图设计优化方案

算法与程序流程框图设计优化方案

时间:2023-06-16 理论教育 版权反馈
【摘要】:图3-5 分层铣削键槽型腔的流程框图3.根据算法以及流程框图编写加工的宏程序代码程序1:采用刀具直径等于键槽宽度以提高加工效率的宏程序代码实例3-1 程序1编程要点提示:本程序为键槽铣削的精加工程序,适用于已去除大量余量后的精加工。在本程序中采用增量方式编程,可以简化编程,减少程序量。

算法与程序流程框图设计优化方案

1.算法的设计

(1)由以上零件图、刀具以及毛坯等因素,综合考虑如下:

采用的铣削方式为:从左边圆弧的圆心处进刀,采用直线(G01)进给运动到右边圆弧的圆心,这样就铣削出一层键槽型腔,然后可以Z向抬刀,X、Y轴快速移动到左边圆弧的圆心处,再Z轴进刀至下一层的铣削深度进行下一层键槽型腔的铣削,如此循环,直到铣削键槽的深度达到10mm。

从上述分析可知,每铣削一层键槽的型腔,Z轴、X轴、Y轴都有移刀的运动,这样形成的刀路轨迹中,有较多的空切运动(空刀)。因此该路径规划和算法并不是最优的,该思路需要进一步改善。

(2)根据上述的分析,对算法做进一步的改善。

采用的铣削模式为:在左边圆弧的圆心处进刀,然后采用直线(G01)进给运动到右边圆弧的圆心;在右边圆弧的圆心处进刀至下一层的铣削深度,然后采用直线(G01)进给运动到左边圆弧的圆心,这样也构成一个循环过程。

然后Z轴抬刀,X、Y轴快速移动到左边圆弧的圆心处,Z轴进刀至下一个循环的铣削深度进行下一个型腔深度的铣削,如此循环,直到键槽的铣削深度达到10mm,该算法空刀会比(1)所述的减少了近一半,提高了效率

(3)从(2)点分析可知,每铣削一个循环的键槽型腔深度,Z轴、X轴、Y轴都有移刀的运动,这样形成的刀路轨迹中也存在空切运动(空刀),不满足铣削加工效率最大化的要求。因此最理想的算法如下面第(4)点所述。

(4)采用的铣削模式为:在左边圆弧的圆心处进刀,然后采用直线(G01)进给运动到右面圆弧的圆心,在右边圆弧圆心处进刀一层铣削深度,然后采用直线(G01)进给运动到左边圆弧的圆心,这样构成了一次循环;在左边圆弧的圆心处再次进刀下一层铣削深度,如此循环,直到铣削的深度达到10mm,整个型腔加工完毕,Z轴抬刀运动,X、Y轴进行移刀运动,该算法加工路径相对最短,空切运动相对较少。

(5)把铣削键槽型腔一层循环加工编制成一个独立子程序,在主程序中调用该子程序。也可设置#100号变量来控制铣削键槽深度的变化,结合条件跳转语句来实现键槽型腔的加工。为了简化编程可以采用增量方式(G91)编程。

2.程序流程框图设计

根据以上算法设计分析,规划的精加工刀路轨迹如图3-3所示,规划的分层铣削刀路轨迹如图3-4所示,程序流程框图的设计如图3-5所示。

978-7-111-45798-5-Chapter03-4.jpg

图3-3 精加工刀路示意图

978-7-111-45798-5-Chapter03-5.jpg

图3-4 分层铣削刀路示意图

注:进刀和退刀是同一个位置。

978-7-111-45798-5-Chapter03-6.jpg

图3-5 分层铣削键槽型腔的流程框图

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

程序1:采用刀具直径等于键槽宽度以提高加工效率的宏程序代码

978-7-111-45798-5-Chapter03-7.jpg

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

(1)本程序为键槽铣削的精加工程序,适用于已去除大量余量后的精加工。

(2)本程序铣削过程虽然简单,但铣削狭窄型腔的进刀方式有多种,说明如下:

本实例材料为铸铁,可采用键槽铣刀在中心垂直下刀;如果是45钢,或者是材料较硬的不锈钢,采用中心垂直下刀会损伤刀具,因此在编制宏程序代码时,要充分考虑选择合理的狭窄型腔铣削下刀方式。

对于封闭型腔的加工,在没有预钻落刀孔的情况下,可采用以下三种方式实现进刀:中心垂直进刀运动、螺旋进刀运动和Z字斜线进刀。

1)中心垂直进刀运动。

对于小面积铣削、工件表面粗糙度要求不高以及加工材料不是经过特殊硬化处理的封闭型腔,可采用中心垂直进刀的方式铣削工件。尽管如此,由于铣削时切削力较大,进刀速度不能太快,进给深度不能太深,最好采用分层进刀的切削方式。

2)螺旋进刀。

对于大面积型腔的加工,可以采用钻头预钻落刀孔或键槽铣刀垂直进刀后,再换多刃立铣刀进行垂直进刀加工,提高加工效率,这样会增加一把钻头或键槽铣刀,占用刀库,增加换刀的时间;对于大件的加工,一般采用几十把刀进行加工,加工中心刀库可能不够用。因此这种情况建议采用螺旋进刀方式,在模具等各种高速精密加工场合应用较多。

螺旋进刀方式的格式为:

978-7-111-45798-5-Chapter03-8.jpg

这种进刀模式容易实现轮廓加工时Z向进刀的自然平滑过渡,不会在进刀处产生走刀的痕迹。同时编程中螺旋进刀方式要设置螺旋半径、螺距、铣削起始高度等相应铣削参数,一般情况下螺旋半径R要大于刀具半径。

螺旋进刀的铣削路径较长,在封闭的较狭窄型腔加工中,受到铣削范围的限制,使螺旋进刀方式无法实现,此时考虑Z字斜线进刀方式。

3)Z字斜线进刀

Z字斜线进刀是在加工型腔较为狭窄、螺旋进刀无法实现的情况下,选择三轴联动Z字斜线进刀。Z字斜线进刀时,刀具下至工件表面上方一定高度(也可以是工件表面Z0的位置),进刀运动变为与工件表面成一定角度的斜线方式,比较平缓地切入工件,从而实现Z向进刀。Z字斜线进刀的格式为:

978-7-111-45798-5-Chapter03-9.jpg

编程中,Z字斜线进刀方式要设置进刀的起始高度、切入斜线的长度、切入角度等相应的铣削参数,具体设置需要根据工件实际情况酌情选择。

(3)产品零件中键槽的类型常见的有如图3-6、图3-7和图3-8所示,不同类型的键槽加工,需要考虑选用适宜的进刀方式。

978-7-111-45798-5-Chapter03-10.jpg

图3-6 开放式键槽(www.xing528.com)

978-7-111-45798-5-Chapter03-11.jpg

图3-7 半封闭式键槽

978-7-111-45798-5-Chapter03-12.jpg

图3-8 封闭式键槽

程序2:分层实现键槽铣削的宏程序代码

978-7-111-45798-5-Chapter03-13.jpg

978-7-111-45798-5-Chapter03-14.jpg

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

(1)该程序根据图3-4所示刀路轨迹和图3-5所示的流程框图。

(2)关于#100号变量设置需要注意的问题:

程序中#100号变量用来控制铣削的次数,即:每铣削一个循环后,#100号变量减1,当#100号变量大于0时,铣削循环没有结束,需要进行下一次的铣削循环,直到#100=0时结束循环。特别注意#100号变量设置的初始值为3,而不是5,原因在于:每次铣削深度为2mm,在一个循环中进行一次进刀程序,如G01Z-2F100、#101=40、G01X[#101]、G01Z-2、G01X[-#101],每一个循环结束,铣削的总深度为4mm,即需要10/4=2.5个循环。在循环开始时,Z轴距离工件表面距离为2mm,如程序中的语句G01Z2F300所示,所以,#100的初始值设置为3。

(3)在本程序中采用增量(G91)方式编程,可以简化编程,减少程序量。

(4)第一次铣削键槽为空切,程序中其他编程要点的提示见程序O3001。

程序3:分层实现键槽铣削的粗精铣加工宏程序代码

该编程的算法如下所述:

(1)采用φ10mm键槽铣刀进行粗加工(1号刀),单边预留1mm的精铣余量,Z向预留0.5mm的精铣余量。

(2)精加工时采用φ8mm的键槽铣刀(2号刀),带刀具半径补偿进行精铣加工,进给时采用圆弧过渡切入和退出工件。

(3)编程原点的选择:

粗铣时编程原点选择在左边圆心位置,Z向选择在工件上表面Z0的位置,设置坐标系为G54;精铣时X、Y向选择在零件的中心位置,Z向选择在工件上表面为Z0的位置,设置坐标系为G55。

(4)粗加工采用分层铣削,每次铣削深度为2mm,粗铣时进刀方式为Z字斜线进刀,规划的刀路轨迹如图3-9所示;精铣时采用中心垂直进刀方式。粗精铣键槽的工序卡见表3-2。

978-7-111-45798-5-Chapter03-15.jpg

图3-9 粗加工刀路轨迹图

3-2 粗精铣键槽的工序卡

978-7-111-45798-5-Chapter03-16.jpg

宏程序的代码如下:

978-7-111-45798-5-Chapter03-17.jpg

978-7-111-45798-5-Chapter03-18.jpg

978-7-111-45798-5-Chapter03-19.jpg

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

(1)本程序虽然简单,但是它所涉及的加工工艺和数控铣编程知识相对较多,是本书出现的第一个含精加工程序实例,具有一定的综合性。

(2)比较程序中出现的两次进行机床初始化代码语句。

比较G15 G17 G21 G40 G49 G54 G80 G90和G15 G17 G21 G40 G49 G55 G80 G90,会发现这两行代码几乎一模一样,唯一区别就是G54和G55工件坐标系设立指令不一样,这就涉及数控铣削加工中多个工件坐标系的设置问题。

在采用手工编程时,对于一个工件中存在多个相同的轮廓(型腔),可以将这些轮廓单独编制成一个独立的子程序,再为每一个轮廓在工件中的位置偏移量设置一个独立的工件坐标系偏置,这样能减少在编程时进行数值运算的工作量。

另外,也可以在一个工装夹具进行多个相同工件加工,具体地讲,就是将每个工件的加工程序单独编制成一个独立的子程序,然后将每个工件设置一个工件坐标系零点偏置,在程序中采用不同的初始化指令。

箱体类工件铣削加工编程时,一般将每个面设置成一个工件坐标系,加工好一个面后,结合旋转B轴角度和工件坐标系,实现了4个面的加工,如下程序段所示:

978-7-111-45798-5-Chapter03-20.jpg

(3)由于铣削的键槽宽度较狭窄,无法采用螺旋进刀方式,采用程序语句G01 X12 Z-2 F200实现了Z字斜线进刀。

(4)在粗铣中编程原点的位置以及采用增量编程方式等情况,Z字斜线进刀后要考虑刀具的位置,见程序段G01 X[#101-12]和程序段G01 X-[#101-12]。

(5)在程序中采用循环语句WHILE[#103GT-10]DO 1…END 1,是为了区分前面过多地应用IF[…]GOTO n条件语句。

(6)在精铣键槽轮廓时,采用带半径补偿的方法,刀具切入和退出工件时采用圆弧过渡的方式,其半径应该满足以下的条件:

R1<R2<R3,其中R1为刀具的半径;R2为过渡圆弧的半径;R3为工件型腔中最小的圆弧半径。在实际编程中也可不带半径补偿,而是采用刀心编程方式。

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

我要反馈