Because some type of objects that are attached into dwg you can't detach without dialog box "externalreferences", you should manually detach them...
Code:
(defun c:Test (/ acdoc ss)
;; Tharwat 01. 07. 2011 - modified
(vl-load-com)
(setq acdoc (vla-get-activedocument
(vlax-get-acad-object)
)
)
(if (setq ss (ssget "_X" '((0 . "DGNUNDERLAY,DWFUNDERLAY,PDFUNDERLAY,OLE2FRAME,IMAGE,INSERT"))))
(
(lambda (i / sset vl e)
(while
(setq sset (ssname ss (setq i (1+ i))))
(setq vl (vlax-ename->vla-object sset))
(setq e (entget sset))
(cond
(
(eq (cdr (assoc 0 e)) "OLE2FRAME")
(vla-delete vl)
)
(
(eq (cdr (assoc 0 e)) "IMAGE")
(vl-cmdf "_.-image" "_detach" (vla-get-name vl) "")
)
(
(and (eq (cdr (assoc 0 e)) "INSERT")
(vlax-property-available-p vl 'Path)
)
(vl-cmdf "_.-xref" "_detach" (vla-get-name vl) "")
)
(
(eq (cdr (assoc 0 e)) "DGNUNDERLAY")
; (vla-delete vl)
(vl-catch-all-error-p (setq vl (vl-catch-all-apply 'vla-detach (list vl))))
)
(
(eq (cdr (assoc 0 e)) "DWFUNDERLAY")
; (vla-delete vl)
(vl-catch-all-error-p (setq vl (vl-catch-all-apply 'vla-detach (list vl))))
)
(
(eq (cdr (assoc 0 e)) "PDFUNDERLAY")
; (vla-delete vl)
(vl-catch-all-error-p (setq vl (vl-catch-all-apply 'vla-detach (list vl))))
)
)
)
)
-1
)
(alert
"No Xref file(s) or Image(s) or DWF(s) or DGN(s) or PDF(s) or OLE(s) found to detach !!"
)
)
(vla-purgeall acdoc)
(vla-regen acdoc acAllViewports)
(if (ssget "_X" '((0 . "DGNUNDERLAY,DWFUNDERLAY,PDFUNDERLAY")) )
(vl-cmdf "_.externalreferences")
)
(princ)
)
M.R. I tried, but no success...