5iMX.com 我爱模型 玩家论坛 ——专业遥控模型和无人机玩家论坛(玩模型就上我爱模型,创始于2003年)

标题: 请教下mach3 vb运行问题! [打印本页]

作者: HGQ21102    时间: 2017-8-25 19:26
标题: 请教下mach3 vb运行问题!
MACH3 VB怎么会这样了?这IF进去后,怎么会先运行"ActivateSignal(Output2)"再运行其它了!不是同C一行一行运行下去吗?
(, 下载次数: 48)

附件是:M6Start.m1s
会的请帮忙看看


Sub Main()'定义变量
OldTool = GetCurrentTool()  '现在全使用的Z轴
tool = GetSelectedTool()   '取得新轴号
GageH = GetUserDRO(1152) '对刀界面输入框中输入数据
NewTool = tool




'////////注意:使用Z1(默认先用Z1)
If NewTool = 1 and OldTool=1  Then  'if如果<条件>为真 执行then后面, 如果条件为假,不执行Then后面的语句块,而执行End If后的语句。
        Message ("注意:使用Z1")
        Code  "G0 Z" & GageH *2'先把Z1轴升高到对刀原位
        Call SetDRO( 3, 1 )'A轴现示为
        DeActivateSignal(Output2) '输出2关闭输出,此时为使用Z1轴
        Code "G4 P1"' 延时1s,等待稳定后
        Exit Sub
End If


'////////注意:现在从Z2切换成Z1
If NewTool = 1 and OldTool=2  Then  'if如果<条件>为真 执行then后面, 如果条件为假,不执行Then后面的语句块,而执行End If后的语句。
        Message ("注意:现在从Z2切换成Z1")
        Code  "G0 Z" & GageH *2'先把Z1轴升高到对刀原位
        Call SetDRO( 3, 2 )'A轴现示为
        DeActivateSignal(Output2) '输出2关闭输出,此时为使用Z1轴
        Call SetDRO( 0, GetToolChangeStart(0)-120)'强制X轴切座标
        Call SetDRO( 1, GetToolChangeStart(1)+55)'强制Y轴切座标
        Code "G4 P1"' 延时1s,等待稳定后
        Exit Sub
End If


'////////注意:使用Z2,或者Z1切换成Z2
If NewTool = 2 and OldTool=1  Then  'if如果<条件>为真 执行then后面, 如果条件为假,不执行Then后面的语句块,而执行End If后的语句。        Message ("注意:第一次使用Z2")
        Message ("注意:使用Z2,或者Z1切换成Z2")
        Call SetDRO( 3, 2 )'A轴现示为
        Code  "G0 Z" & GageH *2'先把Z1轴升高到对刀原位
        Code "G4 P1"' 延时1s,等待稳定后
        Call SetDRO( 0, GetToolChangeStart(0)+120)'强制X轴切座标
        Call SetDRO( 1, GetToolChangeStart(1)-55)'强制Y轴切座标
        Code "G4 P1"' 延时1s,等待稳定后
        Call SetDRO( 3, 3 )'A轴现示为
        ActivateSignal(Output2) '输出2激活输出,切换Z2轴
        Exit Sub
End If


'////////////////
End Sub
Main




作者: 1121454314    时间: 2017-8-25 19:32
估计条件是假的,哈哈。开玩笑

作者: HGQ21102    时间: 2017-8-25 19:49
1121454314 发表于 2017-8-25 19:32
估计条件是假的,哈哈。开玩笑

条件是真的,但是一进去IF,就先运行了out#2输出,再运行了其它,不知是不是MACH3软件的问题


作者: 骷髅精灵    时间: 2017-8-25 21:10
////////注意:使用Z1(默认先用Z1)
If NewTool = 1 and OldTool=1  Then  'if如果<条件>为真 执行then后面, 如果条件为假,不执行Then后面的语句块,而执行End If后的语句。
        Message ("注意:使用Z1")
        Code  "G0 Z" & GageH *2'先把Z1轴升高到对刀原位
插个if,如果原点开关被触发,再执行下面的代码
        Call SetDRO( 3, 1 )'A轴现示为
        DeActivateSignal(Output2) '输出2关闭输出,此时为使用Z1轴
        Code "G4 P1"' 延时1s,等待稳定后
        Exit Sub
End If


作者: 契而不舍    时间: 2017-8-26 07:27
也学习一下。

作者: HGQ21102    时间: 2017-8-26 08:11
想到一个拆中的方法,如,Code "M198"  
定义多几个M文件,问题就解决了





欢迎光临 5iMX.com 我爱模型 玩家论坛 ——专业遥控模型和无人机玩家论坛(玩模型就上我爱模型,创始于2003年) (http://wz.5imx.com/) Powered by Discuz! X3.3