Soumis par red1 le dim, 27/12/2009 - 21:20
Bonjour,
J’ai un plan qui contient des blocs avec des attributs numérique,
Je veux accéder au les attributs des blocs et l’afficher la somme dans un message avec auto Lisp.
Merci d’avance.



Voici un exemple de code qui
Voici un exemple de code qui additionne les attributs avec l'étiquette B d'un bloc nommé A :
;; Affiche la somme des attributs B des insertions du bloc A (defun attsum (/ sset sum i l name entDef) (setq sset (ssget "X" '((2 . "A"))) ; Sélectionne toutes les insertions du bloc A sum 0 ) (if sset (progn (setq i 0 l (sslength sset) ) (while (< i l) (setq name (ssname sset i) loop T ) ;; Boucle sur les attributs (while loop (setq name (entnext name) entDef (entget name) ) (if (and (= (cdr (assoc 0 entDef)) "ATTRIB") (= (cdr (assoc 2 entDef)) "B") ) ;; On a trouvé l'attribut B (setq sum (+ sum (atof (cdr (assoc 1 entDef)))) loop nil ) ) (if (= (cdr (assoc 0 entDef)) "SEQEND") (setq loop nil) ) ; Fin de séquence, on termine la boucle ) ;; Passe à l'insertion de bloc suivante (setq i (1+ i)) ) (alert (strcat "Somme : " (rtos sum))) ) (alert "Pas d'insertion du bloc A dans le dessin.") ) (princ) )Merci C’est exactement ce que
Merci
C’est exactement ce que je veux
Merci pour ton aide
Poster un nouveau commentaire