
宏程序代码
-
2023年2月16日发(作者:政工师考试)第一章宏程序的基础
1.1概述
一、宏程序的分类
首先我们来讲一下宏程序的分类,A类和B类。
首先在数控车系统比较老的时候,我们系统里
面有A类宏,A类宏格式为G65格式,现在已
经基本淘汰。随着科技发达,系统的升级优化,
现在的数控系统大多支持B类宏程序,总体而
言,现在B类宏是一个主流发展趋势,所以接
下来我们的实例讲解都以B类宏程序为例。
二、宏程序的概念
简单来理解宏程序是什么?可以这样理解,宏
程序就是利用数学公式,函数等计算方式,配
合数控系统中的G代码编制出的一种程序,主
要加工一些像椭圆,曲线,各类大螺距螺纹和
刀具路线相识的一些零件。随着科技发达,像
椭圆,抛物线,等线性零件,用软件或则系统
自代G代码可以完成加工,而大螺距异型螺纹
这类零件,软件还没达到成熟,所以我们学会
宏程序在加工中可以起到一个非常大的作用。
可以弥补多年来数控车对大螺距螺纹的编程难
的一个提高。
三、宏程序的特征
1.赋值
在宏程序中我们通常用法最多的就是变量,比
如:
#1=1它就是一个变量。我们把这一过程,称为
赋值。也就是说,我们把等号后面的数值1,赋
值给#1。而现在#1的值就等于1,也可以理解
为#1就是一个代号,用来代替数值1。
2.变量和应用
比如:#1=2(把数值2赋值给#1)
#2=1(把数值1赋值给#2)
#2=#1(程序从上往下执行,思考一下现在#2的
值等于多少?)
解:当程序执行第一步的时候#1的值等于2,
当执行第二步的时候#2的值等于1,当执行第
三步的时候这里要注意了,刚才讲过赋值过程,
是等号后面的值赋值给等号前面,所以当#1在
第一步赋值以后,#1已经等于2了,所以在执
行第三步的时候#2的值应该等于2,不在是第
二步的1了。从这里我们可以看出,当程序中
有相同的变量#的时候,后面的#号代替前面的
#号。
比如:#1=2
#1=3
最后结果#1的值因该是等于3的。所以说后面
的代替前面的。
四、变量的取值范围
1.局部变量(#1-#33)
什么叫局部变量,局部变量就是在局部或则可
以理解为在单个程序中有效。断电以后系统自
动清零。
2.公共变量(#100-#199,#500-#999)
公共变量和局部变量的区别在于,局部变量是
在局部,或则单个程序中有效,而公共变量是
指如果一个程序同时拥有主程序和子程序的情
况下,在主程序中如果已经赋值,在子程序中
可以不用从新赋值,可以共用。而#100-#199和
#500-#999的区别在于,前者断电清零,而后者
不会清零会一直保存在系统内部。比如:
#500=TAN[15]
#500一旦赋值就将保存在系统内部,下次可以
直接调用#500使用。
3.系统变量(#1000-#17200)
系统变量是用于我们机床系统储存一些刀补数
据参数等等的东西,我们可以不用管它,不会
用的,慎用)
总结:一般情况下我们写程序用#1-#33,当有子
程序的时候我们用#100-#199.
五、宏程序中常用的计算
1.加法运算
例如:#1=2
#1=#1+3那么#1的值等于2+3=5
2.减法运算
例如:#1=3
#1=#1-1那么经过计算我们的#1的值等于3-1=2
3.乘法运算
程序中用*号来代替乘法
例如:#1=5
#2=#1*2那么计算出来#2的值等于5*2=10
4.除法运算
程序中用/号来代替除法运算
例如:#1=10
#1=#1/2那么经过计算#1的值等于10/2=5
六、常用三角函数运算
(正切)
例如#1=2*TAN[20]中括号里面是角度
(正玄)
例如#1=3*SIN[3]同上
(余玄)
例如#1=COS[15]
、ACOS、ATAN(反三角)
(数学中的开平方的意思,和数学中根
号一样)
例如#1=SQRT[9]那么计算出来#1的值等于3
七、宏程序的常用符号和含义
GT(大于)
GE(大于或等于)
LT(小于)
LE(小于或等于)
EQ(等于)
NE(不等于)
ABS(绝对值)
AND(与)
OR(或者)
八、常用的语法和应用
1.无条件转移GOTOn(n表示数值)
例如:GOTO01此程序段的意思是当程序中执行
到这一程序段的时候无条件跳转到程序段中N1
的地方,执行N1后面的程序段。
M3S500G99
T101M08
GOTO10(当程序执行到这里的时候,直接跳
转到N10那个程序段执行M30,跳过了G0那
一步,所以这叫做无条件跳转,和我们一般程
序中跳段功能一样)
G0X100.Z100.
N10M30
2.有条件跳转IF[条件表达式]GOTOn
例如:IF[#1GT15]GOTO10从这段程序当中,
我们这样理解,如果中括号里面的条件满足,
那么就执行后面的GOTO跳转语句,如果中括号
里面条件不满足,那么不执行后面的GOTO跳转,
执行后面一个程序段。
我们简单来写一个程序:
M3S500G99
T101M08
N10#1=30(把数值30赋值给#1)
IF[#1LT50]GOTO10(首先判断中括号是不是满
足条件,如果满足执行跳转,不满足执行下一
步)
M30
从这个程序中我们可以发现当#1=30的时候,我
们执行条件判断,我们来判断一下,#1现在等
于30,那么重括号里面就可以理解为30小于
50,现在条件满足。所以他会执行后面GOTO
跳转语句,跳转到N10地方继续执行)
3.强制赋值语句IF[条件表达式]THEN(执行语句)
例如:IF[#1GT20]THEN#1=20(我们这样来理解
这个语句,如果#1大于20,那么#1等于20,
也就是说和上面一样,中括号里面条件满足的
话,执行后面THEN语句,如果不满足,不执行
后面then语句。)
写一段简单程序:
#1=3(把数值3赋值给#1)
#1=#1-5(把#1-5计算出来的值从新赋值给#1,
也就是3-5=-2,现在#1=-2)
IF[#1LT0]THEN#1=0(强制赋值,如果#1小于0,
那么强制让#等于0)
M30
我们来分析一下上面程序段,当我们#1执行完
减法运算以后#1的值已经等于-2,那么我们在
执行强制赋值语句的时候我们来判断一下中括
号里面条件是不是满足,-2小于0,条件满足,
所以执行后面THEN语句,如果不满足的时候不
执行THEN语句)
4.条件判断语句WHILE[表达式]DOn(n为数值,
取值范围1-99)
ENDn(n与开头n的数值对应)
例如:WHILE[#12GT50]DO1
END1
下面写一个程序段:
#1=60
WHILE[#1GT50]DO1
G0X#1
G1Z-20.F0.2
G0U1.Z1.
END1
M30
这个程序当条件判断语句里面中括号里面条件
满足的时候执行DO1和END1中间的程序段,
如果条件不满足,执行END1后面的程序段M30。
以上介绍的语法格式用法,以FANUCoi
系列,广数,三菱系统为例。西门子,宝
源,新代等系统以说明书为准!!!
第二章宏的入门
实例1.单外径粗车宏的应用
本实例介绍一个简单的车削外径的宏程序,目的为
了让读者熟悉宏语句用法和逻辑。
上图为一个单一外圆车削图,材料为直径50的棒料,
车削到直径30,长度30.
图纸要求,平面见光就行,采用宏程序粗加工,每
刀吃刀量为3毫米。
2.0工艺分析
1.采用3爪自定心卡盘夹持直径50,台阶爪定位左
端面。
2.选择加工刀具,选用90度外圆机架刀车刀。
3.0宏程序编程思路
1.模仿G71路线。
2.毛培直径50赋值给#1,通过毛培每次递减,实现
车削到指定直径。
3.图纸要求直径30赋值给#2
4.吃刀量赋值给#3,每层吃刀量为3.
4.0加工程序编程与注释
O0010
M3S300G99
T101M08
G0X51.Z10.
Z0.
G1X-0.7F0.12(平端面)
G0W1.X50.
#1=50(毛培赋值)
#2=30(图纸要求尺寸)
#3=3(吃刀量赋值)
N10#1=#1-#3(利用减法运算,计算出每一层的X值)
G0X#1(X进刀)
G1Z-30.F0.12
G0U1.Z1.
IF[#1GT#2]GOTO10(如果#1大于#2,那么执行跳
转到N10的地方执行后面程序,如果不满足,执行
后面一步)
G0X120.Z130.
M30
程序编制完成,我们来检查一下这个程序对不对,
首先我们来看#1=#1-#3这一步,当#1等于50,#3=3
的时候,我们就因该是50-3=47,然后把47从新赋
值给#1,当执行完一刀外径车削以后,我们条件判
断,如果#1大于#2,也可以理解为如果47大于30,
跳转到N10继续执行N10后面程序段,现在47明
显大于30,所以跳回N10的地方,继续执行,当跳
回N10以后,#1=#1-#3,现在的#1应该是前面计算
出来的47,也就是说#1现在等于47-3=44,然后在
执行外径车削,条件判断。但是我们现在来想一下,
当他一直这样循环,循环6次以后,每次吃刀量3,
也就是50-3*6=32,当#1等于32的时候,#1任然大
于#2,所以他会继续跳转N10,循环第七次,当第7
次执行#1=#1-#3的时候,结果#1=32-3=29,然后在
执行G0X#1,也就是G0X29.通过这里我们就可以看
出如果程序这样编制,它会过切一个毫米,也就是
说本来图纸要求直径为30,现在它车到了直径29,
所以报废!下面我们看一下下面的程序怎么改进。
改进后程序如下:
O0010
M3S300G99
T101M08
G0X51.Z10.
Z0.
G1X-0.7F0.12(平端面)
G0W1.X50.
#1=50(毛培赋值)
#2=30(图纸要求尺寸)
#3=3(吃刀量赋值)
N10#1=#1-#3(利用减法运算,计算出每一层的X值)
IF[#1LT#2]THEN#1=#2(强制赋值语句,如果#1每次
递减3,当它小于了我们图纸要求直径30的时候,
强制让#1=30)
G0X#1(X进刀)
G1Z-30.F0.12
G0U1.Z1.
IF[#1GT#2]GOTO10(如果#1大于#2,那么执行跳
转到N10的地方执行后面程序,如果不满足,执行
后面一步)
G0X120.Z130.
M30
从这个优化过的程序我们可以看到,其实我们就在
#1=#1-#3这一步计算后面加了一个强制赋值语句,
防止过切,通过这一个强制赋值语句,刚才第一个
程序的问题得到解决!接下来我们来讲解一下还有
一种情况,如果IF[#1GT#2]GOTO10这个条件判断,
把GT大于换成GE大于或等于,会出现什么情况呢?
我们来看一下,当换成大于或等于以后,也就是说
当我们#1大于或者等于只要满足其中一个条件他就
执行GOTO10语句,继续循环,我们现在已经加了
强制赋值语句,#1已经等于#2,但是现在条件判断
任然满足,所以他会继续跳转N10,从而出现一个
问题,他会一直在循环下去,停不下来了。。。。。。。。
这个我们把它称为死循环!下面我们来解决一下死
循环的问题,程序继续优化,如下:
O0010
M3S300G99
T101M08
G0X51.Z10.
Z0.
G1X-0.7F0.12(平端面)
G0W1.X50.
#1=50(毛培赋值)
#2=30(图纸要求尺寸)
#3=3(吃刀量赋值)
N10#1=#1-#3(利用减法运算,计算出每一层的X值)
IF[#1LT#2]THEN#1=#2(强制赋值语句,如果#1每次
递减3,当它小于了我们图纸要求直径30的时候,
强制让#1=30)
G0X#1(X进刀)
G1-30.F0.12
G0U1.Z1.
IF[#1EQ#2]GOTO20
IF[#1GE#2]GOTO10(如果#1大于#2,那么执行跳
转到N10的地方执行后面程序,如果不满足,执行
后面一步)
N20G0X120.Z130.
M30
从上面程序中我们可以看出,我们在执行完一个外
圆车削路线后面加上了一步IF[#1EQ#2]GOTO20如果
#等于#2那么跳转到N20的地方执行G0X120.Z130.
如果#1不等于#2,继续执行下面一步程序段,通过
这一步我们可以达到一个防止死循环的作用。程序
完美运行!
总结:
1.赋值的应用。
2.减法运算的应用
3.有条件转移的应用
4.强制赋值语句的应用
5.对宏程序循环体的认识
今天我们讲的课程虽然简单,但是里面包含了学习
宏程序必须的语法和逻辑思维,看完教程仔细思考,
一定务必把这一个实例完全理解透彻在学习下一课
内容,教程都是循循渐进的,如果这一课内容不能
理解透测后面内容根本无法学习,多动手,多思考
是学习宏程序的关键!文字教程配合视频讲解更通
熟易懂,希望各位学者多多努力。
第三章宏程序在深孔钻
削的应用
今天我们来讲解一个钻深孔的宏,我们都知道我们
在钻深孔的时候由于钻头难以冷却,铁销难以排出,
会造成钻头寿命减短,卡削,严重会断钻头,今天
我们利用宏程序可以让钻头得到冷却,铁销容易排
出,合理保护刀具寿命,我们来看下图:
从上图可以看出,我们需要钻孔直径为12,长度100,
我们一般G代码G74循环代码,难以达到理想,效
果,所以我们采用宏程序,每次钻深2毫米,然后
快速退刀到Z10.地方,带出铁销,钻头冷却,然后
在快速进刀到离上次钻削深度0.5的地方继续钻孔,
重复同一动作,直到钻孔深度到达。
图纸要求:
1.每次钻深2毫米,退刀,排铁销,冷却钻头。
2.平面见光
3.防止钻孔偏,先用中心钻打引孔。
刀具使用:
1.90度平面外径车
2.中心钻
3.直径12的钻头
装夹:采用三爪自定心卡盘,夹持毛培直径30,以
左端面定位。
数控程序与注释如下:
O0010
M3S1000G99
T101M08(平面刀)
G0X31.Z10.
Z1.
G1Z0.F0.3
G1X-0.7F0.12(平面)
G0X120.Z150.
T0202M08(中心钻)
G0X0.Z10.
Z1.
G1Z-1.F0.08(钻引孔防止钻孔的时候偏心)
G0Z10.
X120.Z150.
T303S600(直径12的钻头)
G0X0.Z10.
#1=2(每一次钻深的深度)
#2=-105(这里为什么不是-100?因为按上图要求孔是
通孔考虑钻头前面有锥度,所以多钻深5)
#3=0(平面Z0赋值)
N10#3=#3-#1(计算出每次钻深的Z值坐标)
IF[#3LT#2]THEN#3=#2(强制赋值,防止深度过切)
G0Z[#3+#1+0.5](Z每次定位,定位在离上次钻深
0.5的地方)
G1Z#3F0.06(钻孔)
G0Z10.(当钻完一个深度退刀到Z10的地方)
G4X1.(暂停1秒,让钻头冷却)
IF[#3EQ#2]GOTO20(防止死循环,如果#3等于#2
那么跳转N20的地方)
IF[#3GE#2]GOTO10(条件判断,如果#3大于或等
于#2跳转到N10地方继续循环)
N20G0X120.Z150.(退刀)
M30(程序结束)
从上程序可以看出,我们实现了每次钻深2毫米,
然后快速退刀,暂停,快速进刀,继续钻深2毫米,
重复执行同一动作,直到深度到达跳出循环,退刀。
这里我们使用G1Z#3来钻孔,下面我把G1改进为
G74钻孔,和宏程序配合使用,效果更佳,程序如
下:
T303S600(直径12的钻头)
G0X0.Z10.
#1=2(每一次钻深的深度)
#2=-105(这里为什么不是-100?因为按上图要求孔
是通孔考虑钻头前面有锥度,所以多钻深5)
#3=0(平面Z0赋值)
N10#3=#3-#1(计算出每次钻深的Z值坐标)
IF[#3LT#2]THEN#3=#2(强制赋值,防止深度过切)
G0Z[#3+#1+0.5](Z每次定位,定位在离上次钻深
0.5的地方)
G74R0.2(每次钻深0.5,退刀0.20)
G74Z#3Q500F0.06(钻孔循环)
G0Z10.(当钻完一个深度退刀到Z10的地方)
G4X1.(暂停1秒,让钻头冷却)
IF[#3EQ#2]GOTO20(防止死循环,如果#3等于#2
那么跳转N20的地方)
IF[#3GE#2]GOTO10(条件判断,如果#3大于或等
于#2跳转到N10地方继续循环)
N20G0X120.Z150.(退刀)
M30(程序结束)
通过上面程序优化,我们可以达到一个最佳加工效
果!下面我们来讲一下目前国内用的最多的系统,
前面的程序都是以FANUCOI系列编程,如果你是
广数系统,你需要改动一些程序段,按照上面程序
我来讲解一下广数和FANUC的区别,程序如下:
T303S600(直径12的钻头)
G0X0.Z10.
#1=2(每一次钻深的深度)
#2=-105(这里为什么不是-100?因为按上图要求孔是
通孔考虑钻头前面有锥度,所以多钻深5)
#3=0(平面Z0赋值)
N10#3=#3-#1(计算出每次钻深的Z值坐标)
IF[#3LT#2]THEN#3=#2(强制赋值,防止深度过切)
#4=[#3+#1+0.5](计算Z每次定位,定位在离上次
钻深0.5的地方)区别在这里,先计算带入#号,下
面一步定位,把#号带入进去
G0Z#4(Z定位)
G74R0.2(每次钻深0.5,退刀0.20
G74Z#3Q500F0.06(钻孔循环)
G0Z10.(当钻完一个深度退刀到Z10的地方)
G4X1.(暂停1秒,让钻头冷却)
IF[#3EQ#2]GOTO20(防止死循环,如果#3等于#2
那么跳转N20的地方)
IF[#3GE#2]GOTO10(条件判断,如果#3大于或等
于#2跳转到N10地方继续循环)
N20G0X120.Z150.(退刀)
M30(程序结束)
看过上面程序,你有没有发现区别在哪里?好!现
在我来讲解一下,他的区别在于FANUC系统它在XZ
后面可以直接加上[#3+#1+0.5]直接计算,而广数不
行,广数必须先把中括号里面的计算带入一个#号,
然后在执行G0#,这就是唯一的区别,很好理解。
总结:
1.利用宏程序钻削深孔
2.宏程序配合G74循环代码效果更佳
3.广数和FANUC系统格式的区别
看完本节内容,多思考,多动手!完全理解本节教
学内容以后,在看下一节,祝各位喜爱宏编程的学
者早日入门,完全理解以上内容以后。这里恭喜你
已经对宏程序有了一个认识!
第四章多个等距曹的宏
程序应用
今天我们来讲解一下外径多个等距曹的宏程序加工,
一般如果我们不会宏程序的话只能依靠子程序来完
成,不然程序会非常繁琐,如果用子程序来加工,
如果中途坏刀,停下来以后只能从程序开头在重新
执行,而我们如果使用宏程序加工的话可以避免这
种情况,如果从中途停下来我们便于修改就可直接
从我们停下来那里开始加工。我们来看下图:
从上图可以看出这是一个等距曹加工图,每个曹曹
宽都是3,曹与曹之间都是相距10,我们使用宏程
序来编制这个程序。
图纸要求:
1.曹两侧倒去毛刺圆角R0.5
2.采用G75和宏配合使用
3.采用3毫米宽切刀加工
装夹方式:
1.外径50以加工完毕,采用台阶爪夹持直径50,左
端面定位,顶尖顶住加工
2.切刀以左侧面对平面为Z0.
程序和注释如下:
O0001
M3S600G99
T101M08
G0X50.5Z10.
Z1.
#1=0(平面Z值)
#2=-80(最后一个曹的Z值)
N10#1=#1-10(计算出每个曹的Z定位)
G0Z#1(Z定位)
G75R0.2
G75X45.P500F0.08(切曹循环)
G0W-0.5(进刀到左侧圆角倒角起点)
G1X50.F0.2
G2X49.W0.5R0.5F0.06(倒左侧圆角)
G0X50.5
W0.5(进刀到右侧圆角起点)
G1X50.F0.2
G3X49.W-0.5R0.5F0.06(倒右侧圆角)
G0X50.5(退刀)
IF[#1GT#2]GOTO10(条件判断如果#1大于#2跳
转N10继续执行下一个切槽)
G0X120.Z1.(退刀)
M30(程序结束)
根据上面程序,我们可以实现给出一个曹的走刀路
线,就可以切削多个曹的作用,如果中途在任意一
个曹停下来了,我们只需要改一下#1的赋值,就可
以实现从停的那个曹开始加工,这个是宏程序的一
个特点!仔细思考这个程序为什么没有加强制赋值
语句和跳出死循环语句!!!!什么时候改加,什么时
候可以不用加,这个要多多思考!!
下面我们还是用这个图来编制一个不用G75循环切
槽,用G1模仿G75路线来增加难度,前面我们都
是一重循环,下面我们来编制一个2重循环的程序:
O0001
M3S600G99
T101M08
G0X50.5Z10.
Z1.
#1=0(平面Z值)
#2=-80(最后一个曹的Z值)
#4=50(曹大直径)
N10#1=#1-10(算出每个曹的Z值坐标)
G0Z#1(Z定位)
G1X50.F0.2(定位到大直径处)
N20#4=#4-0.5(算出每次X的值)
IF[#4LT45]THEN#4=45(强制赋值防止X过切,这
里可以不用写)
G1X#4F0.06(切曹)
G0X[#4+0.2](以上次切曹的深度退刀0.2)
IF[#4EQ45]G0TO30(防止死循环)
IF[#4GE45]GOTO20(如果切曹深度现在大于或
等于45,跳转N20继续切曹)
N30#4=50(这里很关键,当执行到这里的时候,
#4实际已经等于45,所以这里从新赋值,下一个曹
才能正确加工,仔细思考这里)
G0X50.5(退刀)
W-0.5(进刀到左侧倒角起点)
G1X50.F0.2
G2X49.W0.5R0.5F0.06(倒左侧圆角)
G0X50.5
W0.5(进刀到右侧圆角起点)
G1X50.F0.2
G3X49.W-0.5R0.5F0.06(倒右侧圆角)
G0X50.5(退刀)
IF[#1GT#2]GOTO10(如果#1大于#2跳转N10执
行下一个曹的加工)
G0X120.Z1.(退刀)
M30(程序结束)
上面程序我们用G1来代替G75的走刀路线来编制
程序,目的是为了锻炼各位学者的思维,从而真正
的掌握宏程序,相比G75来编制增加了难度,从一
重循环提升到2重循环,希望各位学者仔细思考,
跟着程序思路去理解,而不是像G代码一样一直向
下执行!如果这一节课程你已经理解透测,恭喜你,
你的宏程序又更上一个台阶了。
第五章外径深曹的宏程
序分层法加工
今天我们来讲解一下外径深曹的加工,大家因该知
道我们在加工深曹的时候,铁销不容易排出,容易
卡削坏刀!利用G代码G75循环只能径向车削到底
部,在执行Z进刀,这样的加工方式有所不足,今
天我们利用宏程序分层法可以合理解决这个问题,
也为后面的矩形螺纹打好基础,看下图:
从上图可以看出,我们曹大直径30,底部直径12,
曹宽20,曹比较深。我们采用分层加工的方法来加
工。
工艺要求:
1.采用3毫米切刀。
2.每层吃刀量1.5
3.刀具以左侧对平面Z0.
4.夹持大直径30以左平面定位
外径平面已加工到位下面来编制这个程序:
O0001
M03S600G99
T0101M8
G0X35Z10
Z-13.
#1=30(外圆大直径为30)
#2=12(槽底直径为12)
#3=17(如图槽宽度为20,我们用3毫米刀,所以
20-3=17,槽的宽度)
#4=1.5(每层的吃刀深度为1.5)
N10#1=#1-#4(算出第一层的X值)
IF[#1LT#2]THEN#1=#2(强制赋值,防止过切)
#5=0(Z方向的赶刀初始值)
N20G0X[#1+#4+0.3](算出每车完一层的X定位)
Z[-13-#5](Z方向的实际定位)
G1X#1.F0.04(径向车削)
IF[#5EQ#3]GOTO30(如过加工完一层跳转到N3
0的地方,如果条件不满足走下面的程序段)
#5=#5+2.5(Z方向每次赶刀2.5)
IF[#5GT#3]THEN#5=#3(防止每层的宽度过切,
所以强制赋值)
IF[#5LE#3]GOTO20(条件判断,判断如果赶刀的
宽度没有达到槽宽,跳转N20的地方继续循环)
N30G0X35(X退到安全位置)
Z-13(Z方向退到第一刀加工起点)
IF[#1EQ#2]GOTO40(判断如果切槽深度到达跳
转N40,跳出循环)
IF[#1GE#2]GOTO10(如果深度没有到达跳转N1
0的地方继续循环)
N40G0X120Z150(退刀程序结束)
M30
通过上面程序我们可以实现分层切削,当切削完一
个径向车削以后,退刀,Z方向往负方向移动2.5,
继续执行径向车削,当一层宽度到达以后,执行下
一层,重复执行,直到深度到达!
下面我在这里介绍一种利用宏程序和G75并用的程
序,这样写法可以让程序更加简单化,程序如下:
O0001
M3S800G99
T0101M08
G0X35.Z10.
#1=30
#2=12
#3=1.5
N10#1=#1-#3
IF[#1LT#2]THEN#1=#2
G0Z-13.
X[#1+#3+0.2]
G75R0.2
G75X#1Z-30.P500Q2500F0.08
G0X35.
Z-13.
IF[#1EQ#2]GOTO20
IF[#1GE#2]GOTO10
N20G0X100.
Z130.
M30
仔细思考这个程序,完全理解以后,以这个图编写
一个Z方向从中间下刀往两边移动的宏程序,多思
考多动手,祝愿你早日达到目标!
第六章端面深曹的分层
加工
下图需要加工大直径为80,小直径为60,深度15
的端面曹,如果轴向进刀到槽底,铁销卡住刀具难
以承受,今天我们介绍分层法用宏程序来解决:
工艺安排:
1.夹持直径100,以左端面定位
2.选用3毫米宽端面切曹刀分层加工
3.刀具以刀具内侧对刀
4.初始吃刀量为2,每层递减0.1,最小吃刀量0.5
程序注释如下:
O0001
M3S500G99
T101M08
G0X60.Z10.
Z1.
#1=60(小直径赋值)
#2=[80-6]-60(用大直径减去两个刀宽在减去小直径
等于实际需要移动的X值)
#3=2(初始Z方向吃刀量)
#4=0(平面Z值)
#5=-15(曹深度)
N10#3=#3-0.1(吃刀量每层递减0.1)
IF[#3LT0.5]THEN#3=0.5(强制赋值最小吃刀量为0.5)
#4=#4-#3(算出每层的Z值)
IF[#4LT#5]THEN#4=#5(强制赋值防止Z深度过切)
#6=0(X移动初始值)
N20G0X[#1+#6](X每次定位)
Z[#4+#3+0.3](Z每次定位离上次切曹起点距离0.3
的地方)
G1Z#4F0.06(曹车削)
Z[#4+#3+0.3](退刀到距离上次切曹定位0.3的地方)
IF[#6EQ#2]GOTO30(防止X方向死循环)
#6=#6+5(刀具每次移动直径5,刀宽为3,端面曹
我们需要刀宽*2)
IF[#6GT#2]THEN#6=#2(强制赋值,防止X曹宽过
切)
IF[#6LE#2]GOTO20(条件判断,如果宽度没有到达
跳转N20继续循环)
N30IF[#4EQ#5]GOTO40(防止Z方向死循环)
IF[#4GE#5]GOTO10(如果深度没有到达,跳转N10
继续下一层车削)
N40G0Z10.(退刀,程序结束)
Z130.
M30
上图程序整体思路为,执行完一个切槽动作,然后
移动X方向,切削下一个切槽,直到曹宽到达,进
入下一层,重复执行!直到深度到达!由于端面曹
加工涉及曹刀宽度,如果不好理解我们下面介绍宏
和G74代码共同使用的方法可以简化程序。
程序如下:
O0001
M3S600G99
T101M08
G0X60.Z10.
Z1.
#1=60(曹小直径)
#2=80-6(大直径减去2个刀宽等于X终点坐标)
#3=-15(曹深度)
#4=2(初始吃刀量)
#5=0(平面Z值)
N10#4=#4-0.1(吃刀量每层递减0.1)
IF[#4LT0.5]THEN#4=0.5(最小吃刀量为0.5)
#5=#5-#4(算出每一层的Z值)
IF[#5LT#3]THEN#5=#3(防止深度过切)
G0Z[#5+#4+0.3](Z每次定位)
G74R0.2
G74X#2Z#5P2500Q500F0.06(端面切槽循环)
IF[#5EQ#3]GOTO20(如果深度到达跳出循环)
IF[#5GE#3]GOTO10(如果深度没有到达跳转N10
进入下一层)
N20G0Z10.
X120.Z130.
M30(程序结束)
上面程序通过宏和G74的共用,简化了程序,让思
路更加清晰。
总结:
1.强化2重循环的思维‘
2.理解切端面曹刀宽对X坐标的影响
3.利用分层合理保护刀具
4.利用现有G代码G74切曹循环和宏共用的方法
5.学习完这以上课程完全理解以后可进入第三章学
习
更多数控宏程序请访问
钟子期听懂了俞伯牙的琴音——“巍巍乎若高山,荡荡乎若流水”,俞伯牙视其为知音。钟子期死后,面对
江边一抔黄土,俞伯牙发出“此曲终兮不复弹,三尺瑶琴为君死”的感慨,摔琴而去,从此,高山流水,知
音难觅。
红楼里,宝钗与黛玉皆爱宝玉,宝钗看重功名,常拿一些伦理纲常来压制他的不羁与顽劣,黛玉却从未
提及这些,因她懂得他的心性,她说“你既为我之知己,自然我亦是你之知己”,造化弄人,木石前缘虽是
虚空一场,却怀金悼玉,梦萦千古,今日读来依然荡气回肠!
不是所有的相遇都可以相知,不是所有的相知都可以永恒。生命里,我们只愿结交那些心性相宜的人,
统一的语言,相同的志趣,将彼此的心灵拉近,一份懂得,不言不语,却在默契里滋生。
懂得,是两颗心的对望,潜生一种心灵感应,不发一言,便可知会。一声懂得,没有千言万语,却可以
令人眸中含泪,心中蕴暖。
这世间太多人情薄凉,你是否觉得,有一个真正懂你的人,是一种幸福与慰藉呢?茫茫人海,你不孤单,
有人愿与你同运命,共风雨,如此,多好!
风懂云的情怀,它,轻轻的吹送,云姿更加漫妙;雪懂梅的寒傲,它,悄悄的绽放,梅骨愈加清奇;泉
懂山的伟岸,它,静静的流淌,山林更为葱茂;雨懂花的心思,它,无声的洒落,花香尤为清绝……
杏花疏影小楼边,一腔笛韵委婉悠扬;山亭古寺四月间,深涧桃花兀自娇娆;暗香疏影黄昏后,东篱素
菊暗香盈袖;柴门冬雪夜归人,红泥火炉绿蚁新醅……若懂得,景与物,也相宜。
彷徨失意时,一句懂得,是严冬的一场花开春暖,茫然无助时,一句懂得,是酷暑的一阵清凉细雨,
心与心的贴近,皆因一个“懂得”而欣慰,美好。