petite macro

nuit noire
Nouveau
5 Mai 2016
42
  • Auteur de la discussion
  • #1
bonjour à tous.
je progresse lentement en programmation...mais je progresse.
je vient de me faire une petite macro pour mon palpeur (tout juste installer), mais elle ne fonctionne pas correctement.
la voici :
'macro pour zéro z aprés changement d'outil
refcombination (1) 'référence x
refcombination (2) 'référence y
call setdro (0,-2) 'met visu x à -2
call setdro (1,10.5) 'met visu y à 10.5
code "go x26 y10.5" 'va à la position du palpeur
code "g31 z-100 f5" 'sonde en z
call setdro (2,30) 'met la visu z à la hauteur de l'étau + 30mm

je suppose que cette macro est simpliste, mais je cale un peu:
parfois les visus x et y affiche le double de la valeur demander et en relançant à nouveau, les valeurs sont bonnes.
par contre je n'arrive jamais à mettre z à 30 mm.

Je ne comprend pas où ça cloche....
 
nicoyote
Compagnon
3 Octobre 2007
813
Bergerac Dordogne
Je ne peux pas t'aider désolé par contre je suis curieux d'apprendre. Quel est la fonction de ta macro du coup?


Envoyé de mon iPhone en utilisant Tapatalk
 
dh42
Compagnon
4 Septembre 2009
5 267
Près de St Etienne (42)
Salut,

Une version modifiée qui fonctionne (enfin, elle fait ce qui est prévu :wink:)

Code:
RefCombination (1) 'référence x
RefCombination (2) 'référence y

While IsMoving 'attendre que les axes ne bougent plus
Wend

SetOEMDRO (800,-2) 'met visu x à -2
Sleep(500)
SetOEMDRO (801,10.5) 'met visu y à 10.5
Sleep(1000)

Code "G0 x26.0 y10.5" 'va à la position du palpeur

While IsMoving
Wend

Sleep(1000)

Code "G31 z-100 F5" 'sonde en z

While IsMoving
Wend

Sleep(500)

SetOEMDRO (802,30.0) 'met la visu z à la hauteur de l'étau + 30mm
Les While IsMoving/Wend ont pour but d'attendre que les axes aient finis de se déplacer, car sinon, le programme continu à la ligne suivante sans attendre la fin du déplacement (le VB et le Gcode tournent en //, sur 2 thread différents).

j'ai remplacé les call setdro par des SetOEMDRO ; l'autre formulation est obsolète (note que les n° de dro changent aussi)

j'ai mis des petites pauses (sleep()) pour laisser le temps aux afficheurs de se mettre à jour.

ici il y a une erreur de syntaxe
code "go x26 y10.5" 'va à la position du palpeur

go doit être g0 (un zéro au lieu d'un 'o' minuscule)

++
David
 
nuit noire
Nouveau
5 Mai 2016
42
  • Auteur de la discussion
  • #4
merci,
je viens d'essayer , ça marche pas mal. Juste une exception les visus x et y ne se mettent pas systématiquement à la bonne valeur. Parfois les valeurs doubles....
Il faut recommencer la manipulation une fois.
Pourtant pas de problèmes pour la visu z.
et oui "g0" et pas "go"....gros doigts maladroits.
En tout cas merci pour les infos, je comprend de mieux en mieux.
 
dh42
Compagnon
4 Septembre 2009
5 267
Près de St Etienne (42)
Salut,

je viens d'essayer , ça marche pas mal. Juste une exception les visus x et y ne se mettent pas systématiquement à la bonne valeur. Parfois les valeurs doubles....
Tiens, c'est strange ça ? pas eu ce genre de soucis ici.

Je ne vois pas trop la raison qui pourrait faire ça... à part un bug ; j'avais eu des bizarreries sur les macros avec la dernière version de Mach3, et j'ai suivi les conseils de warp9 est suis repassé à la version précédente (.062), je ne sais pas si c'est ça ..

tu peux aussi tenter de jouer sur la valeur des tempos (sleep) après les SetOEMdro pour le cas ou ton PC serait vraiment très mou, mais j'ai un peu de mal à y croire, en 500ms, même un PC antique à le temps de mettre une visu à jour ..

++
David
 
nuit noire
Nouveau
5 Mai 2016
42
  • Auteur de la discussion
  • #6
Bonsoir,
Tant que j’y pense , j’ai résolu le problème de l’affichage correcte des visus. J’ai bêtement mis une boucle dans la macro au niveau de l’affichage.

Merci encore.
 
La dernière réponse à ce sujet date de plus de 6 mois
Haut