前段时间,有一哥们接了一批零件,其中有一处需要在数车上加工类似抛物线的轮廓外形,这哥们眼看没招,不知道如何编写数程序,因为他不会宏程序啊,遇到这种曲线类的零件就傻眼了。

数控宏程序举例(如何快速学会数控宏程序编程)(1)

让我给帮帮忙,我用了不到10分钟,教会了他编写这个宏程序。

我为什么能够这么快教会他编写这个宏程序呢?

因为邹军爱数控在数控编程方面摸爬滚打多年,摸索总结了不少经验和方法,教会了许多学员,其中不少人之前做操作工,现在成了工艺员,编程工程师。

在邹军我教大家编程的过程中,我越来越觉得,自己掌握的知识与技能是一个层面,如何快速教会大家又是另外一个层面。

如何快速教大家编程呢?邹军我认为,要把知识返璞归真,尤其是复杂的知识,讲解的越俗越好,这样大家才容易理解,容易记住!

好,回归到文章开头说的,如何快速教会这个复杂的宏程序呢?,现分享给大家!

零件简图如下:

数控宏程序举例(如何快速学会数控宏程序编程)(2)

面对上面图纸,这哥们傻眼的原因是:

一是看不懂Z=X²/8 什么意思。

二是曲线上的点位坐标无法计算出来。

其实邹军我也不知道Z=X²/8这个曲线数学公式,也没必要去深究,这是数学上的事情,只知道给X一个数值,比如X=0 那么对应Z坐标Z=0 ,X=1 那么Z=1/8….

我给他讲了两点:

第一点:数控宏程序是需要设置变量

那么我根据这个数学公式设置两个变量。

#1= 代表X方向坐标任意数值。

#2= 代表Z方向坐标任意数值。

那么#1与#2的关系是:#2=#1*#1/8 如果我给变量#1赋予不同的数值,那么#2的数值也就一一对应。

我们知道,不论是圆弧、直线或者曲线,它都是由无数个小点组成的,然后点与点之间用小线段连接起来,从而构成了直线,圆弧,或者曲线。如果点的位置相互紧密,那么加工出来的轮廓就光滑。如下图:

数控宏程序举例(如何快速学会数控宏程序编程)(3)

我给变量#1赋予不同数值,如果#1的值越小,对应#2的值也会越小,也就是点位置紧密,并且用G01X___ Z___依次链接这些点位坐标,这样加工出来的轮廓就光滑。

如何给变量#1赋予不同的数值呢?

#1=0.1,#1=0.2,#1=0.3……假如取一千个,一万个数值,这不是要写成千上万行?

显然不能这么取数值,宏程序中变量之间可以赋予数学公式的,比如#1=#1-0.1 ,右边(#1-0.1)这个公式计的值 赋予给左边#1。(这在宏程序中叫变量的自减,在下面程序中我会给大家简单分析如何自减,就目前而言只需要明白,右边算式计算的结果,会赋值给左边变量#1即可)。

第二点: 利用一个宏语句来控制程序运行

比如WHILE [ ]DO 语句。

是两个英文单词,WHILE 意思是当………的时候,DO意思是做某事情。

组合起来的意思是:当……..时候就做某事情 。

比如:当我赚到1000W的时候,我就买辆跑车,这里"赚到1000W"是条件, 如果条件达到了1000W,我就执行买跑车这个想法。

比如:变量#1的值,只要大于0,我就执行我规定的程序。

好了,明白了上面二点,现在开始编写粗加工程序。

111

V:SOSCNC

N1 T0101

N3 S100M03

N5 G00 X34. Z0.5 (快速走到下刀点)

N7 #1=34 (#1的初始数值,赋予34.也就是第一个点位取值34)

N9 WHILE [#1GT 0 ]DO1 (判断是否车到尺寸)

N10 #1=#1-2(右边算式计算的结果,赋值给左边变量#1)

N12 #2=#1*#1/8 (曲线数学公式)

N14 G01X#1 Z-#2F0.1

N16 G01U1

N18 G0Z0.5

N20 END1

N24 G0 Z200.

N26 M30

程序分析如下:

1, 开始运行程序,机床由上往下依次运行,当运行到N7程序段时候,机床明白了变量#1的值为34,我根据零件毛坯来赋的值(毛坯D34)

2, 接着程序继续运行,到N9程序段,机床做了下判断, 中括号中的条件是#1的值大于0,满足条件,那么就执行WHILE 与END1 之间的程序段,也就是N9~N20程序段(不满足条件就执行END1后面的程序段,也就是N20后面的程序段)

3, 接着程序继续运行N10程序段,由于#1=34,所以,右边34-2的结果赋值给了左边的变量#1,此时#1的值为32了

4, 程序继续往下运行N12#2=#1*#1/8,根据公式,计算出了#2(也就是对应的Z值)

5, 程序继续往下运行N14 G01X#1 Z-#2F0.1 ,X,Z同时走刀(X,Z坐标值在在曲线公式上)

6, 程序继续往下运行,一至到N20 END1 程序段,又返回N9程序段,(上面说了只要条件满足就会在N9~N20程序段运行)

7, 程序返回N9程序段,然后做了下判断,此时的#1为32,还是大于0的,条件满足,继续依次运行 N9~N20程序段

8, 程序继续运行N10程序段,由于此时的#1是32,所以32-2的结果赋值给了左边的变量#1,此时#1的值为30了

9, 程序就这么运行,至到#1的结果不大于零,条件不满足(此时也代表粗加工完成)就会执行N20 END1后面程序段,即N24 G0 Z200.;N26 M30程序结束

程序仿真如下:

数控宏程序举例(如何快速学会数控宏程序编程)(4)

关注邹军爱数控,获取更多宏程序的干货!

,