sonde topcom
2 participants
Page 1 sur 1
sonde topcom
bonjour
y à t''il des utilisateurs utilisant le matériels de topcom ?? principalement le protege sonde SMART-MER/2
y à t''il des utilisateurs utilisant le matériels de topcom ?? principalement le protege sonde SMART-MER/2
gilles974- acharné du forum
- Messages : 446
Points : 669
Date d'inscription : 31/10/2011
Age : 65
Localisation : La Réunion
Re: sonde topcom
bonjour à tous et à DH42 en particulier
je nai pas de sonde topcom mais regarde sur leur site tu trouveras peu etre tes infos
https://topcom.cz/
je nai pas de sonde topcom mais regarde sur leur site tu trouveras peu etre tes infos
https://topcom.cz/
WF- très actif
- Messages : 281
Points : 398
Date d'inscription : 17/09/2018
Age : 72
Localisation : Bondy
Re: sonde topcom
salut WF
il y a pas les infos recherchées sur le site, pas grave , je crois avoir compris
reste à faire les tests en grandeur nature, sans peter la sonde
++
gilles
il y a pas les infos recherchées sur le site, pas grave , je crois avoir compris
reste à faire les tests en grandeur nature, sans peter la sonde
++
gilles
gilles974- acharné du forum
- Messages : 446
Points : 669
Date d'inscription : 31/10/2011
Age : 65
Localisation : La Réunion
Re: sonde topcom
en faisant du menage sur mon PC j ai trouve une macro M 556 topcom pour les sonde regarde si cela peut te servir
- Code:
Option Explicit
#expand "C:\Mach3\macros\Topcom\common_defs"
Sub Main()
Dim ErrNr As Integer
Dim MeasType As Integer
Dim TipDia, TipRadius As Double
Dim tmp, xdia, ydia As Double
Dim FeedCurrent As Integer
Const FeedBackMove=300
Const FeedFine=20
Const FeedMeas=450
Const FeedMove=500
Const Xmove=15
Const Ymove=15
Const Zmove=20
Const CenterMove=30
Const Zsink=5
Const BackMove=0.5
ErrNr=0
If(UseMacroMultiStartBlocking=true) then
If(GetVar(10556)<>0) Then Exit Sub
SetVar 10556,1 'macro 556 is running
End If
MeasType=param1()
If(MeasType=-1)Then 'if the measurement type is not defined...
MeasType=TypeLeftBottom '...use the default measurement type
End If
TipDia=GetDro(200)
TipRadius=TipDia/2
ProbeGuardBlock false
If(UseButtonForProbing=true) then
Code "(M556: Press the button to strat measurement)"
While IsActive(ButtonInput)=false
Wend
End If
Code "(M556: TipDiameter: " & TipDia & ")"
FeedCurrent = GetDRO(18)
If(MeasType=TypeLeftBottom) Then 'mereni Z a leveho dolniho rohu
WhileIsMoving
'meas in -Z
ProbeGuardBlock true
If(Probe("Z-" & Zmove,FeedMeas, relative)=false) Then
GoTo konec
End If
SlowMove "Z+" & BackMove, FeedMove, relative
If(Probe("Z-" & Zmove,FeedFine, relative)=false) Then
GoTo konec
End If
'back to Z+2
SlowMove "Z+2", FeedMove, relative
ProbeGuardBlock false
RapidMoveNoWait "X-" & Xmove, relative
RapidMoveNoWait "Z-" & Zsink, relative
WhileIsMoving
ProbeGuardBlock true
If(Probe("X+" & Xmove,FeedMeas, relative)=false) Then
GoTo konec
End If
SlowMove "X-" & BackMove, FeedMove, relative
If(Probe("X+" & Xmove,FeedFine, relative)=false) Then
GoTo konec
End If
Code "G92 X-" & TipRadius
SlowMove "X-1", FeedMove, relative
WhileIsMoving
ProbeGuardBlock false
RapidMoveNoWait "Z+" & Zsink, relative
RapidMoveNoWait "X+5 Y-" & Ymove, relative
RapidMoveNoWait "Z-" & Zsink, relative
WhileIsMoving
ProbeGuardBlock true
If(Probe("Y+" & Ymove,FeedMeas, relative)=false) Then
GoTo konec
End If
SlowMove "Y-" & BackMove, FeedMove, relative
If(Probe("Y+" & Ymove,FeedFine, relative)=false) Then
GoTo konec
End If
Code "G92 Y-" & TipRadius
SlowMove "Y-1", FeedMove, relative
WhileIsMoving
ProbeGuardBlock false
RapidMoveNoWait "Z+" & (Zsink+5), relative
RapidMoveNoWait "X+5 Y+5", absolute
WhileIsMoving
ElseIf(MeasType=TypeInnerLeftBottom) Then
WhileIsMoving
ProbeGuardBlock true
If(Probe("X-" & Xmove,FeedMeas, relative)=false) Then
GoTo konec
End If
SlowMove "X+" & BackMove, FeedMove, relative
If(Probe("X-" & Xmove,FeedFine, relative)=false) Then
GoTo konec
End If
Code "G92 X" & TipRadius
ProbeGuardBlock false
SlowMove "X+3", FeedMove, relative
WhileIsMoving
ProbeGuardBlock true
If(Probe("Y-" & Ymove,FeedMeas, relative)=false) Then
GoTo konec
End If
SlowMove "Y+" & BackMove, FeedMove, relative
If(Probe("Y-" & Ymove,FeedFine, relative)=false) Then
GoTo konec
End If
Code "G92 Y" & TipRadius
SlowMove "Y+3", FeedMove, relative
WhileIsMoving
ProbeGuardBlock false
ElseIf(MeasType=TypeCenter) Then
WhileIsMoving
code "G92 X0 Y0"
ProbeGuardBlock true
'meas in -X
If(Probe("X-" & CenterMove,FeedMeas, relative)=false) Then
GoTo konec
End If
tmp=GetOEMDro(184)
'back to X0
SlowMove "X0", FeedMove, absolute
'meas in +X
If(Probe("X+" & CenterMove,FeedMeas, relative)=false) Then
GoTo konec
End If
tmp=GetOEMDro(184)-tmp
'tmp now contains hole dimension
'go to the half (center)
SlowMove "X-" & tmp/2, FeedMove, relative
'reset X
Code "G92 X0"
'meas in -Y
If(Probe("Y-" & CenterMove,FeedMeas, relative)=false) Then
GoTo konec
End If
SlowMove "Y+" & BackMove, FeedBackMove, relative
If(Probe("Y-" & CenterMove,FeedFine, relative)=false) Then
GoTo konec
End If
tmp=GetOEMDro(185)
'back to Y0
SlowMove "Y0", FeedMove, absolute
'meas in -Y
If(Probe("Y+" & CenterMove,FeedMeas, relative)=false) Then
GoTo konec
End If
SlowMove "Y-" & BackMove, FeedBackMove, relative
If(Probe("Y+" & CenterMove,FeedFine, relative)=false) Then
GoTo konec
End If
tmp=GetOEMDro(185)-tmp
'tmp contains hole dimension, back to half
SlowMove "Y-" & tmp/2, FeedMove, relative
'reset Y
Code "G92 Y0"
ydia=tmp+TipDia
'next meas in X
'meas in -X
If(Probe("X-" & CenterMove,FeedMeas, relative)=false) Then
GoTo konec
End If
SlowMove "X+" & BackMove, FeedBackMove, relative
If(Probe("X-" & CenterMove,FeedFine, relative)=false) Then
GoTo konec
End If
tmp=GetOEMDro(184)
'back to X0
SlowMove "X0", FeedMove, absolute
'meas in +X
If(Probe("X+" & CenterMove,FeedMeas, relative)=false) Then
GoTo konec
End If
SlowMove "X-" & BackMove, FeedBackMove, relative
If(Probe("X+" & CenterMove,FeedFine, relative)=false) Then
GoTo konec
End If
tmp=GetOEMDro(184)-tmp
'tmp contains hole dimension. Back to half
SlowMove "X-" & tmp/2, FeedMove, relative
'reset X
Code "G92 X0"
xdia=tmp+TipDia
Code "(M556: Hole dimensions: X=" & xdia & ", Y=" & ydia & ")"
Else
Code "(M556: MEASUREMENT IS NOT IMPLEMENTED!)"
End If
konec:
Code "G90"
ProbeGuardBlock false
If(UseMacroMultiStartBlocking=true) then
SetVar 10556, 0
End If
Code "F" &FeedCurrent 'reset feedrate
End Sub
#expand "C:\Mach3\macros\Topcom\common_subs"
WF- très actif
- Messages : 281
Points : 398
Date d'inscription : 17/09/2018
Age : 72
Localisation : Bondy
Re: sonde topcom
bonjour
merci, j'ai les macros qui sont utilisés dans le screenset fourni par topcom
je les est prises pour mettre dans mon screenset personnalisé car je lui est pris
le boitier de protection de sonde (SMART.MER/2 )
en les investiguant, j'ai pu comprendre le fonctionnement de la protection de la sonde
code qui me sert pour mes macros perso
dispose tu d'une sonde 3D ??
merci, j'ai les macros qui sont utilisés dans le screenset fourni par topcom
je les est prises pour mettre dans mon screenset personnalisé car je lui est pris
le boitier de protection de sonde (SMART.MER/2 )
en les investiguant, j'ai pu comprendre le fonctionnement de la protection de la sonde
code qui me sert pour mes macros perso
dispose tu d'une sonde 3D ??
gilles974- acharné du forum
- Messages : 446
Points : 669
Date d'inscription : 31/10/2011
Age : 65
Localisation : La Réunion
Re: sonde topcom
non je n'ai pas de sonde mais j ai recolté tous ce qui avait trait aux sondes pour me faire une page Sonde
j ai mis une image de ma page sonde veux tu les macros qui vont avec
@+
j ai mis une image de ma page sonde veux tu les macros qui vont avec
@+
WF- très actif
- Messages : 281
Points : 398
Date d'inscription : 17/09/2018
Age : 72
Localisation : Bondy
Re: sonde topcom
merci
je suis ok pour récupérer le screen + les macros ca me permet de mieux appréhender le langage et surtout d'apprendre
j'ai fait un screen ou j'ai essayé de centraliser les fonctions principales, si ca t'interesse....
reste encore à gerer quelques bugs d'affichage rien de grave
je te joint mon MP
je suis ok pour récupérer le screen + les macros ca me permet de mieux appréhender le langage et surtout d'apprendre
j'ai fait un screen ou j'ai essayé de centraliser les fonctions principales, si ca t'interesse....
reste encore à gerer quelques bugs d'affichage rien de grave
je te joint mon MP
gilles974- acharné du forum
- Messages : 446
Points : 669
Date d'inscription : 31/10/2011
Age : 65
Localisation : La Réunion
Re: sonde topcom
M504 ZERO DESSUS PIECE
M505 ZERO CENTRE PAR L EXTERIEUR
- Code:
'ZERO Z sur PIECE est passe les visu au valeurs voulue
DoSpinStop() ' stop la spindle
Call SETUSERDRO (2245,0 ) ' passe à zero visu largeur X exterieur
Call SETUSERDRO (2244,0 ) ' passe à zero visu longueur Y exterieur
Call SETUSERDRO (2243,0 ) ' passe à zero visu largeur X interieur
Call SETUSERDRO (2242,0 ) ' passe à zero visu longueur Y interieur
code "G92.1"
AR = GetOEMDRO(2246) ' avance rapide
AL = GetOEMDRO(2253) ' avance lente
Zcourant = GETOEMDRO(802) 'Z
' ZHaut = GETOEMDRO(2249) 'Z en haut
ZzeroPiece = GETOEMDRO(2241) 'Z dessus piece
' Zbas = GetOEMDRO (2248)'Z bas
EspaceMax=GetOEMDRO(2250) ' course de detection max
If GetOemLed (825)=0 Then ' si la led probe est eteinte alors
Code "G4 P1.3" ' tempo
CODE"G91" ' passe en relatif
Code "G31 Z"&( -EspaceMax) & "F"& AL ' mesure du niveau z zero dessus piéce
While IsMoving()
Wend
CODE"G90" ' passe en absolu
Zpos1 = GETOEMDRO (802) ' valeur du zero piece
Call SETOEMDRO(802, 0) ' passe visu z à zero
Sleep(250)
Call SETUSERDRO(2241, 0) ' passe à zero
Sleep(250)
SetOEMDRO(46,6) 'ecrit la valeur fixture 6 pour work offset table valeur G59
Sleep(250)
SetOEMDRO(49,GETOEMDRO(85)) 'ecrit la valeur Zz coordonnées machine pour work offset table valeur Z
Sleep(250)
SetOEMDRO(46,1) 'ecrit la valeur fixture 1 pour work offset table valeur G54
Sleep(250)
SetOEMDRO(49,GETOEMDRO(85)) 'ecrit la valeur Zz coordonnées machine pour work offset table valeur Z
Sleep(250)
CODE"G91" ' passe en relatif
Call SETUSERDRO(2249, GETOEMDRO(802)+10)'fixe ZHaut à +20mm au dessusde la piece
Call SETUSERDRO(2248, GETOEMDRO(802) -2)'fixe Zbas à -4mm en dessous de la piece
Sleep(300)
CODE"G91"
Code "Z" & 20 &"F" & AR '
While IsMoving()
Wend
Code "(Z EST A ZERO SUR LE DESSUS DE LA PIECE )"'
Code "F" & AR ' avance rapide
Else
Code "(VERIFIEZ + TEST CABLAGE SONDE PROBE)"
End If
Exit Sub
M505 ZERO CENTRE PAR L EXTERIEUR
- Code:
'********** zero au centre par l exterieur WF le23/02/2022 ********************
Message (" FAIRE LE ZERO Z SUR LA PIECE AVEC LE BOUTON EN 1er zéro au dessus Piéce")
sleep(2000)
Message (" PLACER LA SONDE A PEU PRES AU Point de Départ en X faire X=0 et Y =0)")
sleep(800)
'Call SETUSERDRO (2245,0 )
'Call SETUSERDRO (2244,0 )
Call SETUSERDRO (2243,0 )
Call SETUSERDRO (2242,0 )
code "G92.1"
sleep(400)
Xcourant = GETOEMDRO (800)
Ycourant = GETOEMDRO (801)
Zcourant = GetOEMDRO (802)
AR = GetOEMDRO (2246) 'AvanceRapide
AL = GetOEMDRO (2253) 'AvanceLente
DmXa = GetOEMDRO (2252) 'Distance Xmax Approximative
DmYa = GetOEMDRO (2251) 'Distance Ymax Approximative
COURSEmax = GETOEMDRO (2250)'COURSE max mesure
Recul = GetOEMDRO (2247) ' recul apres mesure
Dia= GETOEMDRO (43) 'Diametre Sonde
Ray = Dia /2 'Rayon Sonde
ZZeroP =GetOEMDRO (2241)
' code "G91"
ZHaut = ZZeroP + 10 '+ GetOEMDRO (2249) ' ' Z au dessus de la piece
ZBas = ZZeroP - 2 ' GetOEMDRO (2248) ' ' Z sous le zero Z piece pour toucher les bords
code "G90"
Call SETUSERDRO (2249, ZHaut )
Call SETUSERDRO (2248,ZBas )
If Recul>= COURSEmax Then
RET=MachMsg (" le Recul de la sonde = max 2 fois son diametre toujours inferieur a lacourse max"," ERREUR",1)
Exit Sub
End If
code "G90"
Message ("Depart mesure en X a gauche de la piece")
Code "Z" & ZBas & "F" & AL
While IsMoving() 'WAIT UNTIL MOVE IS COMPLETE BEFORE PROCEEDING
Wend
code "G91"
Code "G31 X" & COURSEmax &"F"& AL ' *** mesure1 vers la droite X++
While IsMoving() 'WAIT UNTIL MOVE IS COMPLETE BEFORE PROCEEDING
Wend
code "G90"
Xpos1 = GETOEMDRO (800)
SLEEP (100 )
If Xpos1>=(Xcourant+ COURSEmax )Then
Message("ERREUR distance depassée recommencez Depart sonde trop loin mesure 1")
Exit Sub
End If
code "G91"
Code " X" & (- Recul) &"F"& AR'Recul sonde
While IsMoving() 'WAIT UNTIL MOVE IS COMPLETE BEFORE PROCEEDING
Wend
code "G90"
Code "Z" & ZHaut & "F" & AR
While IsMoving() 'WAIT UNTIL MOVE IS COMPLETE BEFORE PROCEEDING
Wend
code "G91"
L =DmXa + (COURSEmax*0.
Code " X" & L & "F" & AR ' sonde vers la gauche X--
While IsMoving() 'WAIT UNTIL MOVE IS COMPLETE BEFORE PROCEEDING
Wend
code "G90"
Code "Z" & ZBas & "F" & AL
While IsMoving() 'WAIT UNTIL MOVE IS COMPLETE BEFORE PROCEEDING
Wend
code "G91"
Code "G31X" &(-COURSEmax) &"F"& AL '***
While IsMoving() 'WAIT UNTIL MOVE IS COMPLETE BEFORE PROCEEDING
Wend
code "G90"
Xpos2 = GETOEMDRO (800)
SLEEP (100 )
code "G91"
Code " X" &( Recul) &"F"& AL
While IsMoving() 'WAIT UNTIL MOVE IS COMPLETE BEFORE PROCEEDING
Wend
code "G90"
Code "Z" & ZHaut & "F" & AR
While IsMoving() 'WAIT UNTIL MOVE IS COMPLETE BEFORE PROCEEDING
Wend
code "G91"
Sa = Xpos1 + Ray ' point1 de contact piece
Sb = Xpos2 - Ray ' point2 de contact piece
Sc = Sb - Sa ' distance point 1 à point2
Sd = Sc / 2 ' milieu de la distance point 1 à point2
Xmilieu= Sd+(Recul+ Ray)' distance a parcourir pour le milieu depuis le recul
Code " X" & (-Xmilieu) &"F"& AR
While IsMoving() 'WAIT UNTIL MOVE IS COMPLETE BEFORE PROCEEDING
Wend
code "G90"
DisX=(Sc - Recul)+Dia '
Call SETUSERDRO (2243,DisX )'affiche le diametreLARGEUR PIECE
Call SETOEMDRO (800,0)
XMI = GETOEMDRO(83) ' enregistre en coordonnée machine
SLEEP (100 )
Message (" X=ZERO = CENTRE PIECE EN X")
'********************************************************************
Code "Z" &ZHaut & "F"&AR
While IsMoving() 'WAIT UNTIL MOVE IS COMPLETE BEFORE PROCEEDING
Wend
code "G91"
O =((DmYa/2)+(COURSEmax*0.)
Code "Y" & ( -O) &"F"& AR ' vers Y++
While IsMoving() 'WAIT UNTIL MOVE IS COMPLETE BEFORE PROCEEDING
Wend
code "G90"
Code "Z" & ZBas &"F"&AL
While IsMoving() 'WAIT UNTIL MOVE IS COMPLETE BEFORE PROCEEDING
Wend
code "G91"
Code "G31Y"& COURSEmax &"F"&AL ' mesure vers Y--
While IsMoving() 'WAIT UNTIL MOVE IS COMPLETE BEFORE PROCEEDING
Wend
code "G90"
Ypos1 = GETOEMDRO (801)
SLEEP (200 )
code "G91"
Code "Y" &(-Recul) &"F"&AR 'Recul vers l'arriere Y--
While IsMoving() 'WAIT UNTIL MOVE IS COMPLETE BEFORE PROCEEDING
Wend
code "G90"
Code "Z"&ZHaut &"F"&AR
While IsMoving() 'WAIT UNTIL MOVE IS COMPLETE BEFORE PROCEEDING
Wend
P =(DmYa)+(COURSEmax*0.
code "G91"
Code"Y"& P &"F" &AR ' vers l arriere en Y--**************
While IsMoving() 'WAIT UNTIL MOVE IS COMPLETE BEFORE PROCEEDING
Wend
code "G90"
Code "Z" & ZBas & "F" & AL
While IsMoving() 'WAIT UNTIL MOVE IS COMPLETE BEFORE PROCEEDING
Wend
code "G91"
Code "G31Y"& (- COURSEmax) &"F"&AL
While IsMoving() 'WAIT UNTIL MOVE IS COMPLETE BEFORE PROCEEDING
Wend
code "G90"
Ypos2 = GETOEMDRO (801)
SLEEP (200 )
code "G91"
Code "Y" & Recul &"F"&AR 'versl 'avant Y++
While IsMoving() 'WAIT UNTIL MOVE IS COMPLETE BEFORE PROCEEDING
Wend
code "G90"
Code "Z" & ZHaut & "F" &AR
While IsMoving() 'WAIT UNTIL MOVE IS COMPLETE BEFORE PROCEEDING
Wend
code "G91"
Ta = Ypos1 + Ray
Tb = Ypos2 - Ray
Tc = Tb - Ta
Td = Tc/2
Ymilieu= Td+(Recul+ Ray)
Code " Y" &(-Ymilieu )&"F"&AR
While IsMoving() 'WAIT UNTIL MOVE IS COMPLETE BEFORE PROCEEDING
Wend
DisY=(Tc - Recul)+ Dia '130
Call SETUSERDRO (2242,DisY)'LARGEUR PIECE
Call SETOEMDRO (801,0)
SLEEP (100 )
code "G90"
YMI = GETOEMDRO(84)
Code "Z" &ZHaut &"F" &AR
While IsMoving() 'WAIT UNTIL MOVE IS COMPLETE BEFORE PROCEEDING
Wend
Message ("CENTRE PIECE EN X=0 et Y=0 G59 verifiez Z zero ")
SetOEMDRO(46,6) 'ecrit la valeur fixture 6 pour work offset table valeur G59
Sleep(300)
SetOEMDRO(47,XMI) 'ecrit la valeur Xx pour work offset table valeur X
Sleep(300)
SetOEMDRO(48,YMI) 'ecrit la valeur Yy pour work offset table valeur Y
Sleep(300)
WF- très actif
- Messages : 281
Points : 398
Date d'inscription : 17/09/2018
Age : 72
Localisation : Bondy
Sujets similaires
» Sonde défectueuse ?
» mach3 et sonde de température broche
» Abri météo pour sonde extérieure ...
» Sonde sous MACH3 – « Auto Tool Zero Setter » - « XYZ Probe »
» mach3 et sonde de température broche
» Abri météo pour sonde extérieure ...
» Sonde sous MACH3 – « Auto Tool Zero Setter » - « XYZ Probe »
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum