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

宏案例铣孔分享:谁实践谁NB!没有实践的学习是浪费时间!

和你共勉的两句话:

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

学透的关键点是举一反三

给大家分享宏程序实战案例中的铣孔案例

一、铣孔

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

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

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

如下图:

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

比如:

#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

%

上面程序仿真如下:

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

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券