CHANGEUR D OUTILS AUTOMATIQUE METHODE

5 participants

Page 2 sur 2 Précédent  1, 2

Aller en bas

CHANGEUR D OUTILS AUTOMATIQUE  METHODE - Page 2 Empty Re: CHANGEUR D OUTILS AUTOMATIQUE METHODE

Message  dh42 Jeu 22 Juil 2021 - 19:12

Salut,

J'ai regardé ta macro M6start ; il y a malheureusement une bonne partie du process dont on ne peut pas voir le code car la macro appelle une DLL externe (ChangeTool).

Tu pourrais tenter de "reseter" la longueur d'outil en cours en ajoutant un G49 dans la macro juste avant l'appel de la fonction externe.
....
....
ZWork = GetOEMDRO(802)
Code "G49"
Call ChangeTool()
...
...

Tu fais bien ton 0 initial en ayant l'outil 0 de sélectionné ? ; si j'ai bien compris, c'est l'outil 0 qui sert de référence pour tous les autres, donc il faut faire le palpage initial du 0 en Z avec l'outil 0 actif.

++
David

dh42
Admin
Admin

Messages : 21686
Date d'inscription : 21/06/2009

http://dh42.free.fr/

Revenir en haut Aller en bas

CHANGEUR D OUTILS AUTOMATIQUE  METHODE - Page 2 Empty Re: CHANGEUR D OUTILS AUTOMATIQUE METHODE

Message  gait12 Dim 5 Sep 2021 - 22:39

merci beaucoup dh42 pour ta suggestion,
j'ai essayé le G49 mais ca n'a pas résolu...

en fait depuis que je cherche je peux reformuler le pb de cette manière plus concise et plus claire :

Je veux usiner n pièces identiques (toutes au même niveau en Z, dans le plan XY) en utilisant plusieurs systèmes de coordonnées G54, G55, G5x etc.
mais...
lorsque je lance un changement d'outil, seul le Z du dernier système de coordonnées est corrigé (en fonction de la différence de longueur d'outil), alors que les autres système de coordonnées ne sont pas rectifiés en Z...
Le tableau des décalages de travail (Work offset table) de l'onglet décalages (offset) montre clairement cela.

Du coup j'ai une seule pièce calée en Z, les autres sont décalées en hauteur. : (((

Comment faire en sorte que le Z dans chaque système de coordonnées soit rectifié compte tenu de la différence de longueur d'outil après changement de l'outil ?

merci de votre aide.

Acctek CNC 1212 ATC / CAM Fusion 360 / NC Mach3
gait12
gait12
petit nouveau
petit nouveau

Messages : 6
Points : 6
Date d'inscription : 25/05/2019
Age : 48
Localisation : Cabasse

Revenir en haut Aller en bas

CHANGEUR D OUTILS AUTOMATIQUE  METHODE - Page 2 Empty Re: CHANGEUR D OUTILS AUTOMATIQUE METHODE

Message  WF Mer 8 Sep 2021 - 14:59

Bonjour à tous & à DH42
concernant le changement d outils  automatique
j ai eu beaucoup de problème avec xt8 je l ai virer j ai mis un driver d une carte simple 3 axes sans changement d outils et je suis entrain de réécrire une macro pour le changement d outils
je n ai pas eu le temps de retravailler dessus la voila brut de décoffrage à tester impérativement

