点击上方,关注我哈
(文章底部可以评论,欢迎对文章进行点评和知识补充)
邹军写文章的目标:让每篇文章都能解决你一个问题
今天给大家分享两个案例
比如下图零件端面上均匀分布了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