0 Members and 1 Guest are viewing this topic.
;| ; E S A Édition et Syncronisation des Attributs ; Par: Andrea Andreetti ; 2005-11-29 ;|;;| ;; PROGRAMME ESA ;; |;(defun c:esa () (setq ega1 (entsel "Please select any block with attributes...")) (setq ega2 (entget (car ega1))) (egaData) (princ) );;;;;;;;;;;;;;;;;;;;;;;(defun dxf (code elist) (cdr (assoc code elist)));defun;| ;; VÉRIFICATION DE LA SÉLECTION ;; |;(defun egaData () (setq ega_type (cdr (assoc 0 ega2)));;type d'entité = INSERT (setq ega_bname (cdr (assoc 2 ega2)));;block name (if (= ega_bname nil) (progn (alert (strcat "You have selected a \"" ega_type " \"")) (reset_EGA_variables) ) (progn (get_egadata) (reset_EGA_variables) ) ));| ;; VÉRIFICATION LA SÉLECTION CONTIENT DES ATTRIBUT ;; |;(defun get_egadata () (setq edata (entnext (dxf -1 ega2)));;<Nom d'entité: 7efb5058> (if edata (progn (setq edata1 (entget edata)) (if (= (cdr (assoc 0 edata1)) "ATTRIB") (progn (vl-cmdf "_.eattedit" ega1) (extract_egatt) ) (alert "There is no attribute in this block.") )) (alert "There is no attribute in this block.") ));| ;; LECTURE DE CHAQUE ATTRIBUTS ;; |;(defun extract_egatt ()(setq ebaL1 nil)(setq ega2 (entget (car ega1)))(setq ega2 (entget (entnext (dxf -1 ega2))))(setq eb1 (dxf 1 ega2)) (while eb1 (progn (setq ebaL1 (append ebaL1 (list eb1))) (setq ega2 (entget (entnext (dxf -1 ega2)))) (setq eb1 (dxf 1 ega2)) );;progn );;while (ega_update) );;defun;| ;; MISE À JOUR DES BLOCS ;; |;(Defun ega_update ()(setq bega (ssget "X" (list (cons 0 "INSERT") (cons 2 ega_bname)))) (setq sscount (sslength bega)) (setq val1 (- sscount 1)) (repeat sscount (setq egax1 (entget (ssname bega val1)));;détail de l'entité(if (not (eq (cdar egax1) (car ega1))) (progn (setq edata egax1) (foreach n ebaL1 (setq edata (entget (entnext (dxf -1 edata)))) (setq el (subst (cons 1 n) (assoc 1 edata) edata)) (entmod el) );;for each );;progn );;if (setq val1 (- val1 1)));;repeat(vl-cmdf "_.regen") );;defun;;radian to degree(defun rtd (a) (/ (* a 180) pi) );| ;; RESET VARIABLES ;; |;(defun reset_EGA_variables ()(setq VarLst '(bega vla1 sscount egax1 ega1 edata edata1 ebaL1 el ega1 ega2 ))(mapcar '(lambda (l) (set l nil)) VarLst))