VDH-Bruno Posté(e) le 12 novembre 2013 Posté(e) le 12 novembre 2013 Bonsoir, Une petite routine DIRFIELD pour identifier les entités graphique entrant dans la composition d’un champ dynamique, et comprendre rapidement qu’elles sont les entités qui sont liés (pratique lorsqu’un dwg fourmille de champs avec formules). Fonctionne sur les champs (et formules de champs) des textes, textes multiples, des références d’attributs et des tableaux, avec toutes fois une limitation sur les champs des tableaux référençant des numéros de cellules.. ;; VDH-Bruno DIRFIELD le: 12/11/2013 ;; Highlight les entités graphique qui composent le champ dynamique se trouvant ;; sous le curseur. (defun c:dirField (/ gr e l edict *error* mredraw foo) ;; Gestion des erreurs (defun *error* (msg) (if l (mredraw l 4)) (princ)) ;; Fonction redraw sur une liste d'entités (defun mredraw (l code) (foreach x l (redraw x code))) ;; Explore l'arborescence des codes 360 puis retourne les noms d'entités des codes 331 (defun foo (l / x) (cond ((null l) nil) ((setq x (assoc 331 l)) (list (cdr x))) ((append ((lambda (p) (if p (foo (entget (cdr p))))) (setq x (assoc 360 l))) (foo (cdr (member x l))) ) ) ) ) (prompt "Positionnez le pointeur sur un champ dynamique pour voir les entités liés...") (while (= 5 (car (setq gr (grread t 13 2)))) (if l (mredraw l 4)) (and (setq e (car (nentselp (cadr gr)))) (setq edict (cdadr (member '(102 . "{ACAD_XDICTIONARY") (entget e)))) (mredraw (setq l (foo (dictsearch edict "ACAD_FIELD"))) 3) ) ) (*error* nil) ) Bon test.A+ Apprendre => Prendre => Rendre
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