recherche d'une entité par son nom (getitem)

Voir le sujet précédent Voir le sujet suivant Aller en bas

recherche d'une entité par son nom (getitem)

Message par mike688 le Mer 20 Jan 2016 - 20:48

bonjour a tous,
quelqu'un connaîtrait-il par hasard une méthode pour reccuperer un element 2D en fonction de son nom?
aujourd'hui, pour remplir le cartouche de mes plan, j'utilise une combinaison de fonction qui va rechercher sur tout le drawing un textdrawing, soit par son contenu, soir par ses coordonée lorsqu'il s'agit d'un tableau "a l'ancienne" des ligne et des texte, je combine les 2 methode, ce qui prend énormément de temps.

donc l'idée serait qu'une foi trouvé je le renome de text17980 a "cequilmefaut"
ce qui permettra(i) de le rechercher par son non a la prochaine execution.

le souci c'est que aujourd'hui je ne sais pas le trouver par son nom Sad

merci pour votre aide


avatar
mike688
actif
actif

Messages : 255
Date d'inscription : 23/12/2009
Age : 35
Localisation : Portieux (88)

Revenir en haut Aller en bas

Re: recherche d'une entité par son nom (getitem)

Message par Guss_ le Mer 20 Jan 2016 - 21:58

pour une zone de texte c'est assez facile.

J'ai fait cette macro qui vient éditer une zone de texte avec une nom spécifique, d'un cartouche prédéfinie en y mettant le nom de la part associée à la vue sélectionnée
Code:

Sub CATMain()
   
    '---- Début du script de résolution de l'objet : vue_active
    Dim drawingDocument1 As Document
    Set drawingDocument1 = CATIA.ActiveDocument
    Dim drawingSheets1 As DrawingSheets
    Set drawingSheets1 = drawingDocument1.Sheets
    Dim drawingSheet1 As DrawingSheet
    Set drawingSheet1 = drawingSheets1.Item("Calque.1")
    Dim drawingViews1 As DrawingViews
    Set drawingViews1 = drawingSheet1.Views
    Dim vue_active As DrawingView
    Set vue_active = drawingViews1.ActiveView
    '---- Fin du script de résolution
   
    '---- Début du script de résolution de l'objet : zone_text_nom
    Dim drawingView1 As DrawingView
    Set drawingView1 = drawingViews1.Item("Main View")
    Dim drawingTexts1 As DrawingTexts
    Set drawingTexts1 = drawingView1.Texts
    Dim zone_text_nom As DrawingText
    Set zone_text_nom = drawingTexts1.GetItem("nom")
    '---- Fin du script de résolution
   
    '----Traitement
    Dim nom_piece_3D As String
    If vue_active.Name = "Main View" Then
        MsgBox ("veuilliez séléctioner une vue")
    Else
        nom_piece_3D = vue_active.GenerativeBehavior.Document.ReferenceProduct.Name
        zone_text_nom.Text = Replace(nom_piece_3D, "_", " ")
    End If

End Sub

Guss_
Fédérateur
Fédérateur

Messages : 501
Date d'inscription : 08/01/2010

Revenir en haut Aller en bas

Re: recherche d'une entité par son nom (getitem)

Message par mike688 le Mer 20 Jan 2016 - 22:05

ok, donc d'apres ton code, il n'est pas possible de faire une recherche globale sans passer par toutes les vue et toutes les feuilles
le getitem ne fonctionne donc que dans la collection specifique
avatar
mike688
actif
actif

Messages : 255
Date d'inscription : 23/12/2009
Age : 35
Localisation : Portieux (88)

Revenir en haut Aller en bas

Re: recherche d'une entité par son nom (getitem)

Message par Guss_ le Mer 20 Jan 2016 - 22:15

est ce que si tu ouvre ton plan et ensuite tu fais une recherche manuelle tu arrives à trouver ton élément ?

Si oui c'est que tu peux le faire via une macro avec search(), si non ça sera pas avec la fonction search()

Guss_
Fédérateur
Fédérateur

Messages : 501
Date d'inscription : 08/01/2010

Revenir en haut Aller en bas

Re: recherche d'une entité par son nom (getitem)

Message par mike688 le Mer 20 Jan 2016 - 23:06

oui cela fonctionne
d'apres les premiers essaie, cela réduit de moitié les temps

merci
avatar
mike688
actif
actif

Messages : 255
Date d'inscription : 23/12/2009
Age : 35
Localisation : Portieux (88)

Revenir en haut Aller en bas

Re: recherche d'une entité par son nom (getitem)

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

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