Here is my routine:
;;不保存关闭所有文档
(defun c:USave-CloseAll ( / ACADOBJ DOCS DOC)
(vl-load-com)
(SETVAR "SDI" 0)
(setq ACADOBJ (vlax-get-acad-object)
DOCS (vla-get-documents ACADOBJ)
DOC (vla-get-activedocument ACADOBJ)
)
(vlax-for d DOCS
(if (not (equal DOC d))
(vla-close d :vlax-false)
)
)
(command "vbastmt" "AcadApplication.activeDocument.close false ")
;;最后关闭当前活动的文档,这样就把所有的文档都关闭了 false 不保存关闭当前文档,true 保存然后关闭当前文档
(princ)
)
;;保存并关闭所有文档
(defun c:Save-CloseAll ( / ACADOBJ DOCS DOC)
(vl-load-com)
(SETVAR "SDI" 0)
(setq ACADOBJ (vlax-get-acad-object)
DOCS (vla-get-documents ACADOBJ)
DOC (vla-get-activedocument ACADOBJ)
)
(vlax-for d DOCS
(if (not (equal DOC d))
(vla-close d :vlax-true) ;_改为:vlax-true表示保存后关闭
)
)
(command "vbastmt" "AcadApplication.activeDocument.close true ")
;;最后关闭当前活动的文档,这样就把所有的文档都关闭了 false 不保存关闭当前文档,true 保存然后关闭当前文档
(princ)
)