Skip to content

Instantly share code, notes, and snippets.

@andcl
Last active July 30, 2017 18:48
Show Gist options
  • Save andcl/d59a8cb39f27cb726255fe87f8d6d37b to your computer and use it in GitHub Desktop.
Save andcl/d59a8cb39f27cb726255fe87f8d6d37b to your computer and use it in GitHub Desktop.
Mach3 Auto Tool Zero mejorado (enhanced)
CurrentFeed = GetOemDRO(818) ' Obtención de la velocidad de avance (feedrate) para después
DoSpinStop() ' Paramos la fresa (spindle) por seguridad
ZMax = 20.00 ' Longitud máxima de movimiento antes de abortar la operación de puesta a cero del eje Z
ZSonda = 19.75 ' Altura / grosor de la peana de la sonda
ZSeparacion = 2 ' Altura de separación entre la sonda y la fresa una vez realizada la operación
ZFinal = ZSonda + ZSeparacion
If GetOemLed (825) = 0 Then ' Si el eje Z no está ya sondeado (entrada de sonda ya activa)...
Opcion = MachMsg("Colocar la sonda y la pinza en su posición y pulsar 'Aceptar'. Pulsar 'Cancelar' para abortar operación", "Confirmación", 1)
If Opcion = 2 Then
MachMsg("Operación abortada", "Cancelado", 0)
Exit Sub
End If
Code "G4 P2.5" ' Retardo de 2.5 segundos para poder ir a sujetar sonda en la mesa
Code "G31 Z-" & ZMax & "F50" ' Operación de sondeado en Z negativo a baja velocidad (feed = 50) desplazando hasta ZMax mm
While IsMoving()
Sleep(200)
Wend
DoOEMButton (1010) ' Ponemos a 0 el eje Z (work coord) para empezar desde la posición actual
Code "G0 Z" & ZSeparacion ' Levantamos la fresa 2mm para separarla de la sonda y poder retirar esta última de debajo
While IsMoving ()
Sleep (200)
Wend
Call SetOemDro (802, ZFinal) ' Fijamos la posición final en el marcador (Sonda + Separación)
Opcion = MachMsg("Retirar sonda y pulsar 'Aceptar' para bajar la fresa a 0'. Pulsar 'Cancelar' para abortar operación", "Confirmación", 1)
If Opcion = 2 Then
Code "F" & CurrentFeed ' Volvemos a dejar el avance como estaba antes de comenzar la operación
MachMsg("Operación abortada", "Cancelado", 0)
Exit Sub
End If
Code "G4 P2.5" ' Retardo de 2.5 segundos extra de seguridad
Code "G1 Z0 F100" ' Desplazamiento hacia abajo hasta tocar superficie (0), a baja velocidad (feed = 100)
While IsMoving ()
Sleep (200)
Wend
DoOEMButton (1010) ' Finalmente, ponemos a 0 el eje Z (work coords)
MachMsg("Operación finalizada con éxito. Eje Z ajustado a 0", "Éxito", 0)
Code "F" & CurrentFeed ' Volvemos a dejar el avance como estaba antes de comenzar la operación
Else
MachMsg("El eje Z ya está en 0. Comprobar sonda.", "Ejecución abortada", 0)
End If
Exit Sub
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment