Hello Guest it is March 07, 2021, 03:50:50 AM

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - TPS

171
General Mach Discussion / Re: Mach3 Macro issue
« on: January 03, 2021, 05:30:35 AM »
to call a macro within a macro is a nogo in Mach3, but you can put your code into a g-Code file witch should work.

your userled's 1050 and upward look like a tool present Switch, witch can be also controlled in M6 and M50,

or like Graham decided use Sub's in your script.

you can also have a look at:

https://www.machsupport.com/wp-content/uploads/2013/02/Mach3_V3.x_Macro_Prog_Ref.pdf

for the #Expand functionality, then you can Keep your sub's in a common file.

172
if you move the z-axis in Manual

pgdown -> z-axis down
pgup -> z-axis up ?

173
General Mach Discussion / Re: external under pule frequency
« on: January 01, 2021, 03:57:36 AM »
here:

https://buildyourcnc.com/item/electronicsAndMotors-electronic-component-breakout-Mach3-USB-Board

you can find a lot of Information how to wire/Setup Limit switches

174
Config -> Ports&Pins -> Motor Outputs -> Z-axis -> Dir LowActive

175
General Mach Discussion / Re: external under pule frequency
« on: December 31, 2020, 01:14:20 AM »
can't see in my Magic glasball witch USB Controller you are using, but i think

Config -> Ports&Pins -> Input signals

are not set correctly (Port or Pin).

177
VB and the development of wizards / Re: macro external center piece
« on: December 29, 2020, 04:32:05 AM »
X-Axis
Code: [Select]
Rem VBScript To center probe X-Axis
 
 
 
 
Speak (" psizionarsi CINQUE millimetri sopra il pezzo") 'Avviso Vocale
response = MsgBox ("   5 mm    SOPRA IL PEZZO")


  Begin Dialog ButtonSample 250,200,120,60,"   CENTRO PEZZO PIENO ? "
   OKButton 12,20,40,14
   CancelButton 68,20,40,14
End Dialog

Dim Dlg2 As ButtonSample
Button = Dialog (Dlg2)
If Button = 0 Then
   MsgBox "CENTRO PEZZO CANCELLATO !"
    Speak ("     CENTRO        PEZZO      CANCELLATO") 'Avviso Vocale
   Exit Sub
End If




Sleep (1000) ' pausa di 1 secondi
Speak (" CONFERMARE centro pezzo pieno") 'Avviso Vocale
Message "INIZIO CENTRO PEZZO PIENO"
Sleep (1000) ' pausa di 1 secondi
response = MsgBox ("CONFERMARE CENTRO PEZZO PIENO")

 Message "**** zero assi ****"
 
   DoOEMButton (1008) 'zero X
   DoOEMButton (1009) 'zero Y
   DoOEMButton (1010) 'zero Z
   Sleep (2000) ' pausa di 1 secondi   
Speak ("ZERO assi completato") 'Avviso Vocale


CurrentFeed = GetOemDRO(818) 'Get the current feedrate to return to later
CurrentAbsInc = GetOemLED(48) 'Get the current G90/G91 state
CurrentGmode = GetOemDRO(819) 'Get the current G0/G1 state
CurrentToolDiameter = GetOemDRO(1000) 'gets the current tool diameter

If GetOemLed (825) <> 0 Then 'Check to see if the probe is already grounded or faulty

    Call ProbeGrounded()
    Exit Sub

Else

    XCurrent = GetDro(0)
    YCurrent = GetDro(1)
    OutsideDiameter = GetUserDRO(1152)

    Code "G4 P1" 'Pause 1 second to give time to position probe plate
    While IsMoving ()
    Wend
    Call SetDro (0,0.000)
    While IsMoving ()
    Wend
    Call SetDro (1,0.000)
    Code "F50" 'slow feed rate to 100mm/sec
    Code "G90 G0 X" &XNew + OutsideDiameter * .6
    Code "G91 G0 Z-10"

Rem Probe Left

    XNew = Xcurrent - 75
    Code "G31 X" &XNew
    While IsMoving() 'wait for the move to finish
    Wend

    Code "G91 G0 X2 F10"
    While IsMoving() 'wait for the move to finish
    Wend
    Code "G31 X" &XNew
    While IsMoving() 'wait for the move to finish
    Wend

    XPos1 = GetVar(2000) 'get the probe touch location
    Code "G91 G0 X2 F50"
    Code "G91 G0 Z10"
    Code "G90 G0 X" &XCurrent 'rapid move back to start point
    Code "G91 G0 X" &XCurrent - OutsideDiameter * .6
    Code "G91 G0 Z-10"

Rem Probe Right

    XNew = XCurrent + 75 'probe 75mm to right
    Code "G31 X" &XNew
    While IsMoving()
    Wend

    Code "G91 G0 X-2 F10"
    While IsMoving() 'wait for the move to finish
    Wend
    Code "G31 X" &XNew
    While IsMoving() 'wait for the move to finish
    Wend

    XPos2 = GetVar(2000)
    Code "G91 G0 X-2 F50"
    Code "G91 G0 Z10"
    XCenter = (XPos1 + XPos2) / 2 'center is midway between XPos1 and XPos2
    Code "G90 G0 X" &XCenter 'rapid move to the x center location
    While IsMoving ()
    Wend
    Call SetDro (0,0.000)
    Code "G4 P0.25"

    Code "F" &CurrentFeed 'restore starting feed rate
   Call ReturnG90G91State()
   Exit Sub
