Bonjour,
Il faut passer par les dictionnaires...
Un petit outil en lisp trouvé je ne sais plus où (merci à l'auteur)
Code:
(defun c:fieldobject ( / en )
(while
(progn (setvar 'ERRNO 0) (setq en (car (nentsel "\nSelect Field: ")))
(cond
( (= 7 (getvar 'ERRNO))
(princ "\nMissed, try again.")
)
( (eq 'ENAME (type en))
(if
(and
(wcmatch (cdr (assoc 0 (setq en (entget en)))) "*TEXT,ATTRIB")
(setq en (cdr (assoc 360 en)))
(setq en (dictsearch en "ACAD_FIELD"))
(setq en (dictsearch (cdr (assoc -1 en)) "TEXT"))
(setq en (cdr (assoc 360 en)))
(setq en (cdr (assoc 331 (entget en))))
)
(redraw en 3)
(princ "\nObject does not contain a Field.")
)
)
)
)
)
(princ)
)
Cela met en surbrillance (pas de sélection) l'entité référencée au champ sélectionné.
Pour mettre en sélection, on pourrait remplacer:
(redraw en 3)
par
(sssetfirst nil (ssadd en))