Nom du fichier drawing égal à un parametre

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

Nom du fichier drawing égal à un parametre

Message par lgesl1catia le Mer 1 Mar 2017 - 8:57

Bonjour a tous

Je souhaite donner une égalité entre le nom de mon fichier drawing et un paramètre crée dans ce drawing

Le but est de renommer dans window tous mes fichiers drawing, l'égalité avec le paramètre me modifiera les
différents textes dans mon drawing

Exemple, dans mon nom de fichier drawing, il y a le numéro de mon outil sur les dix premiers caractères (1200-10-01 plan de details)
Dans mon cartouche principale le numéro 1200-10-01 est inscrit, celui est lié a chaque mini cartouches de la planche de détails, le tous provient
d'un paramètre de type chaine.

Lorsque je fais un "créer a partir de", je dois modifier ce numéro dans chaque drawing et je dois renommer chaque drawing lors de l'enregistrement
Si je pouvais faire la manipulation une seule fois, cela me ferais économiser énormément de temps.

Le problème est que je ne trouve rien dans les paramètres ou les propriétés qui font appel au nom de mon du drawing,
dans un part via un paramètre on peut définir un nom de fichier, je n'arrive pas a le reproduire.

Si quelqu'un a une astuce, merci d'avance...
avatar
lgesl1catia
actif
actif

Messages : 33
Date d'inscription : 24/11/2016
Localisation : orne

Revenir en haut Aller en bas

Re: Nom du fichier drawing égal à un parametre

Message par lumpazepfel le Ven 3 Mar 2017 - 23:33

Salut Laurent,

Quelques précisions:
-Veux tu modifier la valeur de ton paramètre avec le nom de fichier du CATDrawing? (Ex: monPara.value = left(nomfichier,10)
-Veux tu faire cela pour un lot de CATDrawing enregistré dans un dossier?
-Avec une macro?
avatar
lumpazepfel
actif
actif

Messages : 141
Date d'inscription : 03/11/2015
Localisation : Ensisheim

Revenir en haut Aller en bas

Re: Nom du fichier drawing égal à un parametre

Message par lgesl1catia le Sam 4 Mar 2017 - 9:20

Bonjour Marc

-Veux tu modifier la valeur de ton paramètre avec le nom de fichier du CATDrawing? (Ex: monPara.value = left(nomfichier,10) OUI
-Veux tu faire cela pour un lot de CATDrawing enregistré dans un dossier? OUI
-Avec une macro? Si besoin pourquoi pas

Je pense a deux méthodes:
-pour un nouvelle affaire, dans le window j'utilise "Ant Renamer" et je renomme tous,
par contre je pense qu'il va falloir quand même ouvrir tous les drawings pour que les paramètres soient a jour.
-pour une nouvelle affaire après un créer a partir de, mes drawings sont déjà ouverts, a ce moment la il faut lancer la macro qui modifie le paramètre qui a son tour modifie le nom du drawing dans tous les drawings ouverts en session.

J'ai une préférence pour la première méthode, c'est le nom du fichier qui pilote le paramètre

Quand penses-tu?
avatar
lgesl1catia
actif
actif

Messages : 33
Date d'inscription : 24/11/2016
Localisation : orne

Revenir en haut Aller en bas

Re: Nom du fichier drawing égal à un parametre

Message par lumpazepfel le Dim 5 Mar 2017 - 5:40

Salut,

Ci dessous une macro qui va ouvrir un par un tous les Drawing se trouvant dans le dossier "repertoire_import", puis modifier la valeur du paramètre "monpara" en fonction du nom de fichier , puis sauvegarder le fichier et le fermer.


Code:
Public repertoire_import As String


Sub CATMain()

'Configurer ci dessousle nom du dossier oùse trouvent les Drawings
repertoire_import = "C:\CATIA TRAVAIL\"


CATIA.DisplayFileAlerts = False

Dim extension As String
Dim file As String

extension = "*.CATDrawing"


If Right$(repertoire_import, 1) <> "\" Then repertoire_import = repertoire_import & "\"

file = Dir(repertoire_import & extension)

    Do While Len(file)
    Call Modif_Para(file)
        file = Dir
    Loop

CATIA.DisplayFileAlerts = True

End Sub

'Renomme parametre
Sub Modif_Para(fichier_catia)
Dim Nomfichier As String
'Configurer ci dessous la valeur que doit prendre le paramètre en fonction du nom du fichier:
Nomfichier = Left(fichier_catia, Len(fichier_catia) - 11)

Dim documents1 As Documents
Set documents1 = CATIA.Documents

Dim drawingDocument1 As DrawingDocument
Set drawingDocument1 = documents1.Open(repertoire_import & fichier_catia)

Set drawingDocument1 = CATIA.ActiveDocument
    Set oParams = drawingDocument1.Parameters
    Set oParams = oParams.RootParameterSet.DirectParameters
    'Remplacer "monpara" par le nom du paramètre dont la valeur doit être modifiée:
    oParams.Item("monpara").Value = Nomfichier
drawingDocument1.Save
drawingDocument1.Close

End Sub
avatar
lumpazepfel
actif
actif

Messages : 141
Date d'inscription : 03/11/2015
Localisation : Ensisheim

Revenir en haut Aller en bas

Re: Nom du fichier drawing égal à un parametre

Message par lgesl1catia le Mar 7 Mar 2017 - 9:01

Bonjour et merci marc

Si possible je souhaite quelques modifications si c'est possible:

Pour la récupération du texte, peut-on faire, droit +10 caractères et non gauche -11 car suivant mes fichiers je n'ai pas le même nombre de caractères
ex: 1200-10-00 plan détails et 1200-10-00 plan ensemble et
je souhaite récupérer 1200-10-00 peut être avec un "_" entre les deux, cela serait peut-être plus simple?

Je voudrais éviter de faire transiter mes fichiers dans un répertoire import, peut-on faire la même chose avec les fichiers drawing ouvert en session?

Je trouve super pratique tes dernières lignes pour sauvegarder et fermer, quel serait le code pour mettre à jour le plan avant de sauvegarder et fermer?

Merci
avatar
lgesl1catia
actif
actif

Messages : 33
Date d'inscription : 24/11/2016
Localisation : orne

Revenir en haut Aller en bas

Re: Nom du fichier drawing égal à un parametre

Message par lumpazepfel le Jeu 16 Mar 2017 - 0:07

Salut Laurent,

Ci dessous la macro qui traite tous les CATDrawing en session:
Code:
'Macro de modification de la valeur d'un parametre en fonction du nom de fichier du CATDrawing
'Code VBA -- Marc 03/2017
'http://catiav5.forumactif.org/t1559-nom-du-fichier-drawing-egal-a-un-parametre#6951

Sub CATMain()
Dim valeurParametre As String
Dim NombreDoc As Integer
Dim Mondessin As Document
Dim mesParams As Parameters
    NombreDoc = CATIA.Documents.Count
    For j = NombreDoc To 1 Step -1
        On Error Resume Next
        Set Mondessin = CATIA.Documents.Item(j)
            If (InStr(Mondessin.Name, ".CATDrawing")) <> 0 Then
                Mondessin.Activate
                Err.Clear
                'écrire ci dessous le traitement de chaine de caractére souhaitée
                '(ici on prend les 10 premiers caractères)
                valeurParametre = Left(Mondessin.Name, 10)

                Set mesParams = Mondessin.Parameters
                Set mesParams = mesParams.RootParameterSet.DirectParameters
                'remplacer monpara par le nom de ton paramètre
                mesParams.Item("monpara").Value = valeurParametre
                If Err.Number <> 0 Then 'si la paramètre n'existe pas, on le créé
                    Set nouveauparam = mesParams.CreateString("monpara", valeurParametre)
                End If
                Mondessin.Update    'mise à jour du 2D
                Mondessin.Save
                Mondessin.Close
            End If
    Next j
End Sub

Pour la mise à jour du CATDrawing c'est simplement Mondessin .Update.
Concernant la valeur exact que tu veux mettre dans ton paramètre, je n'ai pas compris ton exemple car il y a 2 fois les mêmes valeurs, mais il est possible de faire beaucoup de chose à condition que la syntaxe de départ des noms de fichiers suive toujours la même règle.
avatar
lumpazepfel
actif
actif

Messages : 141
Date d'inscription : 03/11/2015
Localisation : Ensisheim

Revenir en haut Aller en bas

Re: Nom du fichier drawing égal à un parametre

Message par lgesl1catia le Jeu 30 Mar 2017 - 8:22

Bonjour Marc

Je te remercie une fois de plus, c'est nickel

A bientôt.
avatar
lgesl1catia
actif
actif

Messages : 33
Date d'inscription : 24/11/2016
Localisation : orne

Revenir en haut Aller en bas

Re: Nom du fichier drawing égal à un parametre

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