End If

Y-Axis
Code: [Select]
Rem VBScript To center probe Y-Axis
 
 
 
 
Speak (" psizionarsi CINQUE millimetri sopra il pezzo") 'Avviso Vocale
response = MsgBox ("   5 mm    SOPRA IL PEZZO")


  Begin Dialog ButtonSample 250,200,120,60,"   CENTRO PEZZO PIENO ? "
   OKButton 12,20,40,14
   CancelButton 68,20,40,14
End Dialog

Dim Dlg2 As ButtonSample
Button = Dialog (Dlg2)
If Button = 0 Then
   MsgBox "CENTRO PEZZO CANCELLATO !"
    Speak ("     CENTRO        PEZZO      CANCELLATO") 'Avviso Vocale
   Exit Sub
End If




Sleep (1000) ' pausa di 1 secondi
Speak (" CONFERMARE centro pezzo pieno") 'Avviso Vocale
Message "INIZIO CENTRO PEZZO PIENO"
Sleep (1000) ' pausa di 1 secondi
response = MsgBox ("CONFERMARE CENTRO PEZZO PIENO")

 Message "**** zero assi ****"
 
   DoOEMButton (1008) 'zero X
   DoOEMButton (1009) 'zero Y
   DoOEMButton (1010) 'zero Z
   Sleep (2000) ' pausa di 1 secondi   
Speak ("ZERO assi completato") 'Avviso Vocale


CurrentFeed = GetOemDRO(818) 'Get the current feedrate to return to later
CurrentAbsInc = GetOemLED(48) 'Get the current G90/G91 state
CurrentGmode = GetOemDRO(819) 'Get the current G0/G1 state
CurrentToolDiameter = GetOemDRO(1000) 'gets the current tool diameter

If GetOemLed (825) <> 0 Then 'Check to see if the probe is already grounded or faulty

    Call ProbeGrounded()
    Exit Sub

Else

    XCurrent = GetDro(0)
    YCurrent = GetDro(1)
    OutsideDiameter = GetUserDRO(1152)

    Code "G4 P1" 'Pause 1 second to give time to position probe plate
    While IsMoving ()
    Wend
    Call SetDro (0,0.000)
    While IsMoving ()
    Wend
    Call SetDro (1,0.000)
    Code "F50" 'slow feed rate to 100mm/sec
    Code "G90 G0 Y" &YNew - OutsideDiameter * .6
    Code "G91 G0 Z-10"

Rem Probe up

    YNew = YCurrent + 75
    Code "G31 Y" &YNew
    While IsMoving()
    Wend

    Code "G91 G0 Y-2 F10"
    While IsMoving() 'wait for the move to finish
    Wend
    Code "G31 Y" &YNew
    While IsMoving() 'wait for the move to finish
    Wend

    YPos1 = GetVar(2001)
    Code "G91 G0 Y-2 F50"
    Code "G91 G0 Z10"
    Code "G90 G0 Y" &YCurrent
    Code "G91 G0 Y" &YCurrent + OutsideDiameter * .6
    Code "G91 G0 Z-10"

Rem Probe down

    YNew = YCurrent - 75
    Code "G31 Y" &YNew
    While IsMoving()
    Wend

    Code "G91 G0 Y2 F10"
    While IsMoving() 'wait for the move to finish
    Wend
    Code "G31 Y" &YNew
    While IsMoving() 'wait for the move to finish
    Wend

    YPos2 = GetVar(2001)
    Code "G91 G0 Y2 F50"
    Code "G91 G0 Z10"
    YCenter = (YPos1 + YPos2) / 2

Rem move To the center

    Code "G90 G0 Y" &YCenter
    While IsMoving ()
    Wend
    Call SetDro (1,0.000)
    While IsMoving ()
    Wend
    Call SetUserDro (1152,YPos2 - YPos1 - CurrentToolDiameter)

    Code "G4 P0.25"

    Code "F" &CurrentFeed 'restore starting feed rate
   Call ReturnG90G91State()
   Exit Sub
End If

178
VB and the development of wizards / Re: macro external center piece
« on: December 29, 2020, 02:45:11 AM »
Code: [Select]
Rem VBScript To center probe outside diameter Metric Version
 
 
 
 
Speak (" psizionarsi CINQUE millimetri sopra il pezzo") 'Avviso Vocale
response = MsgBox ("   5 mm    SOPRA IL PEZZO")


  Begin Dialog ButtonSample 250,200,120,60,"   CENTRO PEZZO PIENO ? "
   OKButton 12,20,40,14
   CancelButton 68,20,40,14
End Dialog

Dim Dlg2 As ButtonSample
Button = Dialog (Dlg2)
If Button = 0 Then
   MsgBox "CENTRO PEZZO CANCELLATO !"
    Speak ("     CENTRO        PEZZO      CANCELLATO") 'Avviso Vocale
   Exit Sub
