calmar Posté(e) le 17 décembre 2014 Posté(e) le 17 décembre 2014 Bonjour,j'ai fouillé sur le net et sans succès du coup je me tourne vers vous ^^voila mon soucis, j'utilise un bloc un petit paquet de fois, le soucis sur le plan que j'ai est que l'étiquette "nom" de mon bloc est vide par contre le calque sur lequel il apparait porte son nom, du coup je voudrais que mon étiquette "nom" soit remplie par le nom du calque dans lequel elle est. j'ai essayé d'utiliser la variable systeme 'clayer' mais comme son nom l'indique, elle renvoie au calque courant et non au calque dans lequel apparait l'élément(je précise que je ne peux pas passer mon calque en courant, étant donné que j'ai ce cas de figure 2650 fois ^^). Si quelqu'un a une solution, je suis preneur!!en vous remerciant d'avance et en esperant que mon message soit clair ;)Calmar
zebulon_ Posté(e) le 17 décembre 2014 Posté(e) le 17 décembre 2014 Bonjour, (vl-load-com) (defun modif_attrib (E ETIQ VALEUR / LATT ATT) (if (= (type E) 'ENAME) (setq E (vlax-ename->vla-object E)) ) (setq LATT (vlax-invoke E 'getAttributes)) (foreach ATT LATT (if (= (strcase (vla-get-TagString ATT)) (strcase ETIQ)) (vla-put-TextString ATT VALEUR) ) ) ) (defun c:lay2att () (setq js (ssget "_X" '((0 . "INSERT") (2 . "MettreIciLeNomDuBloc")))) (setq I 0) (repeat (sslength js) (setq e (ssname js I)) (setq I (+ I 1)) (setq LAY (cdr (assoc 8 (entget e)))) (modif_attrib e "MettreIciLeNomDAttribut" LAY) ) (princ) ) AmicalementVincent PS : quand il n'y a qu'un seul souci, il n'y a pas besoin de mettre de s. Jusqu'à dernièrement je mettais un s également, compte tenu de la proximité avec le mot "souris". C'est au pied du mur que l'on reconnaît le maçon ! (Anonyme) C’est en restant au pied du mur qu’on ne voit que le mur (Anonyme aussi)
Patrick_35 Posté(e) le 18 décembre 2014 Posté(e) le 18 décembre 2014 Salut Je suis parti de l'idée de base de Zebulon_, mais en cliquant à l'écran sur l'attribut qui t'intéresse et en utilisant les champs. (defun c:caq(/ doc ent nom ori pos sel nombl) (defun nombl(bl) (if (vlax-property-available-p bl 'effectivename) (vla-get-effectivename bl) (vla-get-name bl) ) ) (setq doc (vla-get-activedocument (vlax-get-acad-object))) (vla-startundomark doc) (and (setq ent (nentsel "\nVeuillez sélectionner un attribut : ")) (eq (vla-get-objectname (setq ent (vlax-ename->vla-object (car ent)))) "AcDbAttribute") (setq pos (vl-position ent (vlax-invoke (setq ori (vla-objectidtoobject (vla-get-database ent) (vla-get-ownerid ent))) 'getattributes))) (ssget "x" (list (cons 0 "insert") (cons 66 1) (cons 2 (strcat "`**," (setq nom (nombl ori)))))) (progn (vlax-for ent (setq sel (vla-get-activeselectionset doc)) (and (eq (nombl ent) nom) (vla-put-textstring (nth pos (vlax-invoke ent 'getattributes)) (strcat "%<\\AcObjProp Object(%<\\_ObjId " (itoa (vla-get-objectid ent)) " >%).Layer>%")) ) ) (vla-delete sel) (vla-regen doc acallviewports) ) ) (vla-endundomark doc) (princ) ) @+ 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