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

算法与程序流程框图设计

时间:2023-06-16 理论教育 版权反馈
【摘要】:图3-13 铣削一层内孔刀路轨迹示意图图3-14 螺旋铣平面刀路轨迹示意图图3-15 螺旋铣削三维刀路轨迹示意图2.根据算法以及流程框图编写加工的宏程序代码程序1:铣削内孔精加工的程序实例3-2 程序1编程要点提示:此程序是铣削内孔的精加工程序,适用于已去除大量余量的精加工轮廓,如用于粗加工,会引起扎刀。子程序嵌套要注意程序之间的衔接。

算法与程序流程框图设计

1.算法的设计

(1)从以上零件图、使用的刀具以及毛坯情况综合分析。

3-3 铣削内孔的工序卡

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

本实例孔加工属于铣加工中较为常见的方式,考虑到为盲孔形式,可以采用键槽铣刀进行铣削内孔而非采用钻孔方式,其中进刀方式有多种选择,如采用中心垂直下刀、Z字斜线进刀以及螺旋进刀方式。

(2)本孔的铣削深度为30mm,深度相对较深,材料又为钢件,可以采用分层铣削内孔,Z向每次进给0.5mm。可以采用调用子程序的方式,也可以设置#100号变量来控制深度的变化来实现分层铣削。采用调用子程序方式铣削内孔的思路如下:

1)把铣削一层内孔程序编制成一个独立的程序,在主程序中调用该子程序。

2)铣削一层内孔的程序有以下几种方式来实现:

①采用G02\G03铣削整圆。

②采用圆的参数方程,G01直线拟合方法来铣削整圆。

③采用圆的解析方程,G01直线拟合方法来铣削整圆。

(3)设置#100号变量来控制孔的深度变化。

设置#100号变量,并赋初始值为0,通过Z轴进刀至一层铣削深度后,铣削一个整圆。整圆铣削完毕后,通过#100=#100-0.5;IF[#100 LE 30]GOTO 10条件判断语句来决定是否退出铣孔循环,程序设计的流程框图如图3-12所示,规划铣削深度方向一层内孔的刀路轨迹如图3-13所示。

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

图3-12 程序设置的流程框图

(4)可以采用螺旋铣方式加工内孔,用于螺旋铣削的切削用量如果为恒定值,则切削力比较平缓,能够有效减少让刀现象,保证孔深度方向尺寸的一致性。采用子程序嵌套的方式实现螺旋铣孔的程序编制,也可以设置一个变量来控制深度方向的变化。

(5)规划螺旋铣孔的平面刀路轨迹如图3-14所示,是粗铣长度和宽度方向余量的刀路情况;规划螺旋铣削三维刀路轨迹如图3-15所示,是铣削内孔的空间刀路轨迹情况。

(6)在铣削每层整圆的过程中,可以采用刀具半径补偿或刀心编程的方式;切入或退出工件时,可以采用直线过渡的方式或用圆弧过渡的方式。

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

图3-13 铣削一层内孔刀路轨迹示意图

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

图3-14 螺旋铣平面刀路轨迹示意图

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

图3-15 螺旋铣削三维刀路轨迹示意图

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

程序1:铣削内孔精加工的程序

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

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

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

(1)此程序是铣削内孔的精加工程序,适用于已去除大量余量的精加工轮廓,如用于粗加工,会引起扎刀。

(2)程序采用刀心编程方式,没有使用刀具半径补偿,而设置#101号变量控制刀具的半径,当刀具发生改变时,只要修改#101号变量值即可,增加了程序的通用性。

(3)#103=#102-#101控制刀具在孔内最大的回转半径,也是内孔的加工起点。

(4)进刀方式采用直线方式,该方式的弊端会在工件表面留下进刀痕迹,解决该问题的参见程序O3006。

程序2:采用调用子程序的方式实现分层铣削内孔的程序

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

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

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

(1)本程序采用子程序嵌套的方式,实现了分层铣削内孔。子程序嵌套要注意程序之间的衔接。调用子程序时,要注意调用前X、Y、Z轴的位置和每次铣削深度,它们共同决定了子程序调用的次数。下面结合本程序来具体分析:

调用子程序X、Y位置在内孔的圆心位置、Z轴在工件表面(Z0.5)的位置参见程序中的语句:G01 Z0.5 F1000,内孔铣削深度为30mm,每层铣削深度为0.5mm,所以调用一级子程序O3007的次数为61次。

程序O3007采用增量(G91)方式编程,在子程序O3007调用结束后,要转换为绝对值(G90)方式编程,否则会出现不正确的移动。

子程序O3007调用结束后,X、Y位置在内孔的圆心位置、Z轴在工件内部(Z-30处),在返回主程序O3006后,Z轴要先抬刀并移动到安全平面,不能以三轴联动方式退刀。

(2)铣削整圆的程序格式为:G02\G03I_J_K_或采用圆的参数(解析)方程计算出相应点坐标的位置,然后利用G01直线插补功能(拟合法)铣削整圆,绝不能使用G02\G03X_Y_Z_R_的格式铣削整圆。

程序3:采用#100号变量控制深度变化实现分层铣削

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

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

(1)程序O3009和程序O3006的区别在于:程序O3006采用子程序嵌套的方式实现分层铣削内孔宏程序代码,而程序O3009通过设置#100号变量和条件判断语句IF[#100 LT 30]GOTO 10的方式来控制程序执行的流向,实现分层铣削内孔。

(2)注意比较程序O3009和程序O3006之间的区别,通过对这两个程序的比较学习,可以掌握子程序嵌套和宏程序编程之间的区别,以便在实际编程中灵活应用。(www.xing528.com)

