stephan35 Posté(e) le 11 février 2008 Posté(e) le 11 février 2008 Bonjour ! Je cherche une solution pour trouver rapidement le nom d'une entité type "ATTDEF" sans balayer toute la base de donnée de définition du bloc. Ma solution actuelle : Je fais un SSGET sur le nom du bloc,puis je scrute toutes les entités qui suivent par entnext , jusqu'au SEQEND. Mon problème c'est que j'ai environ 1000 attributs dans mon bloc, et quand je dois tous les remplir, ça met du temps .... 1000x1000 scrutations. Merci PS : Vivement une bonne issue pour CAD XP
stephan35 Posté(e) le 11 février 2008 Auteur Posté(e) le 11 février 2008 C'est bizarre ! Quelqu'un avait le même soucis .... http://www.cadxp.com/sujetXForum-17431.htm ça marche !! En fait ça extrait les valeurs par défaut et non pas les valeurs d'un bloc selectionné .... Il me faudrait la même chose , mais pour un bloc selectionné grace à un ssget ... Merci [Edité le 11/2/2008 par stephan35]
Patrick_35 Posté(e) le 11 février 2008 Posté(e) le 11 février 2008 SalutDans l'exemple de (gile), tu récupères le handle des attributs dans la table des blocs, qui ne sont pas les mêmes que ceux qui sont inséré dans le dessinDe plus, l'ordre des attributs dans un bloc, peut ne pas correspondre avec ceux défini dans la table des blocs (avec une utilisation de battman sans synchro par exemple) Un exempleJe choisis mon bloc avec attributs(setq bl (vlax-ename->vla-object (car (entsel)))) Je créé par exemple une liste d'attributs contenant l'étiquette, la valeur de l'étiquette ainsi que son objet mais en vl afin de pouvoir le modifier(setq lst (mapcar '(lambda(x) (list (vla-get-tagstring x) (vla-get-textstring x) x)) (vlax-invoke bl 'getattributes))) Si le bloc ne comporte pas de doublon comme nom d'étiquetteUn (assoc "une_Eti" lst) me retourne par exemple ("une_Eti" "Test" #<VLA-OBJECT IAcadAttributeReference2 13dc58a4>) Sinon, un (nth 45 lst) me retourne par exemple ("une_Eti_autre" "Test_Suivant" #<VLA-OBJECT IAcadAttributeReference2 13dc5484>) @+ [Edité le 11/2/2008 par Patrick_35] Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
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