Auto Zero Tool - Macro unique pour Zero et Offset en Z

  • Auteur de la discussion Auteur de la discussion manivelle-ebenisterie
  • Date de début Date de début
  • Tags Tags
    mach 3

manivelle-ebenisterie

Nouveau
Bonjour à tous,
J'ai passé un peu de temps à programmer une macro pour MACH3 permettant de :
  • Établir le zéro "travail"
  • Établir un offset lors d'un changement d'outil afin d'éviter les sorties de piste consécutives à changement d'outil manuel, lorsque celui ci est plus long que l'outil qu'il remplace.
  • Contourner la limitation Getvar(2002) sur les BOB chinoises
  • Contourner les problème de contrôle de la vitesse d'avance avec la commande G31
  • Maximiser la répétabilité (environ 0.02mm de répétabilité)
Du coup, je suis content de vous la soumettre pour analyse / critique / amélioration



Les points déjà améliorables sont :
  • Prévoir le changement d'unités métriques/impériales
  • Propose une position fixe de sonde. Ici je positionne la sonde où ça m'arrange, ce qui me fait gagner du temps, n'ayant pas de changeur d'outil automatique.
 
Pour avoir un changement d'outil qui ne plante pas, il ne faut pas raisonner par la mesure d'une différence de longueur entre deux outils, mais par la mesure de la longueur de l'outil que l'on monte (TLO in english).
Pour que ça fonctionne bien, :
* il faut un capteur de sonde à une position fixe sur la table de la machine (surtout pas sur la pièce).
* étalonner un TLO = 0 sur le nez de broche (sans outil ni pince) et mémoriser la position en coordonnées machine.
* à chaque montage d'outil, le TLO sera la différence entre le 0 d'étalonnage et la position de la broche avec l'outil en position.
JP
 
Pour avoir un changement d'outil qui ne plante pas, il ne faut pas raisonner par la mesure d'une différence de longueur entre deux outils, mais par la mesure de la longueur de l'outil que l'on monte (TLO in english).
Pour que ça fonctionne bien, :
* il faut un capteur de sonde à une position fixe sur la table de la machine (surtout pas sur la pièce).
* étalonner un TLO = 0 sur le nez de broche (sans outil ni pince) et mémoriser la position en coordonnées machine.
* à chaque montage d'outil, le TLO sera la différence entre le 0 d'étalonnage et la position de la broche avec l'outil en position.
JP
Bonjour @Jipé11 ,
Je comprends bien ton point de vue dans le cas où tu utilises des outils montés sur portes outils, mais ce n'est pas si fréquent pour de petites machines.
Note qu'on pourrait facilement ajouter ce mode de fonctionnement à la macro en spécifiant une position fixe de palpage d'outil.

Du coup j'ai deux questions :
  • Quel est ton processus complet de mise à zéro (machine / nez de broche / offset outil / pièce)? Je reconnais quel miens, bien que fonctionnel, est tout à fait empirique, et je ne demande qu'à l'améliorer.
  • Dans quel cas penses tu que ma macro pourrait-elle être prise en défaut ? C'est super important de l'identifier pour le corriger ou au moins prévenir les utilisateurs.
Bonne journée,
 
Bonjour,
Mon process s'appuie sur le principe utilisé sur les machines professionnelles avec changeur automatique d'outil. La différence se situe au niveau de mesure de la longueur d'outil. Sur les centres d'usinage la longueur d'outil est mémorisé dans une table d'outil et injectée dans le process au moment du changement d'outil.
Pour les petites machines comme celles que nous utilisons, la longueur d'outil est mesurée au moment du changement manuel de l'outil.

Pour mettre en place un tel process il faut que ton post processeur reconnaisse les fonctions G43, G49, et G38.2 (ou équivalent) pour le pilotage de la sonde. La fonction G43 charge un registre TLO qui vient s'ajouter à la valeur programmée en Z, ce qui décale l'axe Z de la longueur de l'outil. Ce décalage r este actif tant que G49 n'est pas appelé (annulation TLO) ou que la machine n'est pas réinitialisée.

Processus de changement d'outil :
A la lecture de M6 dans le GCode, la broche est prise en charge, là où elle se trouve, et ramenée aux coordonnées de l'opération suivante avec les paramètres du nouvel outil.
Entre la prise en charge par M6 et le retour à l'opération suivante on a les séquences suivantes :

M5 # arrêt broche
G49 # annulation TLO outil précédent
G53 G0 Z-1 # Dégagement broche en coordonnées machine
G53 G0 X[toolchangex] Y[toolchangey]") # Position prédéterminée pour le changement d'outil
M0 # Mise en pause de la machine le temps du changement d'outil ; un appui sur Dcy relance le cycle
G53 G0 X[toolprobex] Y[toolprobey]") # Déplacement de la broche vers le point de mesure de la longueur d'outil.
G53 G0 Z[toolprobez]") # Approche rapide vers la sonde
G91 # déplacement mode relatif
G38.2 Z[distance de recherche] F[vitesse accostage] # recherche de la sonde
G0 z[1] # libération contact de sonde
G38.2 Z-1 F[vitesse de mesure] # Mesure du TLO
G90 # retour mode absolu
G43.1 Z[TLO]") # Chargement TLO dans le post processeur
G53 G0 Z-1 # broche en position haute pour éviter les collisions avec le brut lors du retour
G0 X.. Y... # déplacement rapide vers les coordonnées de l'opération suivante
M3 Sxxx # remise en marche de la broche avec ses nouveaux paramètres.

