Salut, Merci ça fonctionne, j'aurais aimé comprendre pourquoi ce problème. J'avais pensé à osmode, et aux scu, mais rien n'y fait. (defun c:db (/ l tx layer liste_obj)
(vlax-for n (vla-get-modelspace *acdoc*)
(and (= "AcDbBlockReference" (vla-get-objectname n))
(progn
(if (= (vla-get-HasAttributes n) :vlax-true)
(progn
(setq l (vlax-invoke n 'getattributes))
(foreach a l
(if (and (= (vla-get-invisible a) :vlax-false)
(= (vla-get-visible a) :vlax-true)
)
(progn
[surligneur] (setq att (entget (handent (vla-get-handle a))))
(entmake
(cons (cons 0 "TEXT")
(vl-remove-if
'(lambda (x)
(member (car x)
'(-1 0 2 5 70 74 100 280 330)
)
)
att
)
)
);entmake[/surligneur]
) ;progn
) ;if
) ;foreach
) ;progn
) ;if hasattributes
(setq liste_obj (vlax-invoke n 'explode)
layer (vla-get-layer n)
)
(vla-delete n)
(foreach e liste_obj
(progn
(vla-put-layer e layer)
(and (= (vla-get-objectname e) "AcDbAttributeDefinition")
(vla-delete e)
)
) ;progn
) ;foreach
) ;progn
) ;and isblock
) ;vlax-for
)
J'ai intégré la modif un peu sauvagement pour tester. Je pensais faire un bon exercice en vla, je pense que je le reprendrai en autolisp en travaillant avec les dxf pour uniformiser. Merci Patrick_35