1. Ce site utilise des cookies. En continuant à utiliser ce site, vous acceptez l'utilisation des cookies. En savoir plus.

Macro magasin d'outils

Discussion dans 'Mach' créé par Rivet, 13 Avril 2012.

  1. Rivet

    Rivet Apprenti

    Messages:
    88
    Inscrit:
    18 Avril 2010
    Localité:
    Suisse (FR)
    Macro magasin d'outils
    Bonjour,
    Je suis en train de refaire une cnc pour tourner avec Mach3.

    J'aimerais savoir comment paramétrer le changement d'outil (magasin en bout de table).
    -Déverrouillage de la broche par électrovanne.
    -Sur le vérin pneumatique, il y a un capteur avec deux fils. Certainement pour la confirmation du verrouillage.

    La fraiseuse concernée:
    [​IMG]
     
  2. DRACHENREITER

    DRACHENREITER Compagnon

    Messages:
    563
    Inscrit:
    11 Octobre 2010
    Localité:
    38 Grenoble
    Macro magasin d'outils
    Salut,

    Voici la macro que tu peut trouver sur mach3 pour un changeur d'outil 8 positions (pour tour il me semble) mais il n'y a pas de gestion de vérin à ma connaissance.
    EDIT: il me semble que cette exemple pourrai te convenir après relecture.

    Code:
    'ToolChange Macro For Bed type tool changer 11/05 Brian
    Sub Main()
    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      'Max number off tools for the changer
    ToolDown   = -3.125 'Z Pos to Get or drop a tool
    ToolUp     = 0.0    'Z Hieght to Rapid from tool to tool
    If NewTool = OldTool Then 
       Exit Sub
    End If
    While NewTool > MaxToolNum
    NewTool = Question ("Enter New Tool Number up to " & MaxToolNum)
    Wend
    Code "G00 G53 Z" & ToolUp
    While IsMoving()
    Wend
    Call MovePos(OldTool)
    While IsMoving()
    Wend
    Code "G53 Z" & ToolDown
    Code "G4 P.75"
    While IsMoving()
    Wend
    ActivateSignal(Output1) 'Turn On Draw bar to release the tool
    Code "G4 P1.0"    'Wait for the tool to release
    'SystemWaitFor (7) 'Wait for the tool Release Limit switch
    Code "G53 Z" & ToolUp
    Call MovePos(NewTool)
    While IsMoving()
    Wend
    Code "G53 Z" & ToolDown
    Code "G4 P.75"
    While IsMoving()
    Wend
    DeActivateSignal(Output1) 'Turn Off Draw bar to Clamp the tool
    Code "G4 P1.0"    'Wait for the tool to Clamp
    While IsMoving()
    Wend
    Code "G53 Z" & ToolUp
    Call SetUserDRO (1200,NewTool)
    SetCurrentTool( NewTool )
    Code "G00 X" & x & " Y" & y 'Move back to where the tool change was prompted
    End Sub
    
    Sub MovePos(ByVal ToolNumber As Integer)
    
    Select Case ToolNumber
           Case Is = 1
             Xpos = 12.00
             YPos = 2.00
           Case Is = 2
             Xpos = 14.00
             YPos = 2.00
           Case Is = 3
             Xpos = 16.00
             YPos = 2.00
           Case Is = 4
             Xpos = 18.00
             YPos = 2.00
           Case Is = 5
             Xpos = 12.00
             YPos = 4.00
           Case Is = 6
             Xpos = 14.00
             YPos = 4.00
           Case Is = 7
             Xpos = 16.00
             YPos = 4.00
           Case Is = 8
             Xpos = 18.00
             YPos = 4.00
    End Select
    
    Code "G53 X" & XPos & " Y" & YPos
    End Sub
    Main 
    Voir la pièce jointe M6Start.zip
    ↑  macro mach 3
     
  3. Rivet

    Rivet Apprenti

    Messages:
    88
    Inscrit:
    18 Avril 2010
    Localité:
    Suisse (FR)
    Macro magasin d'outils
    Je te remercie pour la macro qui vas déjà bien dégrossir l'affaire :-D

    Avec le peut de VisualBasic que j'ai appris en bricollant MS_Access 2000, j'ai traduit ta macro comme suit: "- merci à me signaler les erreurs."

    Code:
    'ToolChange Macro For Bed type tool changer 11/05 Brian
    Sub Main()		'  ??? DEBUT DE LA MACRO "MAIN" ???
    OldTool = GetOEMDRO (1200) 	' n° de l'outil actuel copier dans la DRO...
    'Tool In spindle DRO You must add this to your settings screen
    x = GetToolChangeStart( 0 )	'posion des axes avant le changement d'outil
    y = GetToolChangeStart( 1 ) ' "
    z = GetToolChangeStart( 2 ) ' "
    a = GetToolChangeStart( 3 ) ' "
    b = GetToolChangeStart( 4 ) ' "
    c = GetToolChangeStart( 5 ) ' "
    tool = GetSelectedTool()	' n° de l'outil désiré copier depuis T... de la commande M6
    NewTool = tool				' NewTool = n° de l'outil désiré
    'Tool Changer Macro (Bed Type)
    MaxToolNum = 8				' n° d'outil maximume pour le chargeure
    'Max number off tools for the changer
    ToolDown   = -3.125 		' ?? hauteur Z du chargeure d'outil ??
    'Z Pos to Get or drop a tool
    ToolUp     = 0.0			' ?? hauteur de déplacement vers le chrageure d'outil ??
    'Z Hieght to Rapid from tool to tool
    If NewTool = OldTool Then	' Ci le nouvel outil et = à l'ancien ...
    	Exit Sub				' ... arrêter la macro
    End If						' ... fin de ci
    While NewTool > MaxToolNum	' Quand : le n° d'outil désiré et plus grand que le max d'outil ...
    NewTool = Question ("Entrer un n° d'outil plus petit que " & MaxToolNum)	' ... le n° d'outil et = à la boîte de question "Entrer un n° d'outil plus petit que ( nombre d'outil du chargeure)"
    ' à remplacer par : NewTool = Question ("Enter New Tool Number up to " & MaxToolNum +1 )
    Wend						' ... fin de quand
    Code "G00 G53 Z" & ToolUp	' relève Z à la hauteur de déplacement "G53 = valeur absolue"
    While IsMoving()			' Attend que la valeur Z soit atteinte ...
    Wend						' fin de l'attente
    Call MovePos(OldTool)		' ???? déplace à la position de changemment de déchargemment de l'outil (oldTool)  ??? X? Y? Z? A? ...
    While IsMoving()			' Attend que le déplacement soit fini ...
    Wend						' ... fin de l'attente
    Code "G53 Z" & ToolDown		' abesse Z à la hauteur de changement d'outil "G53 = valeur absolue"
    Code "G4 P.75"				' fait une pose de 0.75 seconde
    While IsMoving()			' Attend la fin de la pose ...
    Wend						' ... fin de l'attente
    ActivateSignal(Output1)		' Active le signal de libération de l'outil "Output1 = on"
     'Turn On Draw bar to release the tool
    Code "G4 P1.0"				' Pause de 1 seconde
        'Wait for the tool to release
    'SystemWaitFor (7) 'Wait for the tool Release Limit switch
    Code "G53 Z" & ToolUp		' relève Z à la hauteur de déplacement "G53 = valeur absolue"
    Call MovePos(NewTool)		' ???? déplace à la position de changemment de chargement de l'outil (NewTool)  ??? X? Y? Z? A? ...
    While IsMoving()			' Attend que le déplacement soit fini ...
    Wend						' ... fin de l'attente
    Code "G53 Z" & ToolDown		' abesse Z à la hauteur de changement d'outil
    Code "G4 P.75"				' fait une pose de 0.75 seconde
    While IsMoving()			' Attend la fin de la pose ...
    Wend						' ... fin de l'attente
    DeActivateSignal(Output1)	' Désactive le signal de libération de l'outil "Output1 = off"
     'Turn Off Draw bar to Clamp the tool
    Code "G4 P1.0"				' Pause de 1 seconde
        'Wait for the tool to Clamp
    While IsMoving()			' Attend la fin de la pose ...
    Wend						' ... fin de l'attente
    Code "G53 Z" & ToolUp		' Relève Z à la hauteur de déplacement
    Call SetUserDRO (1200,NewTool)	' ?????  Inscrit la valeur du nouvel outil dans la DRO...
    SetCurrentTool( NewTool )	' défini le nouvel outil comme outil actif
    Code "G00 X" & x & " Y" & y	' Remet la broche en position X,Y relevée au début de la macro
     'Move back to where the tool change was prompted
    End Sub						' FIN DE LA MACRO
    
    Sub MovePos(ByVal ToolNumber As Integer)	' SOUS MACRO (début)
    
    Select Case ToolNumber	' Relève les coordonnées des outil selon leur n° ...
           Case Is = 1				' Le n° 1  comprend les valeurs ...
             Xpos = 12.00				' Position en X (??? certainnement en coordonée absolue ???)
             YPos = 2.00				' Position en Y
           Case Is = 2				' Le n° 2  comprend les valeurs ...
             Xpos = 14.00				' ...
             YPos = 2.00
           Case Is = 3
             Xpos = 16.00
             YPos = 2.00
           Case Is = 4
             Xpos = 18.00
             YPos = 2.00
           Case Is = 5
             Xpos = 12.00
             YPos = 4.00
           Case Is = 6
             Xpos = 14.00
             YPos = 4.00
           Case Is = 7
             Xpos = 16.00
             YPos = 4.00
           Case Is = 8
             Xpos = 18.00
             YPos = 4.00
    End Select				' ... fin du relever de positions
    
    Code "G53 X" & XPos & " Y" & YPos	' ??? Valeur de la sous macro remplacer par Call dans le code ???
    End Sub								' FIN DE LA SOUS MACRO
    Main 	' ??? FIN DE LA MACRO "MAIN" ???
    
    -La fonction "Call" je ne connait pas (ou plus). Ex.: "Call MovePos(OldTool)" ou "Call SetUserDRO (1200,NewTool)"
    -Pour l'activation de l'outil je pence que c'est ça: "ActivateSignal(Output1) 'Turn On Draw bar to release the tool"

    Ce qui me gène avec cette macro, c'est que l'emplacement du chargeur et le numéro d'outil sont lié. Ce qui limite dans mon cas la table à 3 outil.
    Une des solution serait d'ajouter un cadre avec les données dans le "screen" de Mach.
    un cadre un peut comme ça:
    [​IMG]


    Bon, là il faut que j'y aille.
    Salutations.
     
  4. DRACHENREITER

    DRACHENREITER Compagnon

    Messages:
    563
    Inscrit:
    11 Octobre 2010
    Localité:
    38 Grenoble
    Macro magasin d'outils
    Salut,
    Oui pour moi il s'agit de la variable qui active le vérin de serrage/déserrage de l'outil.

    G53 il me semble qu'il s'agit de l'origine machine.
     
  5. dh42

    dh42 Compagnon

    Messages:
    3 978
    Inscrit:
    4 Septembre 2009
    Localité:
    Près de St Etienne (42)
    Macro magasin d'outils
    Salut,

    Si tu ajoute un G53 après un G0 ou G1, cela signifie que tu utilise les coordonnées machine au lieu des coordonnées courantes de travail.

    Attention, contrairement au G54 G55 etc ... le G53 doit être répété après chaque commande G0/G1, il n'est pas persistant comme les autres offsets.

    ++
    David
     
  6. Rivet

    Rivet Apprenti

    Messages:
    88
    Inscrit:
    18 Avril 2010
    Localité:
    Suisse (FR)
    Macro magasin d'outils
    Je vous remercie de la remarque. J'en prend note (en fait c'est ce que je pencais, mais j'ai pas sus l'écrire :oops: )

    Le faite que ça ne soit pas persistant et une bonne chose dans une macro, cela évite de modifié l'exécution du G_code.

    Pour la fonction Call j'ai l'éxplication ici, cela active bien la sous macro.
    Y disent: "Si la procédure retourne une valeur, l'instruction Call l'ignore" donc pas de valeur transférée depuis la sous macro.
    Par contre la ligne "Call SetUserDRO (1200,NewTool)" , je ne comprend toujours pas.

    Pour avoir les coordonnées d'entrer dans le magasin et de posage de chaque outil, il serait bien de pouvoir les retournées dans la macro principal.
    J'ai essayé de remplacer "Call" par "Function" mais je n'arrive pas à retourner plus d'une valeur. Donc je vais essayer avec "Call".

    Salutations.
     
  7. dh42

    dh42 Compagnon

    Messages:
    3 978
    Inscrit:
    4 Septembre 2009
    Localité:
    Près de St Etienne (42)
    Macro magasin d'outils
    Salut

    Call SetUserDRO (1200,NewTool) est équivalent à SetUserDRO (1200,NewTool) (le call est optionnel en VB)

    SetUserDRO = donner une valeur à la DRO n° 1200 (DRO définie par l'utilisateur = afficheur du N° d'outil probablement)

    NewTool est probablement une variable contenant le n° du nouvel outil.

    Donc en gros ça sert à afficher le N° du nouvel outil dans l'afficheur de N° d'outil.

    ++
    David
     
  8. Rivet

    Rivet Apprenti

    Messages:
    88
    Inscrit:
    18 Avril 2010
    Localité:
    Suisse (FR)
    Macro magasin d'outils
    OK pour "Call", MERCI

    Pour ce soir juste une petite chose, est ce que le facteur d'échelle des axes et surtout les Unitée ( mm/Pouce) on une influence sur les déplacements pendent une macro?

    :arrow: PS: Aucun avis sur l'utilisation d'un tableau: Porte outil <> Numérot d'outil. OU autre suggestions :!:

    Salutations
     
  9. valentin

    valentin Compagnon

    Messages:
    608
    Inscrit:
    30 Juillet 2008
    Localité:
    pas de calais france
    Macro magasin d'outils
    bonjour
    dans un pot precedent javais subgere sa

    essai cette fonction Settoolparam
    vois la definition dans le pdf macromach3

    numerooutil=1
    DiameterParam = 1
    ZoffsetParam = 2
    XwearParam = 3
    ZwearParam = 4
    SetToolParam(numerooutil, DiameterParam, 8.145)
    SetToolParam(numerooutil, ZoffsetParam, 1.2500)
    SetToolParam(numerooutil, XwearParam, 0.0005)
    SetToolParam(numerooutil, ZwearParam, 0.0013

    +++
     
  10. Rivet

    Rivet Apprenti

    Messages:
    88
    Inscrit:
    18 Avril 2010
    Localité:
    Suisse (FR)
    Macro magasin d'outils
    Selon ce que j'ai compris, dans le manuel MacroMach à la page 28,
    GetToolParam et pour relever les paramètres enregistré dans la table des outils de Mach.
    GetToolParam : importer les paramètres et SetToolParam: Exporter les paramètres.

    GetToolParam(n°de l'outil, n° de colonne). Par contre le chiffre que tu as en troisième position je ne vois pas à quoi il serre.
    n° de colonne: 1) diamètre de l'outil; 2) hauteur de l'outil; 3) décalage en X de l'outil; 4) décalage en Z de l'outil. Décalage servant à l'usinage.
    Attention pour le tournage les colonnes ne sont pas les mêmes.
    Pourquoi décalage en X et pas en Y ???

    Mon anglais étant nul, je vous remercie pour vos corrections.

    Salutations.
     
  11. dh42

    dh42 Compagnon

    Messages:
    3 978
    Inscrit:
    4 Septembre 2009
    Localité:
    Près de St Etienne (42)
    Macro magasin d'outils
    Salut,

    Alors je ne connais rien à la gestion d'outils via mach, ni d'ailleurs en Gcode, par contre les paramètres se traduiraient comme cela.

    1 = Diameter -> Diamètre
    2 = Z Offset -> décalage en Z
    3 = X Wear -> usure X ???
    4 = Z Wear -> usure Z ???

    J'ignore l'utilité de 3 et 4 et ne suis pas sur de ma traduction ... en principe seul le décalage en Z nous intéresse, ainsi que le diamètre ...

    Tu veux parler de ça: SetToolParam(numerooutil, DiameterParam, 8.145) ?

    Si oui, il n'est que pour la fonction Set... pas pour le Get... et c'est la valeur que tu veux assigner au paramètre que tu désigne dans le 2ieme argument de la fonction (dans l'exemple: DiameterParam est mis à la valeur 8.145 pour l'outil numerooutil)

    ++
    David
     
  12. DRACHENREITER

    DRACHENREITER Compagnon

    Messages:
    563
    Inscrit:
    11 Octobre 2010
    Localité:
    38 Grenoble
    Macro magasin d'outils
    Salut

    3 et 4 correspondent bien aux usures. C'est la correction du correcteur d'outil.

    Est ce que mach3 peut sortir des bits, octets, string?
     
  13. dh42

    dh42 Compagnon

    Messages:
    3 978
    Inscrit:
    4 Septembre 2009
    Localité:
    Près de St Etienne (42)
    Macro magasin d'outils
    Je ne comprends pas bien la question ; VB gère ces type de variables, c'est sur ..

    Mach3 semble également gérer les types de variables ; par exemple

    AppendTeachFile(Filename As String) As Integer

    Signifie que cette fonction prends un paramètre de type "String" en entrée et retourne un entier de type "integer"

    ++
    David
     
  14. Rivet

    Rivet Apprenti

    Messages:
    88
    Inscrit:
    18 Avril 2010
    Localité:
    Suisse (FR)
    Macro magasin d'outils
    Bonjour,
    Oui, c'est bien de celui là dont je parle. C'est bon à savoir.

    Selon ce que vous dittent, je n'arrive pas à distinguer la différence entre le 2) Z Offset et 4) Z Wear.
    Mais en faite, on pourrait entrer des données qui ne corresponde pas au entête de la table.Je pence que c'est ça qu'a voulu dire Valentin.
    Chez moi, la table d'outil correspond à la photo ci dessous.
    [​IMG]


    D'après mes essais, les "Sting"; :butthead: ceux avec la ficelle, je c'est pas; le format de données, y semble que oui". Pour les autre format, pas tester.

    Quelques photos du mécanisme de déverrouillage de l'outil.
    [​IMG]

    [​IMG]

    [​IMG]


    Quand au contacteur capteur dont je parlais dans mon premier message, je pence plutôt qu'il correspond au déverrouillage complet de l'outil.
    ce qui correspond à cette ligne de code:
    >>> SystemWaitFor (7) 'Wait for the tool Release Limit switch
     
  15. DRACHENREITER

    DRACHENREITER Compagnon

    Messages:
    563
    Inscrit:
    11 Octobre 2010
    Localité:
    38 Grenoble
    Macro magasin d'outils
    Salut,

    Peut tu faire d'autre photos à l'occasion de la partie mécanique du chargeur d'outil?

    Selon ce que vous dittent, je n'arrive pas à distinguer la différence entre le 2) Z Offset et 4) Z Wear.
    D'après mes essais, les "Sting"; :butthead: ceux avec la ficelle, je c'est pas; le format de données, y semble que oui". Pour les autre format, pas tester.
    [/quote]

    entre le 2 (Height H) et le 4 (Height wear HW)
    par exemple tu as un outil d'une hauteur en Z de XXmm tu fait un usinage simple une poche. tu usine, tu mesure la profondeur elle devait faire 10mm +/-0.01 et tu as 9.5mm. Donc tu t'es planté sur la longueur en règle générale la longueur outil on ne la change pas sauf dans les pré-réglages comme l'exemple donc H=XX-0.5 maintenant tu te lance dans la grande série de poches à la 10ième tu mesure la poche et tu mesure 9.9mm cette fois ci dans HWtu vas corriger de -0.1.

    ++
     
Chargement...
Articles en relation
  1. adriboss
    Réponses:
    15
    Affichages:
    663
  2. MCrevot
    Réponses:
    13
    Affichages:
    605
  3. dsmx
    Réponses:
    2
    Affichages:
    892
  4. v tec
    Réponses:
    0
    Affichages:
    980
  5. sdow
    Réponses:
    1
    Affichages:
    960

Partager cette page