分享

邹军老师:不管你是谁,只要会普通G代码,让你100%搞懂宏程序。

 阿明哥哥资料区 2020-03-29

邹军写文章的目标:让每篇文章都能解决你一个问题

今天给大家分享两个案例

比如下图零件端面上均匀分布了60个孔,要求:

OP10钻孔

OP20铣孔

一、钻孔

要想编写出钻孔程序,主要问题是求出孔的点位坐标。

根据图纸提供的信息,已知条件:

1、360度均布分布的孔,也就是每6度一个孔。

2、孔分布在直径为D1200的圆周上。

如下图:

如何求出任意点#24(X方向坐标点);#25 (Y方向坐标点)呢?

我们回顾下数学中的三角函数,如下图

已知角度#5和斜边长度,要求出#24,#25,根据三角函数公式,可以得出:

COS[#5]=#24/600

SIN[#5]=#25/600

那么:

#24=COS[#5]*600

#25=SIN[#5]*600

其中#5角度变量,角度#5的变化规律为:每次递增6度,即#5=#5+6

分析到这清风我直接上程序如下:

二、螺旋插补铣

如何铣孔,还是来个图直观,见下图。

上图的走刀路径很像弹簧吧。刀具同时在圆弧路径(X和Y)和轴向(Z)上移动。也就是说通过G02/G03 X_ Y_Z_......三轴联动实现插补铣。

现在我们来个具体的简图,来编写螺旋插补铣孔 宏程序吧!首先看到这个简图,我们要得到几个信息:

孔的直径是#1,孔深#2,刀具直径#3。

有人会奇怪,孔的直径,刀具直径等都是变量,怎么不是具体的数!

因为我想给#1,#2,#3等变量赋予不同值,便可以加工出不同大小及深度的孔。

在开始编写程序前我们先做个刀具路径路分析:

首先刀具快速移动到下刀点, 然后刀具每走一圈的同时下一定的距离(简称 每圈距),至到铣至我需要的深度为止。(假设 圆心为G54圆点,顶面为Z0面 )

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

上图#1代表被加工孔的直径,#3代表刀具直径

那么下刀点:

X方向坐标点是:#6=[#1-#3]/2,也就是孔半径减去刀具半径。

Y方向坐标是:0    

退刀点坐标:

铣完孔之后,刀具需要远离零件孔内壁,可以计算出#6-1.。

注意方向:朝负方向回退1mm所以[#1-#3]/2-1。

上面讲了螺旋插补铣的刀路,每旋转一圈的同时Z需要下一定深度,至到铣至我需要的深度为止

重要的事说三遍:

每旋转一圈的同时Z需要下一定深度。

每旋转一圈的同时Z需要下一定深度。

每旋转一圈的同时Z需要下一定深度。

此时你能联想到清风我上面讲过的某个知识点么?

是不是和变量的自增减有关?

至到铣至我需要的深度为止。

至到铣至我需要的深度为止。

至到铣至我需要的深度为止。

此时你能联想到清风我上面讲过的某个知识点么?

是不是可以利用IF[ ] GOTO语句,当铣至我需要的深度后,程序就跳转。

变量自增:比如变量#4

法拉克的格式为:#4=#4+1  ,后面的+1代表每运算一次变量#4就增加1。(当然,根据需要你也可以+2,代表每运算一次变量#4就增加2。)

IF [  ]  GOTO语句:

如果变量#4的值小于#2,那么就跳转至指定的程序段,比如N1。如果#4的值大于#2,那么程序就往下运行,(也就是说加工到深度了。)程序格式如下:

N1

……

…….

IF [#4LT #2]GOTO  1

好了,有了上面的分析,清风我把上面的分析归纳如下:

下面开始编写宏程序

螺旋插补铣孔程序如下:

%O0001

#1=10 (孔直径)

#2=30 (孔深)

#3=6(刀具直径)

#4=0  (Z的初始变量)

#6=[#1-#3]/2 (刀具中心的回转直径,即下刀点)

S2000 M03

G54 G90 G00 X0 Y0 Z50.

G0X#6 Y0(G0快速移动到下刀点的上方)

Z1.

N1#4=#4+1(每圈距)

G3I-#6Z-#4F500.(G03顺时针螺旋插补加工程序)

IF[#4LT#2]GOTO1(当加工深度#4小于孔深#2时,就跳转至N1程序段,从N1程序段又依次往下运行。)

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

G0Z50.

M30

%

整个程序的工作步骤,清风给您分析一遍。

1,       程序从开始运行,读取#1,#2,#3,#4,#6的数据。

2,       程序快速移动到下刀点上方Z=1处。

3,       当运行到N1#4=#4+1时,由于之前#4的值为0,通过运算0+1=1,此时#4的值为1.。

4,       接着往下运行读取G3I-#6Z-#4F500.螺旋插补铣了一圈。

5,       接着往下运行,遇到IF语句,系统判断了下,#4的值是1,小于#2的值,于是就跳转至N1

6,       接着运行N1#4=#4+1,由于之前#4的值为1,又运算了一遍1+1=2,此时#4的值为2.。

7,       遇到螺旋插补程序段G3I-#6Z-#4F500 ,又铣了一圈。

8,       接着往下运行,遇到IF语句,系统判断了下,#4的值是2,小于#2的值,于是就跳转至N1

9,       程序又往下运行,一直到IF语句,系统判断了下,当#4的值不小于#2值的时候,系统知道,条件不满足了,于是就执行IF 下面的语句,即:G1X[#6-1]。

10,   接着运行G0Z50.至到M30

程序仿真如下:

好了,上面就是螺旋插补铣孔宏程序。但是工件坐标系是以孔为中心来编写的。

而实际图纸的孔是在D1200的外圆上,怎么解决呢?

清风给您分享一个,利用局部坐标G52,来解决编程原点不重合问题。

在工件坐标系(G54-G59)内再设定子坐标系,这个子坐标系叫局部坐标系 。

格式:

G52 X_ Y_ Z_   (设定局部坐标系)

……….

G52 X0 Y0 Z0  (注销局部坐标系)  

用心看一下上面程序。

用心看下右侧图示。

简单吗?

很有用,不信,你现在试试!

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多