UG爱好者
标题: 请教一个宏程序的问题 [打印本页]
作者: skyhx* 时间: 2015-5-24 09:33
标题: 请教一个宏程序的问题
本帖最后由 skyhx 于 2015-5-24 09:54 编辑
G0 G90 G54 X20 Y0;
MS S1200;
Z3;
M8;
#1=0;
IF [#1 GE -17.5 ] GOTO 1;
#1=#1-0.25;
G01 #1 F20;
G03 I-20 F1000;
N1 G0 G90 Z100;
M30;
如上,编辑了一个宏程序,用的床子是发那科的系统,但是运行的时候一直提示宏程序表达式非法 是哪里写错了吗?
下面这样写的才对 是吗?
G0 G90 G54 X20 Y0;
MS S1200;
Z3;
M8;
#1=0;
N10 #1=#1-0.25;
G01 Z#1 F20;
G03 I-20 F1000;
IF [#1 GT -17.5 ] GOTO 10;
G0 G90 Z100;
M30;
或者
G0 G90 G54 X20 Y0;
MS S1200;
Z3;
M8;
#1=0;
WHILE [#1 GT -17.5] DO 10;
#1=#1-0.25;
G01 Z#1 F20;
G03 I-20 F1000;
EBD 10;
G0 G90 Z100;
M30;
、
作者: song1539* 时间: 2015-5-24 10:00
楼主这程序写的是惨不忍睹啊。
虽然明白你的意思, 想分层铣个内孔。 但是程序写的不对, 无法执行的。 你的那个错误应该是出现在"G01 #1 F20." 你应该在#1前加轴名Z , 为 Z#1.。 但是这仍然无法运行,因为你的判断语句有问题,执行的时候直接跳到程序尾部了。
正确的写法是:
#1=0
N2 IF [#1 LT -17.5] GOTO1
#1=#1-0.25
G1 z#1 F20
G3 I-20. F1000
GOTO2
N1 G90 G0 z100
m30
作者: skyhx* 时间: 2015-5-24 10:09
song1539 发表于 2015-5-24 10:00
楼主这程序写的是惨不忍睹啊。
虽然明白你的意思, 想分层铣个内孔。 但是程序写的不对, 无法执行的。 ...
呵呵 是的 开始那个程序是忘记加Z 了
看了你的程序又知道了另一种方法 非常感谢
那麻烦你看看我上面写的 用WHILE 的方式对不对?
作者: song1539* 时间: 2015-5-24 15:51
skyhx 发表于 2015-5-24 10:09
呵呵 是的 开始那个程序是忘记加Z 了
看了你的程序又知道了另一种方法 非常感谢
这个用法是对的 没有问题
作者: √隨夢╰洏飛 时间: 2015-5-24 20:22
WHILE语句有问题吧?
应该是end1 或2 或3
作者: zy123456 时间: 2015-5-24 21:10
song1539 发表于 2015-5-24 15:51
这个用法是对的 没有问题
我想学习一点红程序知识,有什么资料推荐给我
一般的nc程式我都能轻松看懂
唯独宏程序不知道怎么入门
作者: skyhx* 时间: 2015-5-25 20:01
√隨夢╰洏飛 发表于 2015-5-24 20:22
WHILE语句有问题吧?
应该是end1 或2 或3
今天试了一下 还是报错
作者: √隨夢╰洏飛 时间: 2015-5-25 21:24
skyhx 发表于 2015-5-25 20:01
今天试了一下 还是报错
宏比较锻炼人,考验人的思维,我也是会一些简单的指令。你自己慢慢琢磨吧。
作者: √隨夢╰洏飛 时间: 2015-5-25 21:24
skyhx 发表于 2015-5-25 20:01
今天试了一下 还是报错
宏比较锻炼人,考验人的思维,我也是会一些简单的指令。你自己慢慢琢磨吧。
作者: song1539* 时间: 2015-5-26 16:51
zy123456 发表于 2015-5-24 21:10
我想学习一点红程序知识,有什么资料推荐给我
一般的nc程式我都能轻松看懂
唯独宏程序不知道怎么入门
上次忘记说了, WHILE 用法好像只支持到DO3
另外,资料的话没什么合适的,我当时学的时候就是看的FANUC说明书中的宏部分。
一开始看不懂,看了大约五六十遍后就能看懂了,后来再实验摸索一下,就可以自己写了。
嗯 , 那是十年前的事了。。。。
作者: zy123456 时间: 2015-5-27 09:05
song1539 发表于 2015-5-26 16:51
上次忘记说了, WHILE 用法好像只支持到DO3
另外,资料的话没什么合适的,我当时学的时候就是看的FANU ...
呵呵,我也是看说明书的
连续看了3。4遍,不知道所以然
就算是算式之间的逻辑关系能搞懂
但是那个变量是需要赋值的吧
赋值的通道在哪里,说明书上没有说
作者: yang_yy 时间: 2017-11-17 21:40
while只有DO 1 DO 2 DO3 和END 1 END 2 END 3配用
作者: yang_yy 时间: 2018-3-8 20:25
WHIEL[ ] DO 1 2 3 对应 END 1 2 3只有这么多
作者: l铁匠l 时间: 2018-8-14 13:10
本帖最后由 l铁匠l 于 2018-8-14 13:13 编辑
DO循环只能1到3,也就是最多只能是3层。
如:
DO1
DO2
DO3
END3
END2
END1
或者
DO1
END1
.
DO1
END1
又或者(一般不建议这样)
DO1
END1
.
DO2
END2
.
DO3
END3
.
DO1
END1
DO1.2.3-END1.2.3一般用来做多层循环用的,一层只要DO1-END1就够了,程序只会从DO1开始读到第一个END1。还有就是GOTO不能从外面跳转到DO和END之内,但是可以从内部往外面跳转!
作者: 腾飞凤舞 时间: 2019-1-7 15:21
楼主十多年前就开始学习宏程序了啊! 太牛了! 我学操机时也是啃完了一本程序说明书,但到宏程序时就怎么都看不懂了,当时没人教!
作者: 肆意的倔强 时间: 2019-1-8 18:49
厉害了
欢迎光临 UG爱好者 (https://www.ugsnx.com/) |
Powered by Discuz! X3.2 |