Aller au contenu

Renommer un attribut dans plusieurs plans


illidan05

Messages recommandés

Bonjour à tous,

 

Savez-vous comment faire pour renommer un attribut qui se trouve dans plusieurs plans ?

Dans tous mes plans j'ai un Bloc nommé "CARTOU-V" et dans ce bloc un attribut nommé "Titre du Dossier". Existe-t-il un script ou autre permettant de modifier mon attribut dans tous mes plans automatiquement ?

 

merci pour votre aide

Lien vers le commentaire
Partager sur d’autres sites

 

Hello

 

La commande RENOMMER d'AutoCAD ne permet pas de renommer une définition d'attribut donc à part un développement en Lisp/VLisp Scriptable, je ne sais pas faire !

 

Commande: -renommer

Entrez le type d'objet à renommer

[bLoc/COtstyle/CAlque/TYpeligne/Matériau/style Ligne de repère

multiple/STyle/styleTAbleau/SCu/Vue/Fenêtre]:

 

Le Decapode

 

Autodesk Expert Elite Team

Lien vers le commentaire
Partager sur d’autres sites

Salut ilidan05,

 

Si c'est pour traiter tous les cartouches d'un seul fichier, tu peux voir une solution en cliquant sur le lien ci-dessous :

 

http://www.cadxp.com/modules.php?op=modload&name=XForum&file=viewthread&tid=24639#pid106473

 

Pour faire la même chose avec un traitement de plusieurs fichiers, il faut probablement un développement.

 

@plus

Jean-Philippe - Formateur / Dessinateur sur AutoCAD et MEP

http://www.git-cad.ch

Lien vers le commentaire
Partager sur d’autres sites

Salut à tous,

 

Voici la solution à mon problème q'un membre d'un autre forum m'a donné, c'est une macro à exétuer dans Autocad en mode SDI.

 

 Sub ChangerAttribut()
'macro permettant de modifier une valeur d'attribut dans plusieurs fichiers

'conditions à remplir :
'- mettre tous les fichiers concernés dans un même répertoire
'- nom du bloc identique dans tous les dessins
'- dessin effectué sur l'espace objet (onglet objet)

'Procédure :
'- ouvrir l'un des fichiers
'- renseigner dans les lignes suivantes les valeurs nécessaires (nom bloc, nom attribut, nouvelle valeur)
' attention à bien respecter les noms de bloc et d'attributs / respecter les majuscules et minuscules
' -lancer l'exécution de cette macro.
' les fichiers modifiés seront enregistrés en lieu et place des originaux


'définitions
Dim NomBloc As String
Dim NomAttribut As String
Dim NewValeurAttribut As String
Dim Repertoire As String
Dim compteur As Integer
Dim NbreFichiers As Integer
Dim MyFile As String
Dim TableauFichiers() As String
Dim i, j As Integer
Dim Element As AcadEntity
Dim AttributsBloc As Variant

'entrer le nom du bloc
NomBloc = "CART_02"    'à vous de renseigner le nom du bloc à modifier à la place des xxxx

'entrer le nom de l'attribut à modifier
NomAttribut = "NUM_AFF"    'à vous de renseigner le nom de l'attribut à modifier à la place des yyyy

'entrer la nouvelle valeur d'attribut
NewValeurAttribut = "AAAAAAAAAAAAAAAA"  'à vous de renseigner la nouvelle valeur de l'attribut à modifier à la place des zzzz

'liste des folios
'extrait la liste des fichiers présents dans le répertoire du dessin en cours
Repertoire = ThisDrawing.Path
compteur = 0
NbreFichiers = 0
MyFile = Dir(Repertoire & "\*.dwg")
ReDim TableauFichiers(0)
Do While MyFile <> ""       ' Commence la boucle.
   TableauFichiers(UBound(TableauFichiers)) = MyFile
   compteur = compteur + 1
   MyFile = Dir            ' Extrait l'entrée suivante.
   ReDim Preserve TableauFichiers(UBound(TableauFichiers) + 1)
Loop
NbreFichiers = compteur

'modifier pour chaque fichier du répertoire
For i = 0 To UBound(TableauFichiers)
   MyFile = TableauFichiers(i)
   If Not MyFile = "" Then
       ThisDrawing.Application.Documents.Open (Repertoire & "\" & MyFile)
       For Each Element In ThisDrawing.ModelSpace
           If Element.ObjectName = "AcDbBlockReference" Then
               If Element.Name = NomBloc Then
                   AttributsBloc = Element.GetAttributes
                   For j = 0 To UBound(AttributsBloc)
                       If AttributsBloc(j).TagString = NomAttribut Then
                           AttributsBloc(j).TextString = NewValeurAttribut
                           Exit For
                       End If
                   Next j
               End If
           End If
       Next
       ThisDrawing.Save
   End If
Next i


End Sub

 

A++

Lien vers le commentaire
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité