首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

邹军:数控宏程序框架化编程

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

让我给帮帮忙,我用了不到5分钟,帮它编写好了这个程序。

我为什么能够这么快的编写出程序呢?

因为我有一套非常好用的“框架模型编程法”,现成的框架,按照框架来编写,依然一个非常好的宏程序就编写出来了。

模型化编程分为两步:

第一步:设置变量

第二步:复制案例模型

第一步:设置变量

有些变量你一看就知道如何去设置,还有些变量需要我们推理计算得到。

如何设置以及推理计算得到变量?

方法如下:

举个例子,比如在数控车上精加工轮廓曲线(如下简图):

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

那么我们来看刀路:沿着轮廓曲线走刀即可完成精加工程序。

精加工刀路就这么简单,通过G01X___ Z____ 两轴插补即可完成曲线的加工。

军哥我上面说了:通过走刀路线找出刀路规律

有什么规律呢?

分析如下:

曲线轮廓上随意取了几个点,曲线方程式中的X,Z就表示某一个点在曲线坐标系中的位置,让这个点的位置不断发生变化,并且用G01X___ Z___依次链接这些点位坐标,这就构成了曲线。

规律1:曲线方程式中的X,Z就表示某一个点在曲线坐标系中的位置,给X一个值,那么就会对应个Z值,X与Z满足方程式。(备注:这个曲线方程式中,X为半径,数车上是直径编程,后面需要转换,详见后面程序的转换)

规律2:让这个点的位置不断发生变化, 军哥以往分享过变量的自增减,在这就不在赘述,通过变量的自增减,从而使点位有规律的变化。

根据规律1:我设#24(X)为因变量, #25(Z)为自变量

备注:所谓自变量就是自身会主动发生变化,因变量,是因为其它变量变化而发生变化的变量,属于被动变化

比如:

#24=0

#25=32-[#24/2]*[#24/2]/8

…..

那么#25的结果就是32

如果#24=1那么 #25的结果就是31.969;

如果#24=2 ,那么 #25的结果就是31.875

当#24发生变化,#25也就因#24的变化而变化;#24就属于自变量,#25就属于因变量

根据规律2:我让变量#24自增,即#24=#24+0.1 (变量后面加的数值越小,那么这个曲线上的点位取的就越密集,这样加工出来的轮廓就越光滑)

备注:变量自增是有范围的,自增到多少呢?也就是不超过32,因为曲线(X)值为32

好了,军哥我一边分析一边设了变量,也就是我们设变量的思路框架是这样的:

1, 确定走刀路线,通过走刀路线找出刀路规律;

2, 有数学公式的,变量带入数学公式;

3,没数学关系公式的,可以建立数学关系式,推理求出变量;

设置完变量后,我们第二步复制案例模型结构。

军哥之前说过,能不能编写宏程序就看你心中有没有案例模型,关于案例模型军哥的宏程序系统教程有详细的思路分析,在这直接给程序:

程序如下:

%01111

T0101

S100M03

G00 X0 Z34

#24=0(从X=0处车,赋值为0)