Fin de la procédure de changement d'outil.

De ce qui précède, on constate qu'il faut mémoriser 2 positions sur la machine : pour le changement d'outil (emplacement dégagé, accessible en toute sécurité) et pour la position de la sonde qui doit être sur la table et accessible même avec de très grandes pièces.

Pour plus de détails, regarde dans le pdf ci-dessous que j'ai rédigé pour bCNC ; les écrans de saisie dédiés au changement d'outil te donneront une idée pour la mise en œuvre de ta procédure.
N'hésite pas à me contacter pour les infos complémentaires.
JP
 

Fichiers joints

bonjour

j'ai rajouter une msgbox qui donne le choix entre mm et imp au lancement de la macro
au débogage elle fonctionne à tester en réel

++
 

Fichiers joints

re

je rejoins jepe11 sur la mesure d'outil
tu comprendra mieux le principe avec cette video, de plus les macros sont dispos
 
Oui, je comprends bien la procédure, et c'est vrai qu'il y a un coté systématique qui renforce la fiabilité.
D'ailleurs, merci @Jipé11 pour ton document pdf. Il est super complet et très bien fait.

Avec l'utilisation que je fais de ma machine, il faudrait que je trouve une combine pour fixer le TLS sous le niveau de la table car il m'arrive régulièrement de passer des panneaux qui débordent de la table.

Aussi ça implique d'avoir un second capteur pour palper la pièce ou le support afin d'établir le zéro "travail" non?


@totoche974 ces capteurs m'ont l'air super compacts. C'est cool. Par contre, pour ce qui est des Macros je me méfie, parce que justement, la raison d'être de ma macro n'est pas de réinventer la roue, mais de me passer du G31 qui est problématique sur ma carte de contrôle chinoise (https://www.wixhc.com/en/pc/243.html)
En effet, la valeur de sortie, sensée être écrite dans la variable 2002 n'est pas prise en compte. Aussi la vitesse mini semble être limitée. En tous cas, je n'arrive pas à déplacer l'axe à 30 mm/min. Je n'ai pas mesuré, mais on doit plutôt être à 200. Ces deux facteurs me donnent une répétabilité d'environ 0,3 mm !!!!

Prenant bonne note de vos remarques, je vais scinder ma macro en deux (j'ajouterai un second bouton sur le screenset de MACH3 - DarkScreen - que j'aime bien)
  1. macro de palpage à coordonnées fixes. Pour l'outil de référence (nez de broche par exemple) ainsi que pour définir le TLO lors d'un changement d'outil - Je mettrai la localisation du capteur dans un DRO personnalisé sous MACH3, ainsi que la valeur mesurée pour le nez de broche.
  2. macro de palpage du zéro travail, tenant compte de l'offset de l'outil en cours d'utilisation.
J'hésite encore à coder ces macro dans des fichiers VB séparés ou directement dans le screenset. Un avis la dessus? (dans tous ls cas, je coderai le coeur du sujet, la mesure incrémentale) dans une macro séparée afin de pouvoir l'utiliser depuis les différents scripts.
 
bonjour

j'ai rajouter une msgbox qui donne le choix entre mm et imp au lancement de la macro
au débogage elle fonctionne à tester en réel

++
le msgbox n'est pas dans la sub principale. Je ne sais pas si ca pose ou non problème.
Je pense qu'il faudrait récupérer le OEMLED qui va bien sous MACH3 (801 Inch / 802 mm), ou bien le Param("Unit") et changer le jeu de paramètres pour adopter des valeurs adaptées aux mm ou aux pouces.
 
Dernière édition:
Aussi ça implique d'avoir un second capteur pour palper la pièce ou le support afin d'établir le zéro "travail" non?
Non, j'utilise un capteur "volant" unique. J'ai un repère sur la table pour le placer lorsqu'il s'agit de mesurer le TLO.
Pour régler le Z OP (si il est sur le dessus du brut) je place mon capteur sur le dessus et je lance la procédure automatique. Comme la hauteur du capteur est mémorisée, la correction est automatique.
Ce qui différencie les deux procédures c'est que dans un cas la mesure est associée à G43 (TLO) alors que dans l'autre cas on valide le Z0 par un G10 L20 P(workSpace) Z(Hauteur capteur).
 
Merci beaucoup pour vos conseils. J'abandonne cette macro "à tout trop faire" et vous partage la suite de mon travail dans un nouveau sujet:
 
Excellent boulot.
Il ne reste plus qu'à le faire tester par les utilisateurs de Mach3 ; c'est la meilleure option pour le débogage.
Je te souhaite de très bons usinages.
JP
 

Sujets similaires

M
Réponses
7
Affichages
228
manivelle-ebenisterie
M
G
Réponses
1
Affichages
2 707
Greg de Nîmes
G
J
Réponses
1
Affichages
1 895
pro-ms
P
G
Réponses
4
Affichages
2 450
dh42
dh42
01power
Réponses
3
Affichages
14 993
01power
01power
tgenial
Réponses
17
Affichages
6 378
dh42
dh42
D
Réponses
9
Affichages
3 517
David80
D
taratata
Réponses
4
Affichages
4 895
taratata
taratata
esloch
Réponses
10
Affichages
3 070
sans
taratata
Réponses
1
Affichages
1 804
taratata
taratata
V
Réponses
7
Affichages
2 174
dh42
F
Réponses
1
Affichages
7 968
Uriel
Uriel
biscotte74
Réponses
9
Affichages
3 189
BOBOSS
BOBOSS

Sujets similaires

Retour
Haut