Code:
         

          'elle commence par mesurer l'outils  maître, puis vous pouvez mesurer maximum 8 d’outils ou moins.
        ' elle effectue 2 palpages pour chaque longueur d' outils pour augmenter la précision on divise  l'erreur par 2
 
          'OUTPUT6 sortie balais cache poussières      OUTPUT7 clamps mâchoires dans la broche qui bloquent les outils
         
          Sub Main()   
                                '**************** PREPARATION ************************
                                       
          Code "M9"                    ' STOP L ARROSAGE
          DoSpinStop()                ' STOP LA SPINDLE 
          Code " M80"                  ' macro remonte le balais cache poussière et allume la led balais haut
          MaxToolNum =  8              'Maximum d outils  pour le rack support
          ToolDown  = -237.3156      'Z -237.3156 bas position pour prendre ou relacher les outils dans le rack
          ToolUp    = -50            'Z-50 haut de sécu pour les déplacements au dessus table et rack
          Yprepa    =  1080          'Y1080 position pour la descente du porte outils  permettant l'encliquement dans les rainures des berceaux du rack
          Ypos      =  1186.325      'Y1186.325  position à fond de berceau  pour prendre ou relacher l outils
          XpalF      =  141.1  '***à vérifier ***      'X position palpeur fixe en X
          YpalF      =  1165.07  '***à vérifier ***      'Y  position palpeur fixe en Y
          Zprepapalp = -165            'Z approche du palpeur fixe le dessus étant à -210.12 mm LED ETEINTE -210.22mm LED ALLUMEE course max G31 40mm-20MM LONGUEUR MAX FRAISE=-190mm
          Zpalp      = -190            '  VIP arret20mm au-dessus du palpeur Z valeur de la course de descente recherche du contact
          NewTool = Tnum              'le numéro du nouvel outils = le n° d outils  dans la table d 'outils
          OldTool = GetOEMDRO (824)   'enregistre le numéro d 'outils dans la broche 
          Tnum= 1                      'numéro 1 outils maitre référence
         
          tool = GetSelectedTool()
          NewTool = tool
 MachMsg (" VIP ***Les cote du rack porte outils deT4 à T8 + palpeur fixe X et Y sont à vérifier le REFERENCEMENT doit etre fait avant la mesure *** ","", 1)'      à supprimez après les cotes

                                      ' REM **vérifications avant départ du cycle**     
       
        If IsOutputActive(OUTPUT6) Or IsActive(INPUT3) Then          ' vérifie que les balais sont en haut
          MsgBox ("**** LE PARE POUSSIERE DOIT ETRE EN HAUT **** ")
          Exit Sub
          End If
       
        If Oldtool<>0 Then                                            ' si le N° d outils est diffèrent de zéro alors
        MsgBox(" *** la Broche doit être VIDE  Pas d'Outils ***")    ' vérifie que la broche soit vide
        Exit Sub
        End If
       
        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  Then        'si Ret=2 réponse  =non alors fin du programme                               
                    MsgBox("**** ERREUR N° D'OUTILS = BROCHE VIDE Tool N°0 **** ")
          Stop
       
            End If
                 
            '************************************* REM VA CHERCHER L OUTILS N°1 MAITRE ************************
       
          SetUserLED (1919,1)                     ' Allume LA  LED 1919 TOOL CHANGE EN COURS
          NewTool = 1                              'numéro 1 outils maitre référence
          Code "F1000"
          Code "G0G53 Z" & ToolUp                  'Z haut de secu pour les                      'elle commence par mesurer l'outils  maître, puis vous pouvez mesurer maximum 8 d’outils ou moins.
        ' elle effectue 2 palpages pour chaque longueur d' outils pour augmenter la precision on divise  l'erreur par 2
 
          'OUTPUT6 sortie balais cache poussieres      OUTPUT7 clamps machoire dans la broche qui bloquent les outils
         
          Sub Main()   
                                '**************** PREPARATION ************************
                                       
          Code "M9"                    ' STOP L ARROSAGE
          DoSpinStop()                ' STOP LA SPINDLE 
          Code " M80"                  ' macro remonte le balais cache poussiere et allume la led balais haut
          MaxToolNum =  8              'Maximum d outils  pour le rack support
          ToolDown  = -237.3156      'Z -237.3156 bas position pour prendre ou relacher les outils dans le rack
          ToolUp    = -50            'Z-50 haut de secu pour les deplacements au dessus table et rack
          Yprepa    =  1080          'Y1080 position pour la descente du porte outils  permettant encliquement dans les rainures des berceaux du rack
          Ypos      =  1186.325      'Y1186.325  position à fond de berceau  pour prendre ou relacher l outils
          XpalF      =  141.1  '***à verifier ***      'X position palpeur fixe en X
          YpalF      =  1165.07  '***à verifier ***      'Y  position palpeur fixe en Y
          Zprepapalp = -165            'Z approche du palpeur fixe le dessus étant à -210.12 mm LED ETEINTE -210.22mm LED ALLUMEE course max G31 40mm-20MM LONGUEUR MAX FRAISE=-190mm
          Zpalp      = -190            '  VIP arret20mm audessus du palpeur Z valeur de la course de descente recherche du contact
          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                      'numero 1 outils maitre reference
         
          tool = GetSelectedTool()
          NewTool = tool
 MachMsg (" VIP ***Les cote du rack porte outils deT4 à T8 + palpeur fixe X et Y sont à verifier le REFERENCEMENT doit etre fait avant la mesure *** ","", 1)'      à supprimez apres les cotes

                                      ' REM **verifications avant depart du cycle**     
       
        If IsOutputActive(OUTPUT6) Or IsActive(INPUT3) Then          ' verifie que les balais sont en haut
          MsgBox ("**** LE PARE POUSSIERE DOIT ETRE EN HAUT **** ")
          Exit Sub
          End If
       
        If Oldtool<>0 Then                                            ' si le N° d outils est different de zero alors
        MsgBox(" *** la Broche doit etre VIDE  Pas d'Outils ***")    ' verifie que la broche soit vide
        Exit Sub
        End If
       
        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  Then        'si Ret=2 reponse  =non alors fin du programme                               
                    MsgBox("**** ERREUR N° D'OUTILS = BROCHE VIDE Tool N°0 **** ")
          Stop
       
            End If
                 
            '************************************* REM VA CHERCHER L OUTILS N°1 MAITRE ************************
       
          SetUserLED (1919,1)                     ' Allume LA  LED 1919 TOOL CHANGE EN COURS
          NewTool = 1                              'numero 1 outils maitre reference
          Code "F1000"
          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 en bas du programme
          While IsMoving()                        ' tant que ça bouge
          Wend 
          Code "F1000"                            'avance 1000m/mn
          Code "G53 Z" & ToolUp                    'en haut Z hauteur de secu pour les deplacement au dessus table et rack
          Code "F500"                              'avance 500m/mn
          Code "G53 Y" & Ypos                      ' va en haut horizontal  à fond de berceau en  Y position à fond de berceau  pour etre audessus de l outils
          Code "F1000"                            ' avance 1000mm/mn
          While IsMoving()                        ' tant que ça bouge
          Wend

          ActivateSignal(OUTPUT7)                  'Ouvre Machoires  active la sortie 7  pour prendre l'outils
   
          Code "F400"
          Code "G53 Z" & ToolDown                  ' descend Z bas position pour prendre  l outils dans le rack
          While IsMoving()                        ' tant que ça bouge
          Wend
          Sleep(400)                              ' temporisation 2 secondes
          DeactivateSignal(OUTPUT7)                'Ferme les Machoires desactive la sortie 7 pour prendre l'outils
 
          Sleep(1000)                              'temporisation 1.50 seconde attente fermeture des machoires sortie 5
         
          Code "F300"                              'avance 300m/mn         
          Code "G53 Y" & Yprepa                    'sort du berceau horizontal Yprepa à cause de l' encliquement dans les rainures des berceaux
          Sleep(400)                              'temporisation 0.8 seconde
          Code "F1000"                            'avance 1000m/mn
          Code "G53 Z" & ToolUp                    'remonte Z haut de secu pour les deplacement au dessus table et rack
          SetUserLED (1919,0)                     ' Eteint  LA  LED 1919 TOOL CHANGE EN COURS

          Code "G53 X"& XpalF &"Y"&YpalF          ' va en haut au dessus du palpeur
          Code "F300" 
          Code "G53Z" &  Zprepapalp                  'descente approche audessus du palpeur fixe etdescend à -160mm
          While IsMoving()                        ' tant que ça bouge
          Wend
          Sleep (500)
                '****** Rem MESURE DE L OUTILS N°1 MAITRE ************************
         
        SetOEMDRO (824, NewTool)                  ' ecrit le ° du nouvel outils
        Sleep(500)                                'temporisation 200ms pour ecrire dans la visu le n°d'outils                                 
      Code"F20"                                   
      Code "G31 Z"& Zpalp                  ' descente sur le palpeur jusqu'a Zpalp -190 mm avance F=50
      While IsMoving ( )                          'tant que ça bouge
      Wend
      Sleep(200)                                  'tempo 800 ms                                     
     
      A=  GetOEMDRO (802)                        'lit la valeur visu Z =A
      Sleep (500)                                'tempo 500ms pour lire la valeur Z
      S = A + 10                                  ' ajoute 10mm à la valeur  A         
      Code "F400"                                'avance 400m/mn                                   
      Code "G0 Z"& S                              'S remonte de 10mm au dessus de la sonde
      While IsMoving ( )                          'tant que ça bouge
      Wend
      Sleep (400)                                'tempo 500ms
      Code"F15"                                         
      Code "G31 Z"& Zpalp                  'descente sur le palpeur jusqu'a -190mm avance F=20 mm/mn
      While IsMoving ( )                          'tant que ça bouge
      Wend     
      Sleep(400)                                  'tempo 800ms 
                                         
      Hb =  GetOEMDRO (802)                      ' lit la valeur de Z     
      L = ( A + Hb ) / (2)                        ' calcul valeur moyenne de Z et divise l'erreur de mesure par 2   
      Sleep (400)                                'temporisation 0.5 secondes           
 
      SetOEMDRO (802, 0.00)                      ' passe à zero la visu Z 
      Sleep (2000)                                'temporisation 2.5 secondes
                                               
      Tlo = GetOEMDRO (802)                      '  valeur de z=0  Tlo = GetDro(802)  z                                             
        Sleep (500)                                'temporisation 2 secondes
     
      SetToolParam(Tnum,2,Tlo)                  ' ecrit la longueur z de l outils n°1= Tnum dans la table d outils 2 etant la longueur outils valeur Tlo
      Sleep (800)                                'tempo 2 s pour ecriture dans la tool table
     
      Code"F1000"                              ' avance 1000 mm/mn                                     
      Code "G0 G53 Z" & ToolUp                  ' va  en haut a grande vitesse en Z secu coordonnées Machine
      While IsMoving()                    ' tant que ça bouge
      Wend
           
              N1:                                                    'ROUTINE  nom de la routine N1:    *********************************************
                                 
                                              '************* PREPARATION de  N1: **********
         
          SetUserLED (1919,1)                 ' Allume LA  LED 1919 TOOL CHANGE EN COURS 
          OldTool = GetOEMDRO(824)            'lit le n° de l outils dans la broche  le vieil outils
          NewTool=  NewTool +1              ' ajoute 1 à la numerotation du nouvel outils
          Tnum = NewTool                      'numerotation du nouvel outils
          DeactivateSignal(OUTPUT6)          'remonte les  balais anti-projection en  haut
         
            If IsOutputActive(OUTPUT6) Or IsActive(INPUT3) Then        ' verification  balais haut sur verin et sur le contact de retour
            MESSAGE("**** LE PARE POUSSIERE DOIT ETRE EN HAUT **** ")  ' message en cas de balais bas
            Stop
       
            End If
            Ret = MachMsg ("Etes-vous prêt pour le réglage de l’outil suivant?", "OUTILS SECONDAIRES",1)
   
            If Ret=2 Or NewTool>8  Then                  ' si Ret=2 reponse NON=2 ou le N° d' outils superieur à 8 alors fin du programme
   
    MsgBox(" 0000 ****  ****  ARRET DES MESURES ****  **** 00000 ")  ' message de fin de mesure
    MsgBox("**** FAIRE LE ZERO SUR LA PIECE AVEC L 'OUTILS T1 MAITRE ***")  'message de rappel faire zero sur piece

    Stop
    End If
   
    Call MovePos(OldTool)              ' Appel MovePos(OldTool) coordonnées Machine des vieux  outils
        While IsMoving()              ' tant que ça bouge
        Wend                          'fin du mouvement
     
        Code "G53 Y" & Yprepa          'va en haut en Yprepa  position pour la descente du porte outils  permettant encliquement dans les rainures des berceaux
        While IsMoving()              ' tant que ça bouge
        Wend 
       
        Code "F400"
        Code "G53 Z" & ToolDown      'va en bas  à Z position pour  encliqueter l' outils dans le berceau du rack
        While IsMoving()              ' tant que ça bouge
        Wend 
       
        Code "F300"                  'avance 300 mm/mn 
        Code "G53 Y"& Ypos            'va à l hoorizontal enY position à fond de berceau  pour  relacher l outils
        While IsMoving()              ' tant que ça bouge
        Wend     
     
        Sleep(500)                    'tempo 800ms
        ActivateSignal(OUTPUT7)      'MACHOIRES OUVERTES active la sortie 7  pour relacher l'outils
        Sleep(500)                    ' temporisation sans mouvement 0.5 secondes pour relacher  l'outils + jet d air chasse copeaux             
       
        Code "F1000"                  ' avance 1000 mm/mn 
        Code "G53 Z" & ToolUp        ' remonte  en Z secu coordonnées Machine
        While IsMoving()              ' tant que ça bouge
        Wend 
     
      Call MovePos(NewTool)          'Appel MovePos(NewTool) les coordonnées Machine du nouvel  outils
          While IsMoving()            'tant que ça bouge
          Wend
          Code "F1000"                ' avance 1000 mm/mn
          Code "G53 Z" & ToolUp      'Z haut de secu pour les deplacement au dessus table et rack
          While IsMoving()              ' tant que ça bouge
          Wend 
         
          Code "G53 Y" & Ypos        'va en haut à Y position à fond de berceau  pour descendre sur  l'outils
          While IsMoving()              ' tant que ça bouge
          Wend 
         
          Code "F400"                ' avance 1000 mm/mn
          Code "G53 Z" & ToolDown    'Z bas position pour prendre  l' outils dans le rack
          While IsMoving()            ' tant que ça bouge
          Wend
       
          Sleep(500)                  ' temporisation 0.6 seconde
          DeactivateSignal(OUTPUT7)  'MACHOIRES FERMEES desactive la sortie 7
          Sleep(500)                'temporisation 0.8 secondes attente fermeture des machoires sortie 7

          Code"F300"                  ' avance 300 mm/mn
          Code "G53 Y" & Yprepa      'sort du bas du berceau  Y position desencliquement des rainures du berceaux
          While IsMoving()              ' tant que ça bouge
          Wend 
         
          Code "F1000"                ' avance 1000 mm/mn
          Code "G53 Z" & ToolUp      'remonte Z haut de secu pour les deplacement au dessus table et rack
          While IsMoving()            ' tant que ça bouge
          Wend       
          Sleep(200)                  'tempo 200 MILISECONDES
         
          Code "F1000"                ' avance 1000 mm/mn
          Code "G53 X"& XpalF &"Y" &  YpalF  ' va audessus du palpeur en haut
          While IsMoving()              ' tant que ça bouge
          Wend 
       
          Code "F300"                ' avance 300 mm/mn
          Code"Z" &  Zprepapalp      'descente approche audessus du palpeur fixe
          While IsMoving()            ' tant que ça bouge
          Wend       

                 
                  '*********REM MESURE DES OUTILS SECONDAIRES  double palpage = prescision ****************************
                                                                                     
          Sleep(600)                        'tempo MILISECONDES
          SetOEMDRO (824, NewTool)          'ecrit le numero du nouvel  outils dans la visu tool information
          Sleep(800)                        'tempo 800 MILISECONDES
                                            'MsgBox("jesuis 3")    ' message  pour debugage                                             
      Code"F20"                                           
      Code "G31 Z"& Zpalp                  ' descente sur le palpeur jusqu'a Zpalp -197mm avance F=50 mm/mn
      While IsMoving ( )                    'tant que ça bouge
      Sleep(500)                            'tempo 800 MILISECONDES
      Wend
                                             
      Q = GetOEMDRO (802)                  'lit la valeur de z au contact sur la sonde
      Sleep(500)   
     
      J= Q + 10                            '  C  ajoute +10mm a la visu Z  J=  Z +10mm
      Sleep(400)                            'tempo 0.4 s

      Code " G0 Z"& J                      'remonte de 10mm
      While IsMoving()                      ' tant que ça bouge                           
      Wend
      Sleep(600)                            'tempo 0.6 s                         
      Code"F15"
      Code "G31 Z"& Zpalp            'va palper jusqu'a Zpalp -197mm vitesse F=15mm/mn
      While IsMoving()                      'alors que ça bouge
      Sleep(500)                            ' tempo 0.8s
      Wend
                                           
      Ac = GetOEMDRO (802)                  ' lit la valeur de z au contact sur la sonde 
      Sleep(500)                            'tempo 2 ms
     
      R=( Q + Ac )/( 2)                    ' calcul valeur moyenne de z divise l erreur de mesure par 2
      Tlo = L - R                          ' calcul la difference par rapport à l outils maitre reference T1
      Sleep(400)     
                                             
    SetToolParam(Tnum,2,Tlo)                ' ecrit la diference de longueur de l'outils N°"" par rapport à la longueur de l outils maitre T1
    Sleep (1200)                            'tempo 2 s
   
    Code "F1000"     
    Code "G0G53 Z" & ToolUp                ' remonte en Z securité

   
          While IsMoving()                      ' tant que ça bouge
    Wend
    Sleep(400)                            'tempo 0.4 SECONDES
 
    SetUserLED (1919,0)          ' eteint LA LED  TOOL CHANGE EN COURS   
    Sleep(400) 
   
      GoTo N1                                ' retourne au debut de la routine  N1 pour une autre mesure
   
      End Sub                                ' fin du sous programme N1

      Sub MovePos(ByVal ToolNumber As Integer)  ' sous programme MovePos par valeur de N° d 'outils  comme entier

      Select Case ToolNumber        ' selection des coordoonées outils en fonction des numero d'outils
                            ' VALEUR X ET Y de l outils N°1 sur le rack EN COORDONNEES MACHINE
      
                                      ' 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  EN COORDONNEES MACHINE
        Xpos = 427.2687  'ok
        Yprepa = 1080    'ok         
        YPos = 1186.325  'ok         
      Case Is = 2            
        Xpos = 540.6375  'ok
        Yprepa = 1080    'ok         
        YPos = 1186.325  'ok
      Case Is = 3
        Xpos = 645.8187  'ok
        Yprepa = 1080    'ok         
        YPos = 1186.325  'ok
      Case Is = 4
        Xpos = 771.82
        Yprepa = 1080    'ok         
        YPos = 1186.325  'ok
      Case Is = 5
        Xpos = 885.6000
        Yprepa = 1080    'ok         
        YPos = 1186.325  'ok
      Case Is = 6
        Xpos = 998.2800
        Yprepa = 1080    'ok         
        YPos = 1186.325  'ok
      Case Is = 7
        Xpos = 1115.7200
        Yprepa = 1080    'ok         
        YPos = 1186.325  'ok
      Case Is = 8
        Xpos = 1227.2700
        Yprepa = 1080    'ok         
        YPos = 1186.325  'ok
        End Select
     
        Code "F1000" 
        Code "G53 Y" & Yprepa        'va en  positions de Y prepa pour les retours ou  depart d'outils du rack
        Code "G53 X" & XPos          'va en  positions d' Xpos pour les retours  ou  depart d' outils du rack
        While IsMoving()              'tant que ça bouge
        Wend                                       
                                 
        End Sub                        ' fin du sous programme MovePos  au dessus table et rack
 
      Call MovePos(NewTool)                      ' Appel MovePos(NewTool)coordonnées Machine des outils en bas du programme
          While IsMoving()                        ' tant que ça bouge
          Wend 
          Code "F1000"                            'avance 1000m/mn
          Code "G53 Z" & ToolUp                    'en haut Z hauteur de sécu pour les déplacements au dessus table et rack
          Code "F500"                              'avance 500m/mn
          Code "G53 Y" & Ypos                      ' va en haut horizontal  à fond de berceau en  Y position à fond de berceau  pour etre audessus de l outils
          Code "F1000"                            ' avance 1000mm/mn
          While IsMoving()                        ' tant que ça bouge
          Wend

          ActivateSignal(OUTPUT7)                  'Ouvre Mâchoires  active la sortie 7  pour prendre l'outils
   
          Code "F400"
          Code "G53 Z" & ToolDown                  ' descend Z bas position pour prendre  l outils dans le rack
          While IsMoving()                        ' tant que ça bouge
          Wend
          Sleep(400)                              ' temporisation 2 secondes
          DeactivateSignal(OUTPUT7)                'Ferme les Mâchoires désactive la sortie 7 pour prendre l'outils
 
          Sleep(1000)                              'temporisation 1.50 seconde attente fermeture des mâchoires sortie 5
         
          Code "F300"                              'avance 300m/mn         
          Code "G53 Y" & Yprepa                    'sort du berceau horizontal Yprepa à cause de l' encliquètement dans les rainures des berceaux
          Sleep(400)                              'temporisation 0.8 seconde
          Code "F1000"                            'avance 1000m/mn
          Code "G53 Z" & ToolUp                    'remonte Z haut de sécu pour les déplacements au dessus table et rack
          SetUserLED (1919,0)                     ' Eteint  LA  LED 1919 TOOL CHANGE EN COURS

          Code "G53 X"& XpalF &"Y"&YpalF          ' va en haut au dessus du palpeur
          Code "F300" 
          Code "G53Z" &  Zprepapalp                  'descente approche au-dessus du palpeur fixe et descend à -160mm
          While IsMoving()                        ' tant que ça bouge
          Wend
          Sleep (500)
                '****** Rem MESURE DE L OUTILS N°1 MAITRE ************************
         
        SetOEMDRO (824, NewTool)                  ' ecrit le ° du nouvel outils
        Sleep(500)                                'temporisation 200ms pour ecrire dans la visu le n°d'outils                                 
      Code"F20"                                   
      Code "G31 Z"& Zpalp                  ' descente sur le palpeur jusqu'a Zpalp -190 mm avance F=50
      While IsMoving ( )                          'tant que ça bouge
      Wend
      Sleep(200)                                  'tempo 800 ms                                     
     
      A=  GetOEMDRO (802)                        'lit la valeur visu Z =A
      Sleep (500)                                'tempo 500ms pour lire la valeur Z
      S = A + 10                                  ' ajoute 10mm à la valeur  A         
      Code "F400"                                'avance 400m/mn                                   
      Code "G0 Z"& S                              'S remonte de 10mm au dessus de la sonde
      While IsMoving ( )                          'tant que ça bouge
      Wend
      Sleep (400)                                'tempo 500ms
      Code"F15"                                         
      Code "G31 Z"& Zpalp                  'descente sur le palpeur jusqu'à -190mm avance F=20 mm/mn
      While IsMoving ( )                          'tant que ça bouge
      Wend     
      Sleep(400)                                  'tempo 800ms 
                                         
      Hb =  GetOEMDRO (802)                      ' lit la valeur de Z     
      L = ( A + Hb ) / (2)                        ' calcul valeur moyenne de Z et divise l'erreur de mesure par 2   
      Sleep (400)                                'temporisation 0.5 secondes           
 
      SetOEMDRO (802, 0.00)                      ' passe à zero la visu Z 
      Sleep (2000)                                'temporisation 2.5 secondes
                                               
      Tlo = GetOEMDRO (802)                      '  valeur de z=0  Tlo = GetDro(802)  z                                             
        Sleep (500)                                'temporisation 2 secondes
     
      SetToolParam(Tnum,2,Tlo)                  ' ecrit la longueur z de l outils n°1= Tnum dans la table d outils 2 etant la longueur outils valeur Tlo
      Sleep (800)                                'tempo 2 s pour écriture dans la tool table
     
      Code"F1000"                              ' avance 1000 mm/mn                                     
      Code "G0 G53 Z" & ToolUp                  ' va  en haut a grande vitesse en Z sécu coordonnées Machine
      While IsMoving()                    ' tant que ça bouge
      Wend
           
              N1:                                                    'ROUTINE  nom de la routine N1:    *********************************************
                                 
                                              '************* PREPARATION de  N1: **********
         
          SetUserLED (1919,1)                 ' Allume LA  LED 1919 TOOL CHANGE EN COURS 
          OldTool = GetOEMDRO(824)            'lit le n° de l outils dans la broche  le vieil outils
          NewTool=  NewTool +1              ' ajoute 1 à la numérotation du nouvel outils
          Tnum = NewTool                      'numérotation du nouvel outils
          DeactivateSignal(OUTPUT6)          'remonte les  balais anti-projection en  haut
         
            If IsOutputActive(OUTPUT6) Or IsActive(INPUT3) Then        ' vérification  balais haut sur vérin et sur le contact de retour
            MESSAGE("**** LE PARE POUSSIERE DOIT ETRE EN HAUT **** ")  ' message en cas de balais bas
            Stop
       
            End If
            Ret = MachMsg ("Etes-vous prêt pour le réglage de l’outil suivant?", "OUTILS SECONDAIRES",1)
   
            If Ret=2 Or NewTool>8  Then                  ' si Ret=2 réponse NON=2 ou le N° d' outils supérieur à 8 alors fin du programme
   
    MsgBox(" 0000 ****  ****  ARRET DES MESURES ****  **** 00000 ")  ' message de fin de mesure
    MsgBox("**** FAIRE LE ZERO SUR LA PIECE AVEC L 'OUTILS T1 MAITRE ***")  'message de rappel faire zero sur piece

    Stop
    End If
   
    Call MovePos(OldTool)              ' Appel MovePos(OldTool) coordonnées Machine des vieux  outils
        While IsMoving()              ' tant que ça bouge
        Wend                          'fin du mouvement
     
        Code "G53 Y" & Yprepa          'va en haut en Yprepa  position pour la descente du porte outils  permettant encliquement dans les rainures des berceaux
        While IsMoving()              ' tant que ça bouge
        Wend 
       
        Code "F400"
        Code "G53 Z" & ToolDown      'va en bas  à Z position pour  encliqueter l' outils dans le berceau du rack
        While IsMoving()              ' tant que ça bouge
        Wend 
       
        Code "F300"                  'avance 300 mm/mn 
        Code "G53 Y"& Ypos            'va à l hoorizontal enY position à fond de berceau  pour  relacher l outils
        While IsMoving()              ' tant que ça bouge
        Wend     
     
        Sleep(500)                    'tempo 800ms
        ActivateSignal(OUTPUT7)      'MACHOIRES OUVERTES active la sortie 7  pour relacher l'outils
        Sleep(500)                    ' temporisation sans mouvement 0.5 secondes pour relacher  l'outils + jet d air chasse copeaux             
       
        Code "F1000"                  ' avance 1000 mm/mn 
        Code "G53 Z" & ToolUp        ' remonte  en Z secu coordonnées Machine
        While IsMoving()              ' tant que ça bouge
        Wend 
     
      Call MovePos(NewTool)          'Appel MovePos(NewTool) les coordonnées Machine du nouvel  outils
          While IsMoving()            'tant que ça bouge
          Wend
          Code "F1000"                ' avance 1000 mm/mn
          Code "G53 Z" & ToolUp      'Z haut de secu pour les deplacements au dessus table et rack
          While IsMoving()              ' tant que ça bouge
          Wend 
         
          Code "G53 Y" & Ypos        'va en haut à Y position à fond de berceau  pour descendre sur  l'outils
          While IsMoving()              ' tant que ça bouge
          Wend 
         
          Code "F400"                ' avance 1000 mm/mn
          Code "G53 Z" & ToolDown    'Z bas position pour prendre  l' outils dans le rack
          While IsMoving()            ' tant que ça bouge
          Wend
       
          Sleep(500)                  ' temporisation 0.6 seconde
          DeactivateSignal(OUTPUT7)  'MACHOIRES FERMEES desactive la sortie 7
          Sleep(500)                'temporisation 0.8 secondes attente fermeture des machoires sortie 7

          Code"F300"                  ' avance 300 mm/mn
          Code "G53 Y" & Yprepa      'sort du bas du berceau  Y position desencliquement des rainures du berceaux
          While IsMoving()              ' tant que ça bouge
          Wend 
         
          Code "F1000"                ' avance 1000 mm/mn
          Code "G53 Z" & ToolUp      'remonte Z haut de secu pour les deplacements au dessus table et rack
          While IsMoving()            ' tant que ça bouge
          Wend       
          Sleep(200)                  'tempo 200 MILISECONDES
         
          Code "F1000"                ' avance 1000 mm/mn
          Code "G53 X"& XpalF &"Y" &  YpalF  ' va audessus du palpeur en haut
          While IsMoving()              ' tant que ça bouge
          Wend 
       
          Code "F300"                ' avance 300 mm/mn
          Code"Z" &  Zprepapalp      'descente approche audessus du palpeur fixe
          While IsMoving()            ' tant que ça bouge
          Wend       

                 
                  '*********REM MESURE DES OUTILS SECONDAIRES  double palpage = précision ****************************
                                                                                     
          Sleep(600)                        'tempo MILISECONDES
          SetOEMDRO (824, NewTool)          'ecrit le numero du nouvel  outils dans la visu tool information
          Sleep(800)                        'tempo 800 MILISECONDES
                                            'MsgBox("jesuis 3")    ' message  pour debugage                                             
      Code"F20"                                           
      Code "G31 Z"& Zpalp                  ' descente sur le palpeur jusqu'a Zpalp -197mm avance F=50 mm/mn
      While IsMoving ( )                    'tant que ça bouge
      Sleep(500)                            'tempo 800 MILISECONDES
      Wend
                                             
      Q = GetOEMDRO (802)                  'lit la valeur de z au contact sur la sonde
      Sleep(500)   
     
      J= Q + 10                            '  C  ajoute +10mm a la visu Z  J=  Z +10mm
      Sleep(400)                            'tempo 0.4 s

      Code " G0 Z"& J                      'remonte de 10mm
      While IsMoving()                      ' tant que ça bouge                           
      Wend
      Sleep(600)                            'tempo 0.6 s                         
      Code"F15"
      Code "G31 Z"& Zpalp            'va palper jusqu'a Zpalp -197mm vitesse F=15mm/mn
      While IsMoving()                      'alors que ça bouge
      Sleep(500)                            ' tempo 0.8s
      Wend
                                           
      Ac = GetOEMDRO (802)                  ' lit la valeur de z au contact sur la sonde 
      Sleep(500)                            'tempo 2 ms
     
      R=( Q + Ac )/( 2)                    ' calcul valeur moyenne de z divise l erreur de mesure par 2
      Tlo = L - R                          ' calcul la difference par rapport à l outils maitre reference T1
      Sleep(400)     
                                             
    SetToolParam(Tnum,2,Tlo)                ' ecrit la diference de longueur de l'outils N°"" par rapport à la longueur de l outils maitre T1
    Sleep (1200)                            'tempo 2 s
   
    Code "F1000"     
    Code "G0G53 Z" & ToolUp                ' remonte en Z securité

   
          While IsMoving()                      ' tant que ça bouge
    Wend
    Sleep(400)                            'tempo 0.4 SECONDES
 
    SetUserLED (1919,0)          ' eteint LA LED  TOOL CHANGE EN COURS   
    Sleep(400) 
   
      GoTo N1                                ' retourne au debut de la routine  N1 pour une autre mesure
   
      End Sub                                ' fin du sous programme N1

      Sub MovePos(ByVal ToolNumber As Integer)  ' sous programme MovePos par valeur de N° d 'outils  comme entier

      Select Case ToolNumber        ' selection des coordoonées outils en fonction des numero d'outils
                            ' VALEUR X ET Y de l outils N°1 sur le rack EN COORDONNEES MACHINE
      
                                      ' 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  EN COORDONNEES MACHINE
        Xpos = 427.2687  'ok
        Yprepa = 1080    'ok         
        YPos = 1186.325  'ok         
      Case Is = 2            
        Xpos = 540.6375  'ok
        Yprepa = 1080    'ok         
        YPos = 1186.325  'ok
      Case Is = 3
        Xpos = 645.8187  'ok
        Yprepa = 1080    'ok         
        YPos = 1186.325  'ok
      Case Is = 4
        Xpos = 771.82
        Yprepa = 1080    'ok         
        YPos = 1186.325  'ok
      Case Is = 5
        Xpos = 885.6000
        Yprepa = 1080    'ok         
        YPos = 1186.325  'ok
      Case Is = 6
        Xpos = 998.2800
        Yprepa = 1080    'ok         
        YPos = 1186.325  'ok
      Case Is = 7
        Xpos = 1115.7200
        Yprepa = 1080    'ok         
        YPos = 1186.325  'ok
      Case Is = 8
        Xpos = 1227.2700
        Yprepa = 1080    'ok         
        YPos = 1186.325  'ok
        End Select
     
        Code "F1000" 
        Code "G53 Y" & Yprepa        'va en  positions de Y prepa pour les retours ou  depart d'outils du rack
        Code "G53 X" & XPos          'va en  positions d' Xpos pour les retours  ou  depart d' outils du rack
        While IsMoving()              'tant que ça bouge
        Wend                                       
                                 
        End Sub                        ' fin du sous programme MovePos