(3)本程序代码是采用刀心编程方式,而没有采用刀具半径补偿方式,请读者总结各自编写出的程序代码的不同之处。

程序4:采用子程序嵌套方式编写螺旋铣削内孔的宏程序代码

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

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

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

(1)该程序是采用调用子程序嵌套的方式,实现了螺旋铣削内孔。

(2)螺旋铣削主要是利用数控系统螺旋插补指令G02/G03,这种螺旋式加工,采用铣刀的侧刃切入工件,而且吃刀量是由0逐渐增大至规定值,对于每层铣削深度,采用宏变量实现分层切削工件,在铣削过程中切削力比较平缓,因此能被广泛用于各类孔加工。

在本实例中,结合宏编程变量#100,通过赋值语句#100=#100+0.5,变量值逐渐递减,即每调用一次子程序O3012,#100号变量值就减少0.5mm,使得能够呈螺旋线形式分层铣削工件,该螺旋线运动方式,需要三轴联动来完成,参见程序中的G02 I-[#103]Z[0-#100]语句,该语句实现一层的螺旋铣削内孔。

(3)由于是以呈螺旋线方式逐渐切入工件,当子程序O3012调用完毕时,圆孔内一面会留有一定的残留余量没有加工,而另一面则全部加工完毕。对于通孔铣削,只需将调用的次数增加一次就可以解决这样的问题。而对于盲孔铣削,且有尺寸要求的,不能像采用通孔铣削办法一样将调用的次数增加一次,具体解决办法参见下面叙述内容。

究其原因:是采用了G02 I-[#103]Z[0-#100]的语句,如果采用G03I-[#103]Z[#100],则残留余量的方向正好相反。

(4)子程序O3012调用完毕时,圆内会有一定的残留余量。可以在调用螺旋线铣削内孔的子程序结束后,让Z轴在当前位置采用G02/G03 I_语句铣削一个整圆,见本程序中的G02I-[#103]的语句。

程序5:采用调用子程序嵌套结合刀具半径补偿方式完成螺旋铣削

说明:在此仅编制精加工的程序代码,根据铣削加工的工艺要求,在精加工时,采用刀具为φ10mm的四刃平底立铣刀(为1号刀)来提高加工效率,转速为3000r/min,进给量为1000mm/min,请注意和程序O3010之间的区别。

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

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

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

(1)本程序采用刀具半径补偿和螺旋进刀方式来铣削内孔,用子程序嵌套方式来完成程序编制,注意和程序O3010中螺旋铣削内孔宏程序代码的区别,同时注意带刀具半径补偿的程序代码和不带刀具半径补偿的程序代码之间的区别。

(2)本程序采用增量(G91)方式编程,增加了程序的灵活性。对于多个相同直径的孔加工,只需改变孔的坐标位置即可;对于多个不同直径的孔加工,只需改变刀具半径补偿值就可以直接调用该程序进行加工。

(3)该程序是子程序嵌套的典型应用,采用三层子程序嵌套进行编程。

程序6:采用设置#100号变量控制深度变化的宏程序(相关说明参见程序5)

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

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

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

该程序和程序O3017的编程思路完全一样,请读者自行分析。

程序7:螺旋进刀方式包含粗精铣的宏程序

说明:在此为了更好地说明粗加工螺旋铣削的宏程序编制算法和思路,特意使用刀具半径为8mm的刀具(1号刀具)来进行粗加工,其转速为2000r/min,进给量为800mm/min。

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

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

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

(1)程序O3019和程序O3018的区别在于:程序O3018是精加工程序,程序O3019是带有粗加工的程序。

(2)程序O3019粗铣的思路大致为:采用同心螺旋圆的方法,铣削螺旋半径为5mm的螺旋圆,接着铣削螺旋圆残留余量,参见程序中G02 I-[#101]的语句,再通过#101=#101+5语句来逐渐增大螺旋圆的螺旋半径,通过IF[#101 LE 15]GOTO 10控制语句使螺旋半径逐渐增大至内孔半径。

程序8:利用圆参数方程螺旋铣削内孔的宏程序

说明:本程序中的刀具采用半径为5mm的键槽铣刀,其转速为1000r/min,进给量为300mm/min。

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

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

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

(1)程序O3020是根据螺旋线插补指令G02/G03 X_Y_Z_I_J_K_R_的编程思路,结合宏变量、圆参数方程编制出来的螺旋铣削内孔程序代码。

(2)编制该宏程序代码,关键步骤是控制X、Y、Z三轴的变化量,下面结合程序中的语句详细分析:

1)X、Y轴方向变化和角度变化的对应关系。

根据圆参数方程可知,角度的变化范围是0~360°,每一层要铣削的深度为0.5mm,其中X、Y值随着角度的变化而变化,可以利用三角函数关系得出X、Y值和角度之间的对应关系,见程序中的语句:

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

2)Z层深度的变化和角度变化之间的关系。

数学关系上分析可知,Z层深度的变化和角度没有直接的关系,在此采用分层铣削内孔且每次铣削深度为0.5mm。

从采用G02/G03 X_Y_Z_I_J_K_R_指令插补螺旋线的刀路轨迹可知:螺旋线插补是X、Y、Z三轴联动,由加工起始位置进给到加工目标位置的运动。其中任意时刻的位置由数控系统控制,但是有一点可以肯定:X、Y、Z任意时刻的位置按照一定的规律相互协调。

X、Y位置的变化被角度等分成360份,可以将每层Z深度等分成360份,这样X、Y、Z任意时刻的位置都可以用角度来控制,参见程序中以下语句:

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

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

我要反馈