宏程序实战案例分享

从事数控的你要掌握的知识与技能太多,没时间详细学怎么办?没师傅带怎么办?不急!工作学习两不误,跟着邹军能进步。欢迎关注微信公众号:cnc120,获取更多干货!

清风我经常和你共勉的两句话:

没有实践的学习是浪费时间

学透的关键点是举一反三

所以,我在13年就创作了一套《宏程序实教程》,这套教程的主要特是通俗易懂,一学就会,一用就灵。

下面是这套教程中的2个案例。

1、铣孔

2、铣锥孔

一、铣孔

说起孔加工,大家常用钻头钻孔,铰刀铰孔,镗刀镗孔等方法。钻削和镗削依旧是孔加工的最快方法,但是对于小批量生产的零件,零件种类多,可能会因为不同尺寸的孔,采取不同种类的钻头,镗刀加工。“一个萝卜一个坑”,每个规格的孔需要一种刀具。

而铣孔覆盖各种尺寸的孔,无论是开粗(无论有无欲钻底孔),扩孔,精铣(实现以铣代铰、以铣代镗),铣孔有显著的优势,尤其是用宏程序来编写铣孔程序,对孔尺寸精度的控制及其方便。

那么宏程序的优势在哪呢?

如下图:

我把孔的直径、孔深、刀具直径都用宏变量来代替,这样的好处是你加工不同尺寸的孔,都可以用此程序来加工。只需要更具图纸提供的尺寸给变量赋予不同数值即可。

比如:

#1=代表:孔的直径

#2=代表:孔深

#3=代表:刀具直径

根据图纸提供的尺寸,给上面变量赋值即可。

如何编写铣孔宏程序?

开始编写程序(分析三点内容)

一、铣孔刀路分析:

刀具快速移动到下刀点,然后刀具每走一圈的同时下一定的距离至到铣至我需要的深度为止。

二、计算两点(下刀点和退刀点)

大家都知道编程的时候下刀点和退刀点很重要,无论是软件出程序,还是手工编写程序,以及现场调试程序的时候,需要重视这两点,以防刀具与零件碰撞……。

假设零件孔中心以及零件表面Z=0为编程原点

1、下刀点:如上示意图(需要计算出刀具中心到孔中心的距离)

#1代表孔直径

#3代表刀具直径

Y方向坐标是0

X方向坐标可以推算出(孔半径减去刀具半径):#6=[#1-#3]/2

知道了下刀点,G0快速移动到下刀点,程序段即:

G0X#6 Y0

Z方向坐标是工件表面Z零点,即Z0,

2、退刀点:如上示意图

