Aller au contenu

Messages recommandés

Posté(e)

Bonjour je cherche a modifié plusieurs attributs d'un bloc (image jointe)

 

Si quelqu'un aurais un peu de temps pour m'aider a compléter une routine pour ajouter:

 

"( )" a l'attribut POLE_NO

"(" a l'attribut HEIGHT

")" a l'attribut YEAR_ADDED

 

pour que le bloc a gauche dans l'image jointe soit représenté ainsi

 

(P27S)

(35P7/1980)

 

j'avais recu de l'aide pour ajouter des "( )" a tout les attributs pour un autre bloc mais celui ci doit etre plus spécifique

si ça peut aider voici le lisp

 

(vl-load-com)

(defun c:demo (/ atts i obj ss str)

(if (setq ss (ssget ":L" '((0 . "INSERT") (66 . 1) (2 . "ANCHOR_ANNO") (62 . 6))))

(repeat (setq i (sslength ss))

(setq obj (vlax-ename->vla-object (ssname ss (setq i (1- i))))

atts (vlax-invoke obj "GetAttributes")

)

(foreach att atts

(if (and (/= (setq str (vla-get-textstring att)) "")

(not (vl-string-position (ascii "(") str))

)

(vla-put-textstring att (strcat "(" str ")"))

)

)

)

)

(princ)

)

Posté(e)

Salut,

 

À mon avis le plus simple :

 

(defun c:demo (/ i s B)
 (if (setq s (ssget "_:L" '((0 . "INSERT") (2 . "ANCHOR_ANNO"))))
   (repeat (setq i (sslength s))
     (setq b (ssname s (setq i (1- i))))
     (setpropertyvalue b "POLE_NO" (strcat "(" (getpropertyvalue b "POLE_NO") ")"))
     (setpropertyvalue b "HEIGHT" (strcat "(" (getpropertyvalue b "HEIGHT")))
     (setpropertyvalue b "YEAR_ADDED" (strcat (getpropertyvalue b "YEAR_ADDED") ")"))
   )
 )
 (princ)
)

  • Upvote 1

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Posté(e)

Merci de ton aide! j'ai essayer la routine lisp et tout fonctionne bien MERCI!!!

 

j'ai ajouter (62 . 6) pour stipuler que je veux que les modification ne soit faite que sur les bloc avec la couleur 6

 

(if (setq s (ssget "_:L" '((0 . "INSERT") (2 . "ANCHOR_ANNO") (62 . 6))))

 

et je vais essayer d'introduire la fonction (not (vl-string-position (ascii "(") B )) pour éviter les doubles parenthéses si la fonction est ré-utilisé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é