昨天有个粉丝在评论区问我:宏程序到底比G代码强在哪?我学G代码不也能编程吗?
今天用一个具体例子说清楚。

场景:在一块板上钻100个孔,10×10矩阵排列,孔距10mm。
这是最简单的加工,对吧?
用CAM软件生成程序,大概长这样:
G90 G54
G00 X0 Y0
G43 H1 Z50.
G81 X0 Y0 Z-15. R2. F200
X10. Y0
X20. Y0
X30. Y0
...(省略96行)
X90. Y90.
G80
M30
200多行。

用宏程序写,核心代码5行:
#1=0(当前行号)
WHILE[#1 LT 10] DO1(循环10行)
#2=0(当前列号)
WHILE[#2LT 10] DO2(循环10列)
G81X[#2*10] Y[#1*10] Z-15. R2. F200
#2=#2+1
END2
#1=#1+1
END1
效果完全一样。

你可能会说:行数少有什么用?反正机床都能跑。
区别在改程序的时候。
假设客户突然说:孔距从10mm改成12mm。
·G代码:要么重新用CAM生成,要么手动改100个坐标
·宏程序:把"#210"改成"#212",1秒钟搞定
假设客户说:孔数从100个改成144个(12×12)。
·G代码:重新生成,或者手动加44行
·宏程序:把两个"10"改成"12",2秒钟

这就是G代码和宏程序的本质区别:
| G代码 | 宏程序 |
刀路 | 固定的 | 可以变化 |
修改 | 要改一大片 | 改一个数 |
计算 | 你自己算好写进去 | 程序自己算 |
判断 | 做不到 | 可以根据条件走不同分支 |
G代码是"死"的,宏程序是"活"的。

举个更实际的例子:
加工一个孔,深度-50mm。
用G代码,你写Z-50,它就钻到-50,不管中间发生什么。
用宏程序,你可以写:
·钻到-15mm时,自动退刀排屑
·钻到-30mm时,自动降低进给
·钻到-45mm时,自动再退一次刀
·根据当前深度,自己判断下一步怎么走
你让程序变"聪明"了。

很多人觉得宏程序难,是因为上来就看#1、#2、WHILE这些符号,看不懂。
但其实核心就三件事:
1.变量:用#1代替具体数字,方便改
2.计算:让程序自己算坐标,不用你手算
3.判断:如果......就...否则...
初中数学就够用。

我整理了一份《宏程序入门速查表》,把最常用的变量、运算符、循环语法列了一页纸。
👇 公众号发“速查表”,自动发你PDF + 我微信
打印出来贴机床边上,忘了就看一眼。

下一篇我讲一个实际案例:怎么用宏程序写一个螺旋铣孔程序,让钛合金刀具寿命提升8倍。
关注我,别错过。
我是邹军,18年数控编程。有问题尽管问。