铣完孔之后,刀具需要远离零件孔内壁,可以计算出[#1-#3]/2-1

注意方向:朝负方向回退1mm所以[#1-#3]/2-1,退刀程序段即

G0X[#6-1]

三,圆弧插补G17G02/G03X_Y_Z_I_J_ 格式

1、G02/G03的格式: G17G02 X_Y_Z_R 或者 G17G02 X_Y_Z_I_J_

以G02X_Y_Z_I_J_(为例子,同理G03的格式也一样)

G02后面的X_Y_Z_ 是圆弧的终点坐标数值

2、I_后面的数值是圆弧起点到圆心的距离(X方向)

J_后面的数值是圆弧起点到圆心的距离(Y方向)

上段程序G01X10Y50 。X10,Y50就是圆弧起点坐标。

G02X50 Y10。X50 Y10就是圆弧终点坐标

I0 J-40为圆弧起点到圆心的距离(I0时候可以省略不写)

备注:J_后面的数值是(Y方向)圆弧起点到圆心的距离。此句话含了两方面的信息:

数值-----(Y方向)起点50,圆心10 ,所以J的数值是40

方向-----(Y方向)朝向负,所以J-40

3、铣孔是利用G02/G03 X_Y_Z_......三轴联动实铣孔的,也就是旋转一圈的同时Z需要下一定深度,设每一圈下降深度为#5(如下图)

那么铣孔程序段为:G3X_Y_Z_I_J_

采用顺时针铣孔选择G03,G03格式X_Y_Z_后面的数值为终点坐标。

X终点坐标点:#6

Y终点坐标点:0

Z终点坐标点:#5

I(X方向)圆弧起点到圆心的距离:-#6

J(Y方向)圆弧起点到圆心的距离:0

此程序段为:G3X#6Y0Z-#5I-#6 J0,数值为零可以省略

即:G3X#6Z-#5I-#6

有了以上三点的分析,主要程序段归纳如下:

刀具快速移动到下刀点位置:

G0X#6Y0

Z1

螺旋铣孔:

G03X#6Z-#5I-#6F500.

退刀:

G01X[#6-1]F50

G0Z50.

然后在铣孔的时候套用我之前文章讲过的宏程序语句,如WHILE语句做判断:判断我设置的#5(下刀深度)与#2(孔深),当下刀深度小于孔深的时候,来实现内循环。这里面涉及一个很重要的概念:自运算,通用自运算来协助WHILE语句做判断。

我们知道宏程序一大特点是可以运算的。

比如下面程序段:

#5=1

#5=#5+1

#5的赋值是1,这1=1+1怎么可能呢?我教程中讲变量的时候说过,变量只是一个代号,不是一个具体的阿拉伯数值。比方说我有一张银行卡,里面有100元钱,现在我向卡里存了100元,那么卡的总额是200元。这个过程中,卡还是那张卡,但里面金额已经发生变化了。所以#5这张“卡”,由原来的1,存进了1,因此#5的“总额”就是2。

#5=#5+1就是自运算,大家先有个感性认识即可。

上述程序中,我把#5定义为每旋转一圈下刀深度,#2定义为总深。(#1 ~ #26,这26个变量可以自由定义,关于变量我系统教程以大量篇幅讲解,在这就不再赘述)

#5:代表每层切深

#2:代表总深

#5=2(#5初始赋值为2,为什么赋值为2,结合下面程序来讲解)

#5=#5+1(每旋转一圈下刀深度1mm,如果每圈下刀深度为2mm,那么更改为#5=#5+2,至于每圈下多深,这是加工参数的事情和刀具,零件材质等有很大关系,推进大家看看我之前的课程直播-加工参数的选取。)

完整的程序如下:

%

O0001

N2 #1=30 (孔直径)

N4 #2=10 (孔深)

N6 #3=20 (刀具直径)

N8 #5=2(之所以初始变量赋值为2,是因为零件Z=0表面为编程零点,但在实际加工中为了安全期间,Z向需要离开工件表面一定距离,比如1mm ,我就把初始变量#5赋值为1。比如工件Z表面2mm外开始切削,那么初始变量#5=2即可。)

N10 #6=[#1-#3]/2

N 12 S2000 M03

N14 G54 G90 G00 X0Y0 Z50.

N16 G0X#6Y0(G0快速移动到下刀点)

N18 Z2

N20 WHILE[#5LT#2]DO1(当加工深度#4小于孔深#2时,循环程序1)

N22 #5=#5+1(每旋转一圈下刀深度1mm)

N 24 G3X#6Z-#5I-#6F500.(G03顺时针螺旋加工至下一圈距)

N26 END1(循环1结束)

N28 G1X[#6-1](G01向中心退回1,即退刀)

N30 G0Z50.

N32 M30

%

上面程序仿真如下:

以上就是铣孔的宏程序,关于此程序的应用还有不少地方需要去考虑以及完善的,在这就不讲了,因为文章开头清风与你共勉了一句话:

没有实践的学习是浪费时间

惟多“实践”方能学到真本事,学习的过程中最大收获是从我的讲解中发现了与你实践相吻合的真理。多思考,多实践,多经历丰富你的“经验”,从而验证,补充我讲解的知识,也丰富自己的知识。

文章开头清风与你共勉的第二句话:学透的关键点是举一反三

比如铣外圆、铣锥孔、铣螺纹、铣异性槽等等,都可以由上面程序演变而来,只要你能能学透、举一反三。

下面这个案例就是上面案例的延伸应用。

二、铣锥孔或者孔口倒角

加工中心孔口倒角或者加工锥面常用倒角刀或者锥铣刀具

有些时候没有合适的刀具,我们可以采用通用的铣刀来代替倒角刀

如下图:铣锥孔

讲两个识点:

1,解决编程原点与工件坐标原点不重合

2,勾股定理

一、解决编程原点与工件坐标原点不重合

定义一个变量如#10(工件坐标原点到编程原点的距离),用G52建立局部坐标系,关于G52的讲解我系统教程中有详细分析,在这直接给结果G52X-#10Y0,这样就解决了两原点不重合问题。

二、勾股定理

已知:夹角θ的度数和AC边长,要求出BC、AB的边长该怎么求?

根据已知条件,可以得出以下几个角与边的公式:

SINθ=BC/AC

COSθ=AC/AB

TANθ=BC/AC

如果我设置个变量比如#5代表Z向每次切深,(如下图)也就是说随着#5(Z轴)深度的变化,#14按照勾股定理公式来变,加工的时候切深#5设置很小,这样就可以加工出光滑的锥面。根据勾股定律可以推算出#14=#5*TAN[#16]。

如何编写通用程序呢?套用上一个铣孔案例:

计算两点(下刀点和退到点)

1、下刀点(上图红色圈为刀具走刀路线,蓝色圈为刀具直径)

Y方向坐标是0

X方向坐标下刀点设为#6,可以推算出:#6=[#1-#3]/2-#14

2、退刀点

因为是锥孔,铣到深度后,可以直接抬刀,即G0Z2.

好了,在编写前 根据零件简图在重申下上面变量的含义:

#1= __________锥孔大端尺寸

#2=__________锥孔总深

#3=__________刀具尺寸

#16=__________锥孔夹角(单位度)

#10=__________工件坐标原点到编程原点的距离

#5=__________初始变量赋值

#5=#5+0.05自运算,即#5+0.05这个算式的运算结果赋值给#5,此时代表每层下刀深度。比如#5初始值赋值为,经过第一次运算后,#5的值为0.05,如果在运算一次此时#5的值为0.1……。

#14=#5*TAN[#16]勾股定律

#6=[#1-#3]/2-#14下刀点

每个变量代表的含义我定义完毕,下面直编写完整宏程序。

假如零件尺寸如下图:(选用D20的平底铣刀,更具图纸提供的尺寸,给下面变量赋值即可)

%

O0001

(微信:soscnc)

#1=36 (锥孔大径)

#2=5 (锥孔深)

#3=20 (刀具直径)

#5=0(下刀深度初始赋值)

#10=15(工件中心到编程原点距离)

#16=30(锥孔夹角)

S2000 M03

G54 G90 G00 X0 Y0 Z50.

G52X-#10(建立局部坐标)

Z2

WHILE[#5LT#2]DO1(当加工深度#5小于孔深#2时,循环程序1)

#5=#5+0.05(每旋转一圈下刀深度0.05)

#14=#5*TAN[#16](满足勾股定律

#6=[#1-#3]/2 -#14(下刀点)

G01X#6Y0F1200.(G0快速移动到下刀点的上方)

G3X#6Z-#5I-#6F600.(G03顺时针螺旋加工至下一圈)

END1(循环1结束)

G0Z2.

G52X0Y0(取消局部坐标系)

M30

%

仿真如下:

以上是《宏程序实战案例教程》中的一个案例分享,欢迎转载!!

注意一:如果你想获得接地气的软件(UG方向)编程教程,推荐你购买清风的UG实战编程教程1280元/套

注意二:如果你想玩透宏程序编程,让编写宏程序就向做填空题一样简单,推荐你购买清风的《数控宏程序编程----从零到精通》2.0升级版教程798元/套

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180804G1GB3F00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券