IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

[VB Catia] pb de parcours de l'arbre de conception


Sujet :

VB 6 et antérieur

  1. #1
    Membre expérimenté Avatar de shkyo
    Homme Profil pro
    Développeur Robotique - Administrateur systèmes
    Inscrit en
    Juin 2003
    Messages
    841
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Robotique - Administrateur systèmes

    Informations forums :
    Inscription : Juin 2003
    Messages : 841
    Points : 1 474
    Points
    1 474
    Par défaut [VB Catia] pb de parcours de l'arbre de conception
    Bonjour à tous,

    Je tente d'écrire une macro en VB pour Catia de Dassault System (c'est un VB6.5 apparemment...) pour renommer les références de produit, ainsi que le nom de l'instance du composant.

    Je me suis basé sur un exemple donné trouvé sur le net pour parcourir l’arborescence mais Catia ne laisse pas renommer le nom de l'instance!! Il passe sur l'instruction sans faire d'erreur, mais sans rien faire non plus!

    Voici mon code de parcours de l'arbre (voir lignes 23 et 29):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    Sub Parcours_Arbre(myProd As Product, nbLevel As Long, chaineAModifier As String)
        Dim mySubProd As Products
        Dim myChildProd As Product
        Dim strTmp As String
        Dim index As Long
     
        Set mySubProd = myProd.Products
        myProd.ApplyWorkMode DESIGN_MODE
     
        If mySubProd.Count >= 1 Then
            For index = 1 To mySubProd.Count
                If Is_It_Part(mySubProd.Item(index)) = True Then
                    strTmp = mySubProd.Item(index).PartNumber
                    ' enlève la chaine demandée du nom de la 'Référence' du 'Produit'
                    If InStr(1, strTmp, chaineAModifier, 1) <> 0 Then
                        strTmp = Replace(strTmp, chaineAModifier, "", 1, 1, vbTextCompare)
                        mySubProd.Item(index).PartNumber = strTmp
                    End If
                    ' enlève la chaine demandée du 'Nom de l'instance' du 'Composant'
                    strTmp = mySubProd.Item(index).Name
                    If InStr(1, strTmp, chaineAModifier, 1) <> 0 Then
                        strTmp = Replace(strTmp, chaineAModifier, "", 1, 1, vbTextCompare)
                        mySubProd.Item(index).Name = strTmp ' <================ ICI... ==============>
                    End If
                    ' enlève tout ce qu'il y a après le 1er "_" du 'Nom de l'instance' du 'Composant'
                    strTmp = mySubProd.Item(index).Name
                    If InStr(1, strTmp, "_", 1) <> 0 Then
                        strTmp = Mid(strTmp, 1, InStr(1, strTmp, "_", 1) - 1)
                        mySubProd.Item(index).PartNumber = strTmp ' <============ et ICI ============>
                    End If
                Else
                    Set myChildProd = mySubProd.Item(index)
     
                    strTmp = myChildProd.PartNumber
                    strTmp = Replace(strTmp, chaineAModifier, "", , , vbTextCompare)
                    myChildProd.PartNumber = strTmp
     
                    Parcours_Arbre myChildProd, nbLevel + 1, chaineAModifier
                End If
            Next
        End If
    End Sub
    Je suis preneur de toute suggestion...

    Pour info, j'utilise soit une version V5R20 soit une V5R22 selon les cas.
    Merci (beaucoup) d'avance!
    L'homme sage apprend de ses erreurs, l'homme plus sage apprend des erreurs des autres. - Confucius -

    Ma (petite...) chaine Youtube : https://www.youtube.com/channel/UCy-...P2tH5UwOtLaYKw
    Si vous avez quelques minutes, passez donc voir mon site http://www.photospicsandco.fr/
    Envie de tee-shirts (et goodies!) originaux et sympa ? Visitez mon site... http://www.zazzle.com/shkyo30

  2. #2
    Rédacteur
    Avatar de DarkVader
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 130
    Points : 3 118
    Points
    3 118
    Par défaut
    Bonsoir,
    Je doute que tu trouves ici beaucoup d'utilisateurs de Catia,
    ceci dit dans un premier temps commence par installer un gestionnaire d'erreur
    afin de récupérer le numéro et l'intitulé exact de l'erreur.

  3. #3
    Membre expérimenté Avatar de shkyo
    Homme Profil pro
    Développeur Robotique - Administrateur systèmes
    Inscrit en
    Juin 2003
    Messages
    841
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Robotique - Administrateur systèmes

    Informations forums :
    Inscription : Juin 2003
    Messages : 841
    Points : 1 474
    Points
    1 474
    Par défaut
    Citation Envoyé par DarkVader Voir le message
    Bonsoir,
    Je doute que tu trouves ici beaucoup d'utilisateurs de Catia,
    ceci dit dans un premier temps commence par installer un gestionnaire d'erreur
    afin de récupérer le numéro et l'intitulé exact de l'erreur.
    Je le crains en effet, mais comme c'est basé sur du VB6 avec une bibliothèque spécifique Catia, je me dis qu'il y a beaucoup de passage sur les forums de Developpez.net, donc pourquoi pas!!

    Pour le gestionnaire d'erreurs, pourquoi pas, mais je ne pense pas qu'il détecte grand chose, car il passe sur la ligne (en pas à pas) sans rien faire, et sans erreur!!

    En fait, c'est l'aspect récursif qui pose peut-être problème, car sans cela il fonctionne... Mais je ne vois pas comment parcourir une structure en arbre sans fonction récursive! Si vous avez un algo de ce type, ça m'intéresse!
    L'homme sage apprend de ses erreurs, l'homme plus sage apprend des erreurs des autres. - Confucius -

    Ma (petite...) chaine Youtube : https://www.youtube.com/channel/UCy-...P2tH5UwOtLaYKw
    Si vous avez quelques minutes, passez donc voir mon site http://www.photospicsandco.fr/
    Envie de tee-shirts (et goodies!) originaux et sympa ? Visitez mon site... http://www.zazzle.com/shkyo30

Discussions similaires

  1. Pb parcour d'un arbre.
    Par ptipoutche dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 08/11/2006, 17h15
  2. Réponses: 4
    Dernier message: 19/02/2006, 18h43
  3. [debutant] parcours en profondeur arbre n-aire
    Par tx dans le forum Langage
    Réponses: 1
    Dernier message: 15/02/2006, 03h56
  4. parcours d'un arbre en sql
    Par dor_boucle dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 02/02/2006, 11h10
  5. Ordre de parcours de l'arbre...
    Par Sylvain James dans le forum XML/XSL et SOAP
    Réponses: 3
    Dernier message: 01/12/2002, 18h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo