Machsupport Forum
Mach Discussion => VB and the development of wizards => Topic started by: rhtuttle on March 10, 2015, 02:04:38 PM
-
Good afternoon all,
When I run this in Mach3 turn VB editor it executes but does not pause for any of the restarts. When I run from the MDI line a message "Pause in Macro/Script". If run in a gcode fiilewith just one line M401 (the macro file) I get the same message.
Can someone tell me why this doesn't run in Mach 3 turn?
Sub main
'Domed Winding check
'0.5614 fixture diameter
'0.2804 fixture radius
'0.725 Raw NickelBlank Dia
DoOEMButton(1001)
code "(Mount back cut tool)"
systemWaitFor(restart)
DoOEMButton(1001)
Code "(Jog to Fixture surface)"
systemWaitFor(restart)
' Set Z to Fixture Radius
setDro(0,0.2807)
DoOEMButton(1001)
code "(Mount Front Cut Tool, position to back edge of mounted nickel)"
systemWaitFor(restart)
setDro(2,0.000)
' set spindle speed to 400
DoOEMButton(1001)
Code "(Turn Spindle on to 400RPM)"
code "m3 S400"
systemWaitFor(restart)
code "g01 f2 x0.285"
code "g0 x0.3625"
code "M5"
DoOEMButton(1001)
code "(stop spindle)"
systemWaitFor(restart)
End Sub
main
-
OK let's try,
first of all let's get a resadble code:
Sub main
'Domed Winding check
'0.5614 fixture diameter
'0.2804 fixture radius
'0.725 Raw NickelBlank Dia
DoOEMButton(1001)
code "(Mount back cut tool)"
systemWaitFor(restart)
DoOEMButton(1001)
Code "(Jog to Fixture surface)"
systemWaitFor(restart)
' Set Z to Fixture Radius
setDro(0,0.2807)
DoOEMButton(1001)
code "(Mount Front Cut Tool, position to back edge of mounted nickel)"
systemWaitFor(restart)
setDro(2,0.000)
' set spindle speed to 400
DoOEMButton(1001)
Code "(Turn Spindle on to 400RPM)"
code "m3 S400"
systemWaitFor(restart)
code "g01 f2 x0.285"
code "g0 x0.3625"
code "M5"
DoOEMButton(1001)
code "(stop spindle)"
systemWaitFor(restart)
End Sub
main
ok let's do some documentaion's to the code
Sub main
'Domed Winding check
'0.5614 fixture diameter
'0.2804 fixture radius
'0.725 Raw NickelBlank Dia
DoOEMButton(1001)
code "(Mount back cut tool)" 'what does this code mean ?? ???
systemWaitFor(restart) 'where/or what is restart ???
DoOEMButton(1001)
Code "(Jog to Fixture surface)" 'what does this code mean ?? ???
systemWaitFor(restart) 'where/or what is restart ???
' Set Z to Fixture Radius
setDro(0,0.2807)
DoOEMButton(1001)
code "(Mount Front Cut Tool, position to back edge of mounted nickel)" 'what does this code mean ?? ???
systemWaitFor(restart) 'where/or what is restart ???
setDro(2,0.000)
' set spindle speed to 400
DoOEMButton(1001)
Code "(Turn Spindle on to 400RPM)" 'what does this code mean ?? ???
code "m3 S400"
systemWaitFor(restart) 'where/or what is restart ???
code "g01 f2 x0.285"
code "g0 x0.3625"
code "M5"
DoOEMButton(1001)
code "(stop spindle)" 'what does this code mean ?? ???
systemWaitFor(restart) 'where/or what is restart ???
End Sub
main
i am just talkin like MACH3 processor.
Thomas
if you try to get an answer post the real code.
-
Hi Tom, thanks for taking a moment to look at the code.
I too would like 'resadble code' :D as you suggest.
Let me see if I can explain.
the lines: code "(...)" output a message in the Status box. I use it to remind me what each step is before I continue. Tool change or jog primarily.
as for the combination before and after those lines they are supposed to pause and restart the execution of the macro see Poppa Bear;s response here:
http://www.machsupport.com/forum/index.php/topic,7491.0.html
I just converted my bench lathe to CNC and do not as of yet have spindle control so a couple of those code entries remind to start/stop the spindle.
This is just the first part of code to turn a part.
-
systemWaitFor(restart) 'where/or what is restart Huh
restart is NOT valid for that piece of code. It is WAITING on a Signal Number (integer) which represents a valid INPUT number.
PLEASE read the manual (;-)
Just a thought, (;-) TP
-
Hi rhtuttle,
i think now what you tryed to do.
Pause is not working because there is no movement.
Try this:
Sub main
'Domed Winding check
'0.5614 fixture diameter
'0.2804 fixture radius
'0.725 Raw NickelBlank Dia
Message "(Mount back cut tool)"
DoOEMButton(1003)
WaitForStart
DoOEMButton(1003)
Message "(Jog to Fixture surface)"
WaitForStart
' Set Z to Fixture Radius
setDro(0,0.2807)
DoOEMButton(1003)
Message "(Mount Front Cut Tool, position to back edge of mounted nickel)"
WaitForStart
setDro(2,0.000)
' set spindle speed to 400
DoOEMButton(1003)
Message "(Turn Spindle on to 400RPM)"
WaitForStart
code "m3 S400"
code "g01 f2 x0.285"
code "g0 x0.3625"
While Ismoving()
sleep(200)
Wend
DoOEMButton(1003)
Message "(stop spindle)"
WaitForStart
code "M5"
Message "(finshed)"
End Sub
Sub WaitForStart
Sleep(300)
While Not GetLed(4) 'check Start LED
Sleep(200)
Wend
End Sub
Thomas
-
Thomas, thank you so much for taking time to look at this. I haven't done any Mach scripting in a couple of years and had been banging my head against a wall for a few hours when I posted.
Contrary to TP's opinion I do RTFM but the programmers reference manual only has this:
SystemWaitFor
Sub SystemWaitFor(Signal As Integer)
This function it is used to tell Mach that a macro script is ending, and that any further
GCode execution should wait for the Signal to go active. If used, this function should
always be the last line in a macro and it should never be used within a loop.
Arguments:
SignalID must be one of the pre-defined Mach3 CB output signal constants (see
CB Constants), or other value or expression that evaluates to one of those values.
Return Value:
None
Example:
See also:
Since the manual does not contain the CB Constants it refers to I assumed, wrongly, that Poppa bear's use of ReStart was a constant. After leaving it alone for a few hours I reread his example. I missed a line of code:
ReStart = IsActive(INPUT4) 'this is input signal 4
I like your code, thanks again
-
Ya read the wrong manual (;-)
"Customising Mach2" page 4-10
SystemWaitFor ( SigNo as integer)
Waits for the given signal to become active.This allows interfacing with physical controls on the machine.
(;-) TP
-
Hi,
sorry, i am not realy shure what you want to tell me (may be caused of my bad english).
Thomas, thank you so much for taking time to look at this. I haven't done any Mach scripting in a couple of years and had been banging my head against a wall for a few hours when I posted.
Contrary to TP's opinion I do RTFM but the programmers reference manual only has this:
SystemWaitFor
Sub SystemWaitFor(Signal As Integer)
This function it is used to tell Mach that a macro script is ending, and that any further
GCode execution should wait for the Signal to go active. If used, this function should
always be the last line in a macro and it should never be used within a loop.
Arguments:
SignalID must be one of the pre-defined Mach3 CB output signal constants (see
CB Constants), or other value or expression that evaluates to one of those values.
Return Value:
None
Example:
See also:
Since the manual does not contain the CB Constants it refers to I assumed, wrongly, that Poppa bear's use of ReStart was a constant. After leaving it alone for a few hours I reread his example. I missed a line of code:
ReStart = IsActive(INPUT4) 'this is input signal 4
I like your code, thanks again
simple question working yes/no.
Thomas
-
Yes, thank you.