Le Deal du moment : -20%
Drone Dji DJI Mini 4K (EU)
Voir le deal
239 €

sonde topcom

2 participants

Aller en bas

sonde topcom Empty sonde topcom

Message  gilles974 Mar 27 Fév 2024 - 18:23

bonjour

y à t''il des utilisateurs utilisant le matériels de topcom ?? principalement le protege sonde SMART-MER/2
gilles974
gilles974
acharné du forum
acharné du forum

Messages : 446
Points : 669
Date d'inscription : 31/10/2011
Age : 65
Localisation : La Réunion

Revenir en haut Aller en bas

sonde topcom Empty Re: sonde topcom

Message  WF Lun 4 Mar 2024 - 16:23

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/
WF
WF
très actif
très actif

Messages : 281
Points : 398
Date d'inscription : 17/09/2018
Age : 72
Localisation : Bondy

Revenir en haut Aller en bas

sonde topcom Empty Re: sonde topcom

Message  gilles974 Lun 4 Mar 2024 - 16:39

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 What a Face

++
gilles
gilles974
gilles974
acharné du forum
acharné du forum

Messages : 446
Points : 669
Date d'inscription : 31/10/2011
Age : 65
Localisation : La Réunion

Revenir en haut Aller en bas

sonde topcom Empty Re: sonde topcom

Message  WF Lun 4 Mar 2024 - 17:33

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
WF
très actif
très actif

Messages : 281
Points : 398
Date d'inscription : 17/09/2018
Age : 72
Localisation : Bondy

Revenir en haut Aller en bas

sonde topcom Empty Re: sonde topcom

Message  gilles974 Mar 5 Mar 2024 - 6:00

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 ??

gilles974
gilles974
acharné du forum
acharné du forum

Messages : 446
Points : 669
Date d'inscription : 31/10/2011
Age : 65
Localisation : La Réunion

Revenir en haut Aller en bas

sonde topcom Empty Re: sonde topcom

Message  WF Mar 5 Mar 2024 - 16:24

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
@+
WF
WF
très actif
très actif

Messages : 281
Points : 398
Date d'inscription : 17/09/2018
Age : 72
Localisation : Bondy

Revenir en haut Aller en bas

sonde topcom Empty Re: sonde topcom

Message  gilles974 Mar 5 Mar 2024 - 17:24

merci

je suis cheers 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....

sonde topcom D1mf

reste encore à gerer quelques bugs d'affichage rien de grave

je te joint mon MP
gilles974
gilles974
acharné du forum
acharné du forum

Messages : 446
Points : 669
Date d'inscription : 31/10/2011
Age : 65
Localisation : La Réunion

Revenir en haut Aller en bas

sonde topcom Empty Re: sonde topcom

Message  WF Mar 5 Mar 2024 - 18:53

M504 ZERO DESSUS PIECE
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.Cool
    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.Cool)
      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.Cool   
      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)

 

             
LA SUITE DEMAIN
WF
WF
très actif
très actif

Messages : 281
Points : 398
Date d'inscription : 17/09/2018
Age : 72
Localisation : Bondy

Revenir en haut Aller en bas

sonde topcom Empty Re: sonde topcom

Message  Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum