数控车床师傅吧 关注:8,544贴子:40,820
  • 2回复贴,共1

数控车分层切槽宏程序求助(刀宽为3mm)O0001M03 S

只看楼主收藏回复

数控车分层切槽宏程序求助(刀宽为3mm)
O0001
M03 S600
G99 F0.2
T0101 M8
G0X35Z10Z-13.
#1=30
#2=12
#3=17
#4=1.5
N10#1=#1-#4
IF[#1LT#2]THEN#1=#2
#5=0
N20G0X[#1+#4+0.3]
Z[-13-#5]
G1X#1.F0.04
IF[#5EQ#3]GOTO30
#5=#5+2.5
IF[#5GT#3]THEN#5=#3
IF[#5LE#3]GOTO20
N30G0X35
Z-13
IF[#1EQ#2]GOTO40
IF[#1GE#2]GOTO10
N40G0X120 Z150
M30
以上程序经实际检验没有问题,但是如果把
#5=#5+2.5这一段放在IF[#5EQ#3]GOTO30上面,就会出现死循环,谁能解释一下这是什么原因。


IP属地:山东来自Android客户端1楼2018-11-23 11:15回复
    IF[#5EQ#3]GOTO30这一行就是在#5=#3的时候跳出循环用的。
    如果#5=#5+2.5加在这行上面 ,当#5大于#3的时候,IF[#5EQ#3]GOTO30这行跳过,执行到IF[#5GT#3]THEN#5=#3这行#5又等于#3
    执行到IF[#5LE#3]GOTO20返回N20
    再执行到#5=#5+2.5这时#5又大于#3
    又循环一次!IF[#5EQ#3]GOTO30这一行始终跳过不起作用,也就终止不了循环了!


    IP属地:河南来自Android客户端2楼2018-12-06 23:30
    回复
      #1=28.5
      #2=12
      #3=-13
      #4=-30
      G0 Z-13
      WHILE[#1GE# 2]DO1
      WHILE[#3GE# 4]DO2
      G1 X#1 F0.05
      G0 X[#1+1.8]
      IF[#3EQ# 4]GOTO10
      #3=# 3-2.5
      IF[#3LT# 4]THEN#3=# 4
      G0 Z#3
      END2
      N10 IF[#1EQ#2]GOTO20
      #1=#1-1.5
      IF[#1LT#2]THEN# 1=#2
      #3=-13
      G0 Z#3
      G0 X[#1+1.8]
      END1
      N20 G0X100
      Z200
      M30


      IP属地:河南来自Android客户端4楼2018-12-06 23:50
      回复