一. 什么是宏程序?
用变量的方式进行数控编程
二. 宏程序与普通程序的区别。
普通程序: 只能使用常量
宏程序: 可以使用变量,并给变量赋值
普通程序: 常量之间不可以运算
宏程序: 变量之间可以运算
普通程序: 程序只能顺序执行,不能跳转
宏程序: 程序可以跳转
三. 变量
#1~#33
在宏程序中储存数据,在程序中对其赋值。赋值是将一个数据赋予一个变量。例如#1=0,表示#1的值就是0,其中#1代表变量,#是变量符号,0就是给变量#1赋的值。
例如
G0 X0 Y0;
G01 X100 F500 ;
#1=100 ;
#2=50 ;
G0 X0 Y0;
G01 X#1F500;
G01 X[#1+#2]F500;
四. 变量之间的运算
变量之间可以进行加,减,乘,除函数等各种运算
例如
#1=60;
#2=SIN#1;
运算顺序和一般数学上的定义相同
例如
#1=#2+3*SIN#4
括号嵌套
最里层的括号优先
例如
#6=COS[[[#5+#4]*#3+#2]*#1]
比较难理解的一种情况
#1=10;
G0 X#1 Y0;
#1=#1+1;
G0 X#1 Y0;
五. 转移和循环
在程序中使用GOTO和IF可以改变程序执行顺序
1. GOTO 语句—--无条件转移
例如
G0 X0 Y0;
G01 X100 Y100 F100;
X500;
GOTO 01;
Y500;
N01 X550;
Y550;
G0 Z200;
2. IF语句
1).IF[条件表达式]GOTO n
如果指定的表达式满足,则转移到标有顺序号n 的程序段,如果不满足指定的条件表达式,则顺序执行下一个程序段。
例如
IF[#1 GT 100] GOTO 01;
G0 X0 Y0;
N01 X200;
运算符 含义
EQ 等于 =
NE 不等于 ≠
GT 大于 >
GE 大于或等于 ≥
LT 小于
LE 小于或等于 ≤
典型例子
#1=0;
#2=1;
N1;
IF[#2 GT 100] GOTO 02;
#1= #1+#2;
#2= #2+#1;
GOTO 01;
N2 M30;
3.循环(WHILE语句)
在WHILE后制定一个条件表达式,当指定条件满足时,则执行从DO到END之间的程序,否则,转到END后的程序段
例如
#2=10;
#3=20;
WHILE[#2 LT #3]DO01;
#2=#2-1;
END01;
实例运用
O2012(螺旋铣孔)
#1=50;圆孔直径
#2=40;圆孔深度
#3=30;刀具直径
#4=0;Z坐标设为自变量,赋值为0
#10=1;Z坐标每次递增量
#5=[#1-#3]/2;刀具回转直径
S1000 M3;
G54 G90 G00 X0 Y0 Z30;
G00 X#5
Z[-#4+1];
G01 Z-#4 F200;
WHILE[#4 LT #2]DO01;
#4= #4+#10;
G03 I-#5 Z-#4 F1000;
END 01;
G03 I-#5;
G01 X[#5-1];
G0 Z100;
M30;
O2013(群孔)
#1=40;最内圈孔圆心所在直径
#2=30;每列孔间隔
#3=12;孔的列数
#4=10; 空间隔
#5=6;每列孔个数
S1000 M3;
G54 G90 G00 X0 Y0 Z30
G16;
#6=1;
WHILE[#6 LE #3]DO 01;
#7=1;
WHILE[#7 LE #5]DO 02;
#8= #1/2+[#7-1]*#4
#9= [#6-1]*#2;
G98 G81 X#8 Y#9 Z-60 R3 F100;
#7=#7+1;
END 02;
#6=#6+1;
END 01;
G80 Z30;
G15;
M30;
O2013(可变式深孔钻)
#1=3;每次进给钱的缓冲高度
#2=20;第一次钻深
#3=0.5;递减比例
#4=35;孔总深的
#5=5.;R点
M3 S1000;
G54 X0 Y0;
G0 Z#5;
WHILE[#4 GT 0] DO 01;
G01 Z-#2 F1000;
G0 Z#5;
Z[-#2+#1];
#7=#2*#3;
#2=#2+#7;
#4=#4-#2;
END 01;
G0 Z100;
M30;
O2014(铣平面)
#1=1000;工件长度
#2=1000;工件宽度
#3=10;刀具直径
#4=-#2/2;Y设为自变量,初始值赋值为-#2/2
#14=0.8*#3;递增量
#5=[#1+#3]/2+2.;开始X坐标
S1000 M3;
G54 G90 G00 X0 Y0 Z30;
X#5 Y#4;
Z0;
WHILE[#4 LT #2/2] DO01;
G01 X-#5 F1000;
#4= #4+#14;
Y#4;
X#5;
#4= #4+#14;
Y#4;
END 01;
G0 Z30;
M30;
另一种编程方式
#1=1000;工件长度
#2=1000;工件宽度
#3=10;刀具直径
#4=-#2/2;Y设为自变量,初始值赋值为-#2/2
#14=0.8*#3;递增量
#5=[#1+#3]/2+2.;开始X坐标
S1000 M3;
G54 G90 G00 X0 Y0 Z30;
X#5 Y#4;
Z0;
N01 G01 X-#5 F1000;
#4= #4+#14;
Y#4;
X#5;
#4= #4+#14;
Y#4;
IF [#4 LT #2/2] GOTO 01;
G0 Z30;
M30,
领取专属 10元无门槛券
私享最新 技术干货