WHILE [#24 LE32]DO1(判断曲线段车完与否)

G01 X#24 Z#25 F100

#24=#24+0.01 (变量自增)

#1=#24/2 (转换为半径)

#25=32-[#1*#1/8] (曲线方程式)

END1

G00 X80 Z100

M30

程序仿真如下:

好了,粗加工程序如何编写呢?

还是按照上面说的设变量的思路框架来分析:

假如毛坯是D34的棒料,首先确定走刀路线

上图为刀路示意图简图:

由毛坯最外(X方向)下刀,然后(Z方向)切削,抬刀,退回下刀点;

(X方向)继续下到一定深度,然后(Z方向)切削,抬刀,退回下刀点;

这样依次循环,类似G90外圆粗车循环。

通过刀路我们发现什么规律?

规律1:粗车的时候X,Z坐标点数值也满足曲线方程式,给X一个值,那么就会对应个Z值,X与Z满足方程式。

规律2:每层切深有规律的递减;(假如每层切2mm ) 第一刀:毛坯D34----D32

第二刀:D32-D30 依次类推。很容易想到军哥讲过的变量递减

根据规律1:我设#24(X)为因变量, #25(Z)为自变量

根据规律2:我让变量#24自减,即#24=#24-1 (后面减1,也就是每层切1mm深)

复制上面精加工案例,然后稍作修改(红色部位为修改的地方)

%01111(微信SOSCNC)

T0101

S100M03

G00 X34Z34 (下刀点)

#24=34(赋值为34,毛坯D34)

T0101

M03 S600

WHILE [#24GE 0]DO1(判断粗车完了没)

G90X#24 Z#25F100 (外圆粗车循环)

#24=#24-1(变量自减)

#1=#24/2 (转换为半径)

#25=32-[#1*#1/8] (曲线方程式)

END1

G00 X80 Z100

M30

程序仿真如下:

好了,军哥我经常说玩宏就是玩变量,如果把编写宏程序看做100分的化,那么设置变量就占到80分。如何去设置变量,方法是军哥的三步框架方法:

1, 确定走刀路线,通过走刀路线找出刀路规律;

2, 有数学公式的,变量带入数学公式;

3,没数学关系公式的,可以建立数学关系式,推理求出变量;

尤其是走刀路线的取舍,这将决定我们如何去编写宏程序。

军哥再举个例子:

比如下面这张图(加工中心上铣椭圆)为例子

1, 确定走刀路线(如下图)

那么刀具沿着椭圆轮廓依次走刀,然后在回到起始点,(从1-2-3-4-5在回到起点1)

规律1:由起点1走一圈在回到起点1,也就是从0度到360°。很容易想到设个角度变量来判断一圈是否走完了。

如:角度变量 ----#1

WHILE [#1LE360 ]DO1 (一圈是否走完)

规律2:刀具沿着椭圆轮廓走刀,那么轮廓上任意一点的X,Y坐标值满足椭圆参数方程式X=a*COSθ Y=b*SINθ

设:椭圆某点变量为:

#24 (X方向)

#25(Y方向)

变量代入方程式即:

#24=35*COS[#1]

#25=15*SIN[#1]

设置完变量后,我们第二步复制案例模型结构。直接上程序:

O0001

G54G00X50.Y0

S1000M3

G00G42X40.Y-5.0D1M08

G02X35.Y0.R5.0F100 (圆弧进刀)

#1=0 (角度初始值)

WHILE[#1LE360]DO1(

#1=#1+0.5 (角度增量)

#24=35*COS[#1] (X)

#25=15*SIN[#1] (Z)

G01X#24Y#25F100

END1

G02X40.0Y5.R5F100 (圆弧退刀)

G0G40X50Y0.

M30

好了,如果分层铣?程序又如何编写呢?

还是先看刀路,(如上图):

具轨迹从第一层到最后一层,每层的刀路除了深度不同外,形状与上一个刀路都是相同的。

规律1:每一层刀路轨迹都是一样,那么编写程序的时候只需要编写一层的程序(如上面程序,只有一层的程序)

规律2:深度变化,逐渐递减,很容易想到深度设变量,让变量自减,如#10=#10-1(变量#10每运算一次,深度方向下降1mm

变量设置完毕,我们第二步复制案例模型结构。

这个程序有两次判断:

第一次:判断椭圆一圈是否加工完(从0°-360°)

第二次:判断深度是否加工到尺寸

我们复制二次嵌套案例模型(一层包着一层的程序结构);

先判断一圈是否加工完,然后在判断深度是否加工到位,那么一圈是否加工完,需要放在里层,里层的一圈加工完,在跳到外层,执行深度方向的判断……

好了,直接上程序。更进一步思路上的分析推荐大家看看我系统宏教程,一步一个脚印,让你学到绝活!

O0001(微信:SOSCNC)

G54G00X50Y0.

S1000M3

#10=-2.(深度变量初始赋值 )

WHILE[#10GE-10]DO1 (判断深度方向是否到尺寸)

G01Z#10F100.

G00G42X40.Y-5.0D1M08

G02X35.Y0.R5.0F100

#1=0 (角度变量初始赋值)

WHILE[#1LE360]DO2 (判断椭圆一圈是否加工完)

#1=#1+0.5 (角度变量自增 )

#24=35*COS[#1]

#25=15*SIN[#1]

G01X#24Y#25F100

END2

G02X40.0Y5.R5F100

G0G40X50Y0.

#10=#10-1. (深度变量自减)

END1

M30

程序仿真如下:

好了,有了上面分享,加工内椭圆,如下图纸:

参数方程式X=a*COSθ Y=b*SINθ

设:椭圆某点变量为:

#24 (X方向)

#25(Y方向)

直接上程序如下:

O0001

(10DIA.)

G54G00X0.Y0.

S1000M3

#10=-2.

WHILE[#10GE-10]DO1

G01Z#10F100.

G00G41X22.Y-8.0D1M08

G03X30.Y0.R8.0F100

#1=0

WHILE[#1LT360]DO2

#1=#1+0.01

IF[#1GE360 ]THEN#1=360

#24=30*COS[#1]

#25=50*SIN[#1]

G01X#24Y#25F100

END2

G03X22.Y8.R8F100

G0G40X0Y0

#10=#10-1.

END1

M30

仿真如下:

好了,今天就分享到这里,学绝活关注邹军爱数控,让你成为有经验的编程高手。扫描关注邹军爱数控微信公众号:cnc120

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190108G1CLA300?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券