1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| (defun lec_attrib (ent1x / entlx attribname attribval listatt typent attexist)
(setq entlx (entget ent1x) ; Récupère les valeurs de l'entité
typent (cdr (assoc 0 entlx)) ; Récupère la valeur associée au code DXF 0 = type d'entitée
attexist (cdr (assoc 66 entlx)) ; Récupère la valeur associée au code DXF 66 = exist attrib
listatt nil
)
(if (and (= typent "INSERT") (= attexist 1)) ; bloc avec attribut
(progn
(setq ent1x (entnext ent1x)) ; Nom de l'entitée suivante
(setq entlx (entget ent1x)) ; Valeurs de l'entitée
(while (= (cdr (assoc 0 entlx)) "ATTRIB") ; Récupère la valeur associée au code DXF 0 = type d'entitée
(Setq attribname (cdr (assoc 2 entlx))) ; Récupère le nom de l'attribut
(Setq attribval (cdr (assoc 1 entlx))) ; Récupère la valeur de l'attribut
(setq listatt (cons attribname listatt)) ; Nom de l'attribut
(setq listatt (cons attribval listatt)) ; valeur de l'attribut
(setq listatt (cons ent1x listatt)) ; ENAME de l'attribut
(setq ent1x (entnext ent1x)) ; Entité suivante
(setq entlx (entget ent1x)) ; Valeurs de l'entitée
)
)
)
(reverse listatt)
) ; fin defun |