End If




Sleep (1000) ' pausa di 1 secondi
Speak (" CONFERMARE centro pezzo pieno") 'Avviso Vocale
Message "INIZIO CENTRO PEZZO PIENO"
Sleep (1000) ' pausa di 1 secondi
response = MsgBox ("CONFERMARE CENTRO PEZZO PIENO")

 Message "**** zero assi ****"
 
   DoOEMButton (1008) 'zero X
   DoOEMButton (1009) 'zero Y
   DoOEMButton (1010) 'zero Z
   Sleep (2000) ' pausa di 1 secondi   
Speak ("ZERO assi completato") 'Avviso Vocale


CurrentFeed = GetOemDRO(818) 'Get the current feedrate to return to later
CurrentAbsInc = GetOemLED(48) 'Get the current G90/G91 state
CurrentGmode = GetOemDRO(819) 'Get the current G0/G1 state
CurrentToolDiameter = GetOemDRO(1000) 'gets the current tool diameter

If GetOemLed (825) <> 0 Then 'Check to see if the probe is already grounded or faulty

    Call ProbeGrounded()
    Exit Sub

Else

    XCurrent = GetDro(0)
    YCurrent = GetDro(1)
    OutsideDiameter = GetUserDRO(1152)

    Code "G4 P1" 'Pause 1 second to give time to position probe plate
    While IsMoving ()
    Wend
    Call SetDro (0,0.000)
    While IsMoving ()
    Wend
    Call SetDro (1,0.000)
    Code "F50" 'slow feed rate to 100mm/sec
    Code "G90 G0 X" &XNew + OutsideDiameter * .6
    Code "G91 G0 Z-10"

Rem Probe Left

    XNew = Xcurrent - 75
    Code "G31 X" &XNew
    While IsMoving() 'wait for the move to finish
    Wend

    Code "G91 G0 X2 F10"
    While IsMoving() 'wait for the move to finish
    Wend
    Code "G31 X" &XNew
    While IsMoving() 'wait for the move to finish
    Wend

    XPos1 = GetVar(2000) 'get the probe touch location
    Code "G91 G0 X2 F50"
    Code "G91 G0 Z10"
    Code "G90 G0 X" &XCurrent 'rapid move back to start point
    Code "G91 G0 X" &XCurrent - OutsideDiameter * .6
    Code "G91 G0 Z-10"

Rem Probe Right

    XNew = XCurrent + 75 'probe 75mm to right
    Code "G31 X" &XNew
    While IsMoving()
    Wend

    Code "G91 G0 X-2 F10"
    While IsMoving() 'wait for the move to finish
    Wend
    Code "G31 X" &XNew
    While IsMoving() 'wait for the move to finish
    Wend

    XPos2 = GetVar(2000)
    Code "G91 G0 X-2 F50"
    Code "G91 G0 Z10"
    XCenter = (XPos1 + XPos2) / 2 'center is midway between XPos1 and XPos2
    Code "G90 G0 X" &XCenter 'rapid move to the x center location
    While IsMoving ()
    Wend
    Call SetDro (0,0.000)
    Code "G4 P0.25"
    Code "G90 G0 Y" &YNew - OutsideDiameter * .6
    Code "G91 G0 Z-10"

Rem Probe up

    YNew = YCurrent + 75
    Code "G31 Y" &YNew
    While IsMoving()
    Wend

    Code "G91 G0 Y-2 F10"
    While IsMoving() 'wait for the move to finish
    Wend
    Code "G31 Y" &YNew
    While IsMoving() 'wait for the move to finish
    Wend

    YPos1 = GetVar(2001)
    Code "G91 G0 Y-2 F50"
    Code "G91 G0 Z10"
    Code "G90 G0 Y" &YCurrent
    Code "G91 G0 Y" &YCurrent + OutsideDiameter * .6
    Code "G91 G0 Z-10"

Rem Probe down

    YNew = YCurrent - 75
    Code "G31 Y" &YNew
    While IsMoving()
    Wend

    Code "G91 G0 Y2 F10"
    While IsMoving() 'wait for the move to finish
    Wend
    Code "G31 Y" &YNew
    While IsMoving() 'wait for the move to finish
    Wend

    YPos2 = GetVar(2001)
    Code "G91 G0 Y2 F50"
    Code "G91 G0 Z10"
    YCenter = (YPos1 + YPos2) / 2

Rem move To the center

    Code "G90 G0 Y" &YCenter
    While IsMoving ()
    Wend
    Call SetDro (1,0.000)
    While IsMoving ()
    Wend
    Call SetUserDro (1152,YPos2 - YPos1 - CurrentToolDiameter)

    Code "G4 P0.25"

    Code "F" &CurrentFeed 'restore starting feed rate
   Call ReturnG90G91State()
   Exit Sub
End If

179
VB and the development of wizards / Re: macro external center piece
« on: December 29, 2020, 01:45:43 AM »
what do you mean with double tap?

180
Mach3 will allways wait for the spindle dwell time.

to start the spindle without dwell time before going back to the work coordinates is risky, because
there may be a spindlestart sometime without tool Change.