Machsupport Forum
Mach Discussion => VB and the development of wizards => Topic started by: WF1 on July 08, 2020, 05:49:16 AM
-
Hello i'm french newbie sorry for my broken English
i do one macro for my CNC 1200 x1200x250 with ATC 8 tools bed type and fix probe
break out bord ZK motion 6 axis usb windows 10 64 bit
we replace G92 by SetDRO(2,0.00) chinese probleme with parameter probe var2000 and so and
the macro start with emty spindle no tool T0
she go pick up T1 tool n°1 Mastertool
she measure it and wright is length in tooltable
she SET the DRO Z to zero as reference for the measure of secondary tool
she put back the Mastertool o the rack
and ask you if you want measure more tool
and after routine for secondary tool
pick tool n°x
measure tool n°x
wright tool table toolx
put back tool x in the rack
and so and still tool n°8
-
'elle commence par mesurée l'outils maître, puis vous pouvez définir maximum 8 d’outils si vous le souhaitez ou annuler à la fin.
' elle effectue 2 palpage pour chaque longueur d' outils pour auguementer la precision
Sub Main()
'**************** PREPARATION ************************
' variable n°3 difference longueur outils maitre moins outils secondaire
Code "M9" ' STOP L ARROSAGE
DoSpinStop() ' STOP LA SPINDLE
Sleep(10) ' donne le temps de charge à fond
MaxToolNum = 8 'Maximum d outils pour le rack
ToolDown = -200 'Z bas position pour prendre ou relacher les outils dans le rack
ToolUp = -50 'Z haut de secu pour les deplacement au dessus table et rack
Yprepa = 1000 'Y position pour la descente du porte outils permettant encliquement dans les rainures des berceaux
Ypos = 1176.33 'Y position à fond de berceau pour prendre ou relacher l outils
XpalF = 141.1 'X position palpeur fixe en X
YpalF = 1165.8 'Y position palpeur fixe en Y
NewTool = Tnum ' le numero du nouvel outils = le n° d outils dans la table d 'outils
OldTool = GetOEMDRO (824) 'enregistre le numero d 'outils dans la broche
Tnum= 1
tool = GetSelectedTool()
NewTool = tool
ActivateSignal(OUTPUT5) 'remonte les balais anti-projection en haut
MsgBox(" *** la broche doit etre VIDE Pas d'outils ***")
MachMsg ("Prêt à exécuter le réglage de L'OUTILS MAITRE N°1 BROCHE VIDE SANS OUTILS < tool information =0> ET Ok", "OUTILS MAITRE", 1)
If Ret= 2 Or OldTool<>0 Then End 'si Ret=2 ou si Tool differend de zero alors fin du programme
'************************************* REM VA CHERCHER L OUTILS N°1 MAITRE ************************
NewTool = 1
Code "G0G53 Z" & ToolUp 'Z haut de secu pour les deplacement au dessus table et rack
Call MovePos(NewTool) ' appel MovePos(NewTool)coordonnées Machine des outils
While IsMoving()
Wend
Code "G0G53 Z" & ToolUp 'Z haut de secu pour les deplacement au dessus table et rack
Code "G0G53 Y" & Ypos 'Y position à fond de berceau pour prendre ou relacher l outils
ActivateSignal(OUTPUT6) 'active la sortie 5 ( machoires) pour relacher l'outils
Sleep(4) '**tempo 10 s secondes pour relacher l'outils + jet d air chasse copeaux
Code "G53 Z" & ToolDown 'Z bas position pour prendre ou relacher les outils dans le rack
Code "G4 P2.75" ' temporisation 2.75 seconde
While IsMoving() ' tant que ça bouge
Wend
DeactivateSignal(Output6) 'desactive la sortie 5 de la carte en plus ou en moins selon la config des pins
Code "G4 P1.50" 'temporisation 2secondes attente fermeture des machoires sortie 5
While IsMoving() 'tant que ça bouge
Wend
Code "G53 Y" & Yprepa 'Y position pour la descente du porte outils permettant encliquement dans les rainures des berceaux
Code "G4 P1.75" '** temporisation 1.75 seconde
Code "G0G53 Z" & ToolUp 'Z haut de secu pour les deplacement au dessus table et rack
Code "G0G53 X"&XpalF &"Y"&YpalF 'va audessus du palpeur fixe
While IsMoving() ' tant que ça bouge
Wend
SetOEMDRO (824, NewTool)
Sleep(1)
'***************************************** Rem MESURE DE L OUTILS N°1 MAITRE ************************
Code "G31 Z-150 f 350." ' descente sur le palpeur jusqu'a -150 avance f=350
While IsMoving ( ) 'tant que ça bouge
Sleep(3) ' temporisation 10s
Wend
PRP= GetOEMDRO(802)+10
Code "G0 Z" & PRP ' remonte de10mm au dessus de la sonde
Code "G31 Z-150. f 150." ' descente sur le palpeur jusqu'a -150 avance f=150
While IsMoving ( ) 'tant que ça bouge
Sleep(3) ' temporisation 10s
Wend
SetDRO(2,0.00) 'Code "G92 Z0.00"***passe z à o.oo en sans mouvement en relatif origine des mesures de longueur
Tlo = GetDro(2) ' valeur de z Tlo = GetDro(2) '
SetToolParam(Tnum,2,Tlo) ' ecrit la longueur z de l outils n°1 dans la table d outils
Sleep(4) 'tempo 3 s pour ecriture
Code "G00 G53 Z" & ToolUp ' va a grande vitesse en Z secu coordonnées Machine
Code"f500"
N1: '************************ ROUTINE nom de la routine N1 *********************************************
'************* PREPARATION N1 **********
OldTool = GetOEMDRO(824)
NewTool= NewTool +1
Tnum = NewTool
Ret = MachMsg ("Etes-vous prêt pour le réglage de l’outil suivant?", "OUTILS SECONDAIRES",1)
If Ret=2 Or NewTool>8 Then End ' si Ret=2 reponse NON=2 alors fin du programme ou outils superieur à 8 alors fin
Call MovePos(OldTool) '**** appel MovePos(OldTool) coordonnées Machine des outils
While IsMoving() ' tant que ça bouge
Wend 'fin du mouvement
Code "G0G53 Y" & Yprepa 'Yprepa position pour la descente du porte outils permettant encliquement dans les rainures des berceaux
Code "G53 Z" & ToolDown 'va à Z position pour relacher les outils dans le rack
Code "G53 Y"& Ypos 'va à Y position à fond de berceau pour prendre ou relacher l outils
Sleep(1) ' temporisation 1. seconde
While IsMoving()
Wend
ActivateSignal(OUTPUT6) 'active la sortie 6 machoires OUVERTES pour relacher l'outils
Code "G4 P2.75" ' temporisation sans mouvement 2.75 secondes pour relacher l'outils + jet d air chasse copeaux
Code "G0G53 Z" & ToolUp ' monte en Z secu coordonnées Machine
Call MovePos(NewTool) '****appel MovePos(NewTool)coordonnées Machine des outils
While IsMoving()
Wend
Code "G0G53 Z" & ToolUp 'Z haut de secu pour les deplacement au dessus table et rack
Code "G0G53 Y" & Ypos 'Y position à fond de berceau pour prendre ou relacher l outils
Code "G53 Z" & ToolDown 'Z bas position pour prendre ou relacher les outils dans le rack
Code "G4 P2.75" ' temporisation 2.75 seconde
While IsMoving() ' tant que ça bouge
Wend
DeactivateSignal(Output6) 'desactive la sortie 5 MACHOIRES FERMEES
Code "G4 P 0.70" 'temporisation 2secondes attente fermeture des machoires sortie 6
While IsMoving() 'tant que ça bouge
Wend
Code "G53 Y" & Yprepa 'Y position pour la descente du porte outils permettant encliquement dans les rainures des berceaux
Code "G0G53 Z" & ToolUp 'Z haut de secu pour les deplacement au dessus table et rack
Code "G0G53 X"&XpalF &"Y"&YpalF 'va audessus du palpeur fixe
While IsMoving() ' tant que ça bouge
Wend
SetOEMDRO (824, NewTool) 'ecrit le numero du nouvel outils dans tool information dro
Sleep(1)
'********************REM MESURE DES OUTILS SECONDAIRES double palpage = prescision ****************************
Code "G31 Z-130 f350." ' descente sur le palpeur jusqu'a -150 avance f=350
While IsMoving() 'alors que ça bouge
Sleep(4) 'tempo 10 s
Wend
PRP= GetOEMDRO(802)+10 'PRP= Z +10mm
Code "G0 Z" & PRP 'remonte de 10mm
Code "G31 Z-130 f150." 'va palper jusqu'a Z-150mm vitesse 150mm/M
While IsMoving() 'alors que ça bouge
Sleep(4) ' tempo 10s
Wend
Tlo =GetDro(2) 'Tlo=GetDro(2) lit la valeur de z au contact sur la sonde
SetToolParam(Tnum,2,Tlo) ' ecrit la diference de longueur de l'outils N°"" par rapport à la longueur de l outils maitre
While Ismoving() 'alors que ça bouge
Sleep(5) 'tempo 10 s
Wend
Code"f1000" ' on regle l avance icipour les deplacements qui n ont pas de G0
GoTo N1 ' retourne au debut de la routine N1
End Sub
Sub MovePos(ByVal ToolNumber As Integer)
Select Case ToolNumber
' COORDONNEES X ,Y ET Yprepa DES OUTILS SELON LEUR Numero°
Case Is = 1 ' VALEUR X ET Y de l outils N°1 sur le rack
Xpos = 430.17
Yprepa = 1000 ' EN COORDONNEES MACHINE
YPos = 1176.33
Case Is = 2
Xpos = 543.01
Yprepa =1000
YPos = 1176.33
Case Is = 3
Xpos = 655.68
Yprepa = 1000
YPos = 1176.33
Case Is = 4
Xpos = 771.82
Yprepa = 1000
YPos =1176.33
Case Is = 5
Xpos = 885.60
Yprepa = 1000
YPos = 1176.33
Case Is = 6
Xpos = 998.28
Yprepa = 1000
YPos = 1176.33
Case Is = 7
Xpos = 1115.72
Yprepa = 1000
YPos = 1176.33
Case Is = 8
Xpos = 1227.27
Yprepa = 1000
YPos =1176.33
End Select
Code "G53 Y" & Yprepa ' position des Y prepa pour les retour d outils au rack
Code "G53 X" & XPos 'position des Xpos pour les retour d outils au rack
While IsMoving()
Wend
End Sub
Main
-
I have on the tool rack we have slot for the toolholder and we are oblige to move horizontaly to go inside he slide see drawing
if you like it send me one hello
take care of covid 19
-
HERE FIND THE LAST VERSION
there is a small bug in version 2
-
THE LAST VESION ITS WORKING NICE
' MACRO BOUTON D CHANGEMENT D OUTILS AUTO WF POUR BOB ZK
'ToolChange Macro For Bed type tool changer 11/05 Brian et06/20 WF
Sub Main()
Code "M9" 'STOP L ARROSAGE
DoSpinStop() ' STOP LA SPINDLE
ActivateSignal(Output5) ' ACTIVE LA SORTIE 5 REMONTE LE CACHE POUSSIERE
OldTool = GetOEMDRO (24) ' ENREGISTRE LE N° DE L OUTILS DANS LA BROCHE
OldTool = GetOEMDRO (1200) 'Tool In spindle DRO You must add this to your settings screen
x = GetToolChangeStart( 0 )
y = GetToolChangeStart( 1 )
z = GetToolChangeStart( 2 )
a = GetToolChangeStart( 3 )
b = GetToolChangeStart( 4 )
c = GetToolChangeStart( 5 )
tool = GetSelectedTool()
NewTool = tool
'Tool Changer Macro (Bed Type)
MaxToolNum = 8 'Maximum d outils pour le rack
ToolDown = -237.45 'Z bas position pour prendre ou relacher les outils dans le rack
ToolUp = -40 'Z haut de secu pour les deplacements au dessus table et rack
Yprepa = 1000 'Y position pour la descente du porte outils permettant encliquement dans les rainures des berceaux
Ypos = 1176.33 'Y position à fond de berceau pour prendre ou relacher l outils
Newtool= Question("Entrez le N°du nouvel Outils du N°1 au N°8 " & MaxToolNum1)
If NewTool = OldTool Or NewTool>MaxToolNum Or NewTool=0 Then' ' si Newtool est egale à OldTool alors
Message"******OOOOO**** Erreur de N° d'Outils *****OOOOO ******"
Exit Sub
End If ' sortie du sous programme
Code "G00 G53 Z" & ToolUp ' va a grande vitesse en Z secu coordonnées Machine
While IsMoving() ' tant que ça bouge
Wend 'fin du mouvement
Call MovePos(OldTool) '**** appel MovePos(OldTool) coordonnées Machine des outils
While IsMoving() ' tant que ça bouge
Wend 'fin du mouvement
Code "G53 Z" & ToolDown 'va à Z position pour relacher les outils dans le rack
Code "G53 Y"& Ypos 'va à Y position à fond de berceau pour prendre ou relacher l outils
Code "G4 P1.75" ' temporisation 1.75 seconde
While IsMoving()
Wend
ActivateSignal(Output6) 'active la sortie 6 ( machoires) pour relacher l'outils
Code "G4 P3.0" 'attend 3 secondes pour relacher l'outils + jet d air chasse copeaux
Code "G53 Z" & ToolUp ' va en Z secu coordonnées Machine
Call MovePos(NewTool) '**** appel MovePos(NewTool)coordonnées Machine des outils
While IsMoving()
Wend
Code "G53 Z" & ToolUp 'Z haut de secu pour les deplacement au dessus table et rack
Code "G53 Y" & Ypos 'Y position à fond de berceau pour prendre ou relacher l outils
Code "G53 Z" & ToolDown 'Z bas position pour prendre ou relacher les outils dans le rack
Code "G4 P2.75" ' temporisation 2.75 seconde
While IsMoving() ' tant que ça bouge
Wend
DeActivateSignal(Output6) 'desactive la sortie 6 de la carte en plus ou en moins selon la config des pins
Code "G4 P2.0" 'temporisation 2secondes attente fermeture des machoires sortie 5
While IsMoving() 'tant que ça bouge
Wend
Code "G53 Y" & Yprepa 'Y position pour la descente du porte outils permettant encliquement dans les rainures des berceaux
Code "G53 Z" & ToolUp 'Z haut de secu pour les deplacement au dessus table et rack
While IsMoving() ' tant que ça bouge
Wend
Call SetUserDRO (1200,NewTool)
SetCurrentTool( NewTool )
Code "G43 H" & NewTool 'prend compte la difference de longueur d outils par rapport à l'outils N°1 qui reference
' et avec lequel on fait le zero piece
Code "G00 X" & x & " Y" & y 'retourne aux positions x et y qui ont ete enregistre au debut de la macro
While IsMoving() 'tant que ça bouge
Wend
Code "G4 P10.0" 'temporisation 2secondes attente descente cache poussiere
DeActivateSignal(Output5) 'desactive la sortie 5 cache poussiere en bas
DeActivateSignal(Output6) 'desactive la sortie à la fin le changement d outils
End Sub
Sub MovePos(ByVal ToolNumber As Integer)
Select Case ToolNumber
' COORDONNEES X ET Y DES OUTILS SELON LEUR N°
Case Is = 1 ' VALEUR X ET Y de l outils N°1 sur le rack
Xpos = 430.17
Yprepa = 1000 ' EN COORDONNEES MACHINE
YPos = 1176.33
Case Is = 2
Xpos = 543.01
Yprepa =1000
YPos = 1176.33
Case Is = 3
Xpos = 655.68
Yprepa = 1000
YPos = 1176.33
Case Is = 4
Xpos = 771.82
Yprepa = 1000
YPos =1176.33
Case Is = 5
Xpos = 885.60
Yprepa = 1000
YPos = 1176.33
Case Is = 6
Xpos = 998.28
Yprepa = 1000
YPos = 1176.33
Case Is = 7
Xpos = 1115.72
Yprepa = 1000
YPos = 1176.33
Case Is = 8
Xpos = 1227.27
Yprepa = 1000
YPos =1176.33
End Select
Code "G53 Y"& Yprepa 'ok
Code "G53 X"& XPos 'ok
While IsMoving()
Wend
End Sub
Main
IF YOU USE IT SEND ME ONE HELLO ON THE SITE