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

科技   2024-10-20 20:03   广东  

点击上方,关注我哈

(文章底部可以评论,欢迎对文章进行点评和知识补充)

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


今天给大家分享两个案例

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

OP10钻孔

OP20铣孔

加微信:Yuki7557 送数控编程教程一份

一、钻孔

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

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

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  (注销局部坐标系)  

 

用心看一下上面程序。

用心看下右侧图示。

简单吗?

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


 (在没有人指引你的时候,你靠自己的能力,或者靠自己一点点去打通去积累,是很慢的,如果别人把自己的经验倾囊相授,你可以少走很多弯路。【跟邹军学数控编程】,让你成为经验丰富的编程高手。邹军这套《宏编程》仅需1280元,邹军老师一对一指导,18年编程经验传授,学会为止。学习微信:yuki7557 

数控编程教学
数控基础编程教学,数控编程初学者的必备学习平台。
 最新文章