Salut, un exemple en utilisant la fonction entmod qui modifie une entité à l'aide d'une liste DXF telle que retournée avec entget, et la fonction subst pour modifier la liste retournée par entget en substituant un des éléments de la liste. (if (setq ss (ssget "_X" '((0 . "INSERT,LWPOLYLINE"))))
(progn
(setq i 0)
(while (setq ent (ssname ss i))
(setq i (1+ i)
elst (entget ent))
(if (= (cdr (assoc 0 elst)) "INSERT")
(progn
(setq dxf10 (assoc 10 elst))
(entmod
(subst
(list 10 (cadr dxf10) (caddr dxf10) 0.0)
dxf10
elst
)
)
)
(entmod (subst (cons 38 0.0) (assoc 38 elst) elst))
)
)
)
) Un autre exemple en utilisant les (nouvelles) fonctions LISP getpropertyvalue et setpropertyvalue pour directement obtenir ou attribuer les valeurs des propriétés d'une entité (utiliser dumpallproperties pour voir toutes les propriétés de l'entité). (if (setq ss (ssget "_X" '((0 . "INSERT,LWPOLYLINE"))))
(progn
(setq i 0)
(while (setq ent (ssname ss i))
(setq i (1+ i))
(if (= (getpropertyvalue ent "LocalizedName")
"Référence de bloc"
)
(progn
(setq insPt (getpropertyvalue ent "Position"))
(setpropertyvalue
ent
"Position"
(list (car inspt) (cadr insPt) 0.0)
)
)
(setpropertyvalue ent "Elevation" 0.0)
)
)
)
) Une dernière en utilisant "Visual LISP" (if (ssget "_X" '((0 . "INSERT,LWPOLYLINE")))
(progn
(vlax-for obj (setq ss (vla-get-ActiveSelectionSet
(vla-get-ActiveDocument
(vlax-get-acad-object)
)
)
)
(if (= (vla-get-ObjectName obj) "AcDbBlockReference")
(progn
(setq insPt (vlax-get obj 'InsertionPoint))
(vla-put-InsertionPoint
obj
(vlax-3d-point (list (car insPt) (cadr insPt) 0.0))
)
)
(vla-put-Elevation obj 0.0)
)
)
(vla-Delete ss)
)
)