Advertisements

Macro "chercheur de centre" avec Mach3 et BOB USB chinoise

  • Auteur de la discussion Algone
  • Date de début
Algone
Algone
Ouvrier
16 Déc 2014
410
Aude
  • Auteur de la discussion
  • #1
Salut tout le monde, avec ma carte USB chinoise, qui fonctionne très bien, était livré plusieurs macros, avec entre autre une qui m'intéressait particulièrement, la recherche du centre d'un alésage, très pratique lors des retournements de pièces, comme pour mon cas un plateau de VTT.
J'ai donc copié la macro et collé dans la fonction adéquate:
Capture.JPG

>Opérateur > Editeur de macro bouton.
Soucis, la macro était correcte, quand je la lançais l'opération se déroulait comme il se doit mais à la fin la broche ne se retrouvait pas au centre de l'alésage comme elle aurait du être.
Après plusieurs messages avec mon grand maitre "Dh42", le soucis a été corrigé et tout fonctionne parfaitement.
En fait comme expliqué par David, la plupart des cartes chinoise USB mais aussi Eternet ne gèrent pas (ou mal) le "GetVar" que je ne saurais expliquer.
Donc la solution est d'éditer la macro et de remplacer les "GetVar" par des "GETOEMDRO".
Aux lignes: "XPos1 = GetVar(2000)" et "XPos2 = GetVar(2000)" il faut les remplacer par: "XPos1 = GETOEMDRO(800)" et "XPos2 = GETOEMDRO(800)"
Aux lignes: "YPos1 = GetVar(2001)" et "YPos2 = GetVar(2001)" il faut les remplacer par: "YPos1 = GETOEMDRO(801)" et "YPos2 = GETOEMDRO(801)"

Voilà, si ça peut aider certain d'entre vous, moi j'en profite pour remercier encore David (Dh42) qu'est vraiment quelqu'un de super :smt023

ps: si vous voulez le script complet, dites le moi et je le poste.
 
Advertisements
C
Christian67
Ouvrier
13 Mai 2012
264
Kogenheim
Salut @Algone,

Je veux bien le script complet de la macro. Ca m'arrive également de chercher le centre d'une pièce, et je le fait par calcul. Si une macro peut le faire, je gagnerai du temps.

Christian.
 
F
franck67
Compagnon
22 Déc 2011
1 190
tu parles de recherche d'un centre pour un carré ? parceque sinon dans la recherche d'un centre d'une piece ronde ( et un plateau de VTT c'est rond il me semble ..) il y a deja la macro pour info
 
Algone
Algone
Ouvrier
16 Déc 2014
410
Aude
  • Auteur de la discussion
  • #4
Je l'ai indiqué au début du message, centre d'un alésage.
Je veux pas dire de connerie mais sur mon Mach3fr je n'avais pas de macro, mais quoi qu'il en soit, là l'astuce est pour ceux qui ont des soucis avec leur cartes, tout comme les décalages qu'on pu constater certains avec le palpage d'outil.
Voilà la macro originelle, à modifier si à la fin de l'opération la pige se trouve pas au centre:

Rem VBScript To center probe inside a pipe

Dist= 20.0 'Maximum detection depth 20.0
ZDist = 4.0 'When finished, put a knife 4.0
If GetOemLed (825) <> 0 Then 'Check the probe if it is disconnected
Code "(Probe plate is grounded, check connection and try again)"
Else
DoSpinStop()
FeedCurrent = GetOemDRO(818) 'Save the feed rate
XCurrent = GetDro(0)
YCurrent = GetDro(1)
ZCurrent = GetDro(2)

Code "G4 P1" 'Pause 1s
Code "F25" 'Adjust the speed more slow

Rem Probe left

XNew = Xcurrent - Dist 'probe 20mm to left
Code "G31 X" &XNew
While IsMoving() 'wait for the move to finish
Wend
XPos1 = GetVar(2000) 'get the probe touch location

Code "G0 X" &XCurrent
While IsMoving ()
Wend
'rapid move back to start point

Rem Probe right

XNew = XCurrent + Dist 'probe 20mm to right
Code "G31 X" &XNew
While IsMoving()
Wend
XPos2 = GetVar(2000)

XCenter = (XPos1 + XPos2) / 2 'center is midway between XPos1 and XPos2
Code "G0 X" &XCenter
While IsMoving ()
Wend
'rapid move to the x center location

Rem Probe up

YNew = YCurrent + Dist
Code "G31 Y" &YNew
While IsMoving()
Wend
YPos1 = GetVar(2001)

Code "G0 Y" &YCurrent
While IsMoving ()
Wend


Rem Probe down

YNew = YCurrent - Dist
Code "G31 Y" &YNew
While IsMoving()
Wend
YPos2 = GetVar(2001)

YCenter = (YPos1 + YPos2) / 2

Rem move to the center

Code "G0 Y" &YCenter
While IsMoving ()
Wend

Code "F" &FeedCurrent 'restore starting feed rate
ZClear = Zcurrent + ZDist
Code "Z" &ZClear
End If
 
Advertisements
Haut