Aller au contenu

extraction d\'un attribut de bloc


Messages recommandés

Posté(e)

Bonjour à tous,

 

Je débute en VBA dépuis le bébut de l'été et je suis en train de faire un petit prog pour l'extraction des attributs de blocs vers Excel. Avec un bouquin, des exemples de codes et l'aide d'AutoCAD (version 2007), j'ai réussi à faire le début de mon code (le plus facile) mais il me reste la partie la principale, l'extraction des attributs.

 

Pour l'extraction de tous les attributs des blocs j'ai déja des codes, voici ce que je souhaite faire.

J'ai dans mon dessin des blocs (dynamique ou non) avec chacun 2 attributs (minimum). Mon problème est d'extraire une valeur d'un attribut précisement dans un bloc.

 

Dois-je faire un jeu de selection pour tous les objets du dessin + une extraction de la valeur d'un attribut de bloc ou un jeu de selection pour le bloc qui contient l'attribut à extraire (sachant que j'ai environ 40 attributs)?

 

Y-a-t'il un expert en VBA qui à la solution ??

 

Merci d'avance!

Posté(e)

Bonjour,

 

Je voudrais bien t'aider mais je ne connais pas du tout autocad.

 

Par contre, peut etre devrais effectuer des recherches dans le forum d'autocad pour voir si cette question n'a pas déja été posé.

 

@+

Connaître son ignorance est la meilleure part de la connaissance !http://mooneck.pagesperso-orange.fr/confucius_mini.gif

Posté(e)

Salut,

(et non, pas encore une réponse en VBA...)

 

L'outil d'extraction d'attribut d'autocad ne te suffit pas ?... tu peux filtrer ce que tu veux et exporter dans le format que tu veux ....

 

Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...

Posté(e)

bonjour micacao

 

je te donne la manip à faire

 

sous Autocad:

Menu [ Outil ]

------ > Extraction d'attribut

choisir: Dessin courant ------- > [suivant]

à toi de choisir si tu veux inclure les XREF et les BLOCS IMPBRIQUéS

taper: ------- > [suivant]

cocher: [sans gabarit]

taper: ------- > [suivant]

 

et là !! tu choisis les blocs et les attributs du bloc que tu veux extraire ,

aprés avoir fait le tri de tes blocs et attributs (ce que tu veux extraire uniquement)

 

taper: ------- > [suivant]

 

tu donnes un non à ton fichier, par exemple " TEST "

et ne pas oublier de choisir le format de ton fichier (.txt) ou (.xls)

l'idéal est de choisir EXCEL (.xls) , ça te permet de personnaliser ta mise en page

 

Ton fichier " TEST " est enregistré par defaut dans : C:\ Program Files \ AutoCad 2005

 

a+

 

[Edité le 21/8/2006 par JUJUZAZA]

Posté(e)

Salut,

 

dans le VBA d'autocad, il faut utiliser la propriété "hasattributes" pour verifier qu'une reference de bloc possède des attributs, ensuite, utiliser la méthode "Getattributes" pour les manipuler.

 

Ci dessous un bout de code que j'utilise pour dupliquer entre 2 reference de blocs, ce que j'ai mis comme valeur d'attribut "PROJET" (par exemple) :

 

TAGSTRING est la propriété pour le 'nom' de l'attributs

TEXTSTRING est la propriété pour la 'valeur' de l'attribut.

 

ThisDrawing.Utility.GetEntity blockObj, pt1, "Cliquez un Objet Source :"

Select Case blockObj.ObjectName

Case "AcDbBlockReference"

Select Case blockObj.HasAttributes

Case True

For Each titi In blockObj.GetAttributes

If titi.TagString = "PROJET" Then NomProjet = titi.TextString

Next titi

Case Else

End Select

Case Else

End Select

 

voila, ce petit bout de code, te permettra de comprendre comment manipuler les attributs en VBA.

 

Salutations,

Posté(e)

Merci pour les infos.

 

Je souhaite réaliser ce prog pour extraire des attributs vers Excel afin d'avoir une solution simple et rapide à l'utilisation, donc automatique.

Le nom des blocs et des attributs sont identiques dans tous mes dessins (ou presque). Mon but est d'envoyer les valeurs des attributs vers un fichier gabarit Excel avec une mise en forme (macros, formules, format du texte, ........).

 

J'ai une petite question pour Bred et JUJUZAZA. Est-ce que votre solution correspond à mon besoin? Simple question pour m'éviter de passer du temps et de m'arracher les cheveux avec un code en VBA si le même résultat est possible dans AutoCAD. Dans Autocad je peux créer un gabarit d'extraction des attributs (après avoir fait le tri de mes attributs) pour une extraction rapide dans chaque dessin, jusqu'ici pas de problème, mais pour les envoyer vers mon fichier Excel, y-a-t'il une solution?

 

Petite question également à Chrisfs. Est-il possible d'évier de faire une selection à l'écran et de récupérer un attribut dans un jeu de selection?

 

 

 

Merci à tous et @+ pour vous informer sur les résultats de mes essais :)

Posté(e)
Merci pour les infos.

 

Je souhaite réaliser ce prog pour extraire des attributs vers Excel afin d'avoir une solution simple et rapide à l'utilisation, donc automatique.

Le nom des blocs et des attributs sont identiques dans tous mes dessins (ou presque). Mon but est d'envoyer les valeurs des attributs vers un fichier gabarit Excel avec une mise en forme (macros, formules, format du texte, ........).

 

J'ai une petite question pour Bred et JUJUZAZA. Est-ce que votre solution correspond à mon besoin? Simple question pour m'éviter de passer du temps et de m'arracher les cheveux avec un code en VBA si le même résultat est possible dans AutoCAD. Dans Autocad je peux créer un gabarit d'extraction des attributs (après avoir fait le tri de mes attributs) pour une extraction rapide dans chaque dessin, jusqu'ici pas de problème, mais pour les envoyer vers mon fichier Excel, y-a-t'il une solution?

 

Petite question également à Chrisfs. Est-il possible d'évier de faire une selection à l'écran et de récupérer un attribut dans un jeu de selection?

 

 

 

Merci à tous et @+ pour vous informer sur les résultats de mes essais :)

 

si c'est juste recuperer des données pour les mettre dans Excel, la solution de Bred et JUJUZAZA est plus pratique. :)

 

en VBA, tu peux faire des selections d'objets (methode thisdrawing.selectionssets), cliquez sur un objet (thisdrawing.utility.getentity) ou carrement tu recherche tous les objets de l'espace objet ou papier (for each variable in thisdrawing.modelspace). :casstet:

 

Voila, bonne journée

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é