莫莫和你们共勉两句话:
没有实践的学习是浪费时间
学透的关键点是举一反三
给大家分享宏程序实战案例中的铣孔案例
一、铣孔
说起孔加工,大家常用钻头钻孔,铰刀铰孔,镗刀镗孔等方法。钻削和镗削依旧是孔加工的最快方法,但是对于小批量生产的零件,零件种类多,可能会因为不同尺寸的孔,采取不同种类的钻头,镗刀加工。“一个萝卜一个坑”,每个规格的孔需要一种刀具。
而铣孔覆盖各种尺寸的孔,无论是开粗(无论有无欲钻底孔),扩孔,精铣(实现以铣代铰、以铣代镗),铣孔有显著的优势,尤其是用宏程序来编写铣孔程序,对孔尺寸精度的控制及其方便。
那么宏程序的优势在哪呢?
如下图:
我把孔的直径、孔深、刀具直径都用宏变量来代替,这样的好处是你加工不同尺寸的孔,都可以用此程序来加工。只需要更具图纸提供的尺寸给变量赋予不同数值即可。
比如:
#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
%
上面程序仿真如下:
我是莫莫,以上就是今天的内容了哦,你们觉得OK吗?觉得不错的小伙伴请帮忙转发至朋友圈哦,转发后可联系莫莫领取新一期UG编程视频资料哦!对了,欢迎小伙伴们踊跃留言给莫莫哦!
以下为莫莫联系方式,可添加莫莫免费领取编程资料哦!
我是莫莫,我一直在这里。
PS:莫莫每天都会更新腾讯视频,大家可以订阅我哦!今天的视频内容你们绝对喜欢哦!
领取专属 10元无门槛券
私享最新 技术干货