voila si cela peut vous aider
bon courage
WF
WF
posteur Régulier
posteur Régulier

Messages : 119
Points : 178
Date d'inscription : 17/09/2018
Age : 68
Localisation : Bondy

Revenir en haut Aller en bas

CHANGEUR D OUTILS AUTOMATIQUE  METHODE - Page 2 Empty CHANGEUR D OUTILS AUTOMATIQUE METHODE

Message  WF Lun 13 Sep 2021 - 14:43

Bonjour à Tous à DH42 et Geait12
voila mon idée si le gcode avec changement d 'outils fonctionne pour une pièce unique
pourquoi pas utiliser le wizard multipiece que j ai modifier et qui fonctionne avec ma XHC

il faut juste l écran 1024wf8  
mettre les bitmaps dans Mach3.fr pour les images
la Macro M800 si vous voulez un compteur de pièce finies ( grande quantité de petite pièce sur plaque)
Code:

counter = getuserdro(1321)   'lit la dro du compteur
sleep (300)                           ' temporisation
counter =counter+0.5           ' ajoute une piece
sleep (300)                              ' temporisation
SetUserDRO (1321, counter)   'affiche le nombre de piece
 
 
et un petit message si ça marche
à la fin du gcode remplacé M30 par M99  mettre au-dessus ligne avant M800 pour le compteur et
bien sur  renseigne le Nombre de pièce en x et y  et la valeur de l incrément X et y
increment X = largeur pièce en X + largeur de la rainure de découpe (diamètre outils) et appuyé sur le bouton crée multipose il génère le gcode  appuyé sur raz counter (remise a zéro du compteur
voila à bientot
Fichiers joints
CHANGEUR D OUTILS AUTOMATIQUE  METHODE - Page 2 Attachment
1024wf8.zip Vous n'avez pas la permission de télécharger les fichiers joints.(65 Ko) Téléchargé 2 fois
CHANGEUR D OUTILS AUTOMATIQUE  METHODE - Page 2 Attachment
à mettre dans bitmaps mach3fr.zip Vous n'avez pas la permission de télécharger les fichiers joints.(516 Ko) Téléchargé 2 fois
WF
WF
posteur Régulier
posteur Régulier

Messages : 119
Points : 178
Date d'inscription : 17/09/2018
Age : 68
Localisation : Bondy

Revenir en haut Aller en bas

CHANGEUR D OUTILS AUTOMATIQUE  METHODE - Page 2 Empty Re: CHANGEUR D OUTILS AUTOMATIQUE METHODE

Message  gait12 Lun 13 Sep 2021 - 15:47

bonjour à tous,
et merci de vos suggestions
WF la piste du wizard m'a l'air prometteuse merci !!! avoir la possibilité de définir les répétitions en X et Y avec espacements voulus... c top ça, j'en revais !! je dois tester sur machine.
apparement déjà en mode offline ca duplique le travail.
comment ça se passe avec le changement d'outil ? le fait-il correctement ? et surtout l'optimise-t-il (toutes les repetitions avec T1 puis celles avec T2) ?
je vous tiens au courant dans la semaine
Encore merci !! Very Happy

gait12
gait12
petit nouveau
petit nouveau

Messages : 6
Points : 6
Date d'inscription : 25/05/2019
Age : 48
Localisation : Cabasse

Revenir en haut Aller en bas

CHANGEUR D OUTILS AUTOMATIQUE  METHODE - Page 2 Empty CHANGEUR D OUTILS AUTOMATIQUE METHODE

Message  WF Lun 13 Sep 2021 - 16:02

Attention le wizard d Olivier Adler et bugué il ne fonctionne pas en y il faut prendre celui que j ai corrigé Multi wf
WF
WF
posteur Régulier
posteur Régulier

Messages : 119
Points : 178
Date d'inscription : 17/09/2018
Age : 68
Localisation : Bondy

Revenir en haut Aller en bas

Page 2 sur 2 Précédent  1, 2

Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum