olg28 Posté(e) le 24 janvier 2007 Posté(e) le 24 janvier 2007 Bonjour, Je suis nouveau ici et deja en quete d'information.... Je dois raliser une macro pour remplir des blocs deja present sur nos plans, mais je n'y arrive pas....Pour le moment j'ai fait une boucle principale qui scrute tous les objets AcadBlockReference dans ModelSpace avec "For Each" et je trouve bien tous mes blocs. Ensuite j'ai vu qu'on pouvait "lire" les attributs avec GetAttributes, cela fonctionne aussi. Maintenant je souhaiterai ecrire dans mes blocs..... et la.....c'est le drame......On peut le faire facilement a l'insertion des blocs mais apres ?J'ai tenter de faire un For Each des AcadEntity sur mes AcadBlockReference mais ca marche pas. Si c'est pas faisable en VBA je veux bien essayer en LISP mais je n'y connais rien. Merci pour vos conseils.... @+, Olivier PS : desole pour les accents mais j'utilise un clavier qwerty....
winfield Posté(e) le 24 janvier 2007 Posté(e) le 24 janvier 2007 Le problème avec les anglophones, c'est qu'ils parlent l'anglais. :o Désolé, je viens de passer un bon moment à essayer de comprende des infos en UK.......bientôt le russe et le chinois Le problème avec les blocs+attributs, c'est qu'il n'y a pas forcément le même nombre d'attributs pour chaque type de bloc et n'attendent pas tous le même type de données. Si toutes les valeurs d'attributs sont enregistrées quelque part, là c'est possible. A moins que tes attributs en questions aient tous la même valeur ? Là c'est plus simple. ..........Pourraient pas tous parler en Fr ? Nous n’ héritons pas de la terre de nos ancêtres.Nous l’empruntons à nos enfants.
olg28 Posté(e) le 25 janvier 2007 Auteur Posté(e) le 25 janvier 2007 Bonjour, Merci pour cette reponse... Je connais le type de valeurs attendu par chaque attribut car c'est moi qui ai fait les blocs, et dans l'avenir du futur j'irai lire un fichier qui contiendra l'ensemble des infos a ecrire dans les blocs. Mais en attendant je n'arrive toujours pas a acceder aux attributs en "mode ecriture". Hier soir j'accedais directement aux attributs (sans GetAttribute) en bouclant tous les AcadAttribute contenus dans un AcadBlock. J'ai pu afficher le libelle des attributs avec TagString et la valeur avec TextString. @+, Olivier
winfield Posté(e) le 25 janvier 2007 Posté(e) le 25 janvier 2007 Si ça peut t'aider VarAttribut = ObjEntite.GetAttributes For I = LBound(VarAttribut) To UBound(VarAttribut) If VarAttribut(I).TagString = ListAttribut.Value Then VarAttribut(I).TextString = Format(VarAttribut(I).TextString + ValAjout, "##.00") End If Next I Nous n’ héritons pas de la terre de nos ancêtres.Nous l’empruntons à nos enfants.
olg28 Posté(e) le 25 janvier 2007 Auteur Posté(e) le 25 janvier 2007 Yes !! Yes !On est les champions! On est les champions !.......... J'ai trouvé, ça marche. C'est un peu sur le principe que ce que vient de poster Winfield (merci...) mais avec un "Update" à la fin.... @+, Olivier
Messages recommandés
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 compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant