下面的程序是能正常运行的: (defun c:aa ();(/ app doc docs err errtmp file files newpath old_acadlspasdoc old_cmdecho path sset) (zhl_registry) (defun getFolder (str_title str_prompt /) (strcat (vl-string-right-trim "\\" (strcase (acet-ui-pickdir str_prompt (vl-string-right-trim "\\" (getvar "dwgprefix") ) str_title ) ) ) "\\" ) ) (defun makeDirectory (dir /)(vl-mkdir dir)) (defun userundo () (setq *error* errtmp) (vlax-release-object docs) (vlax-release-object app) (setvar "cmdecho" old_cmdecho) (setvar "acadlspasdoc" old_acadlspasdoc) (princ) ) (defun err (msg)(userundo)) (setq errtmp *error*) (setq *error* err) (setq old_cmdecho (getvar "cmdecho")) (setvar "cmdecho" 0) (setq old_acadlspasdoc (getvar "acadlspasdoc")) (setvar "acadlspasdoc" 0) (setq app (vlax-get-acad-object)) (setq docs (vla-get-documents app)) (setq path (getFolder "请选择目录..." "请选择目录:")) (setq files (vl-directory-files path "*.dwg" 1)) (if files (progn (setq newpath (strcat path "处理文件\\")) (makeDirectory newpath) (foreach file files (setq doc (vla-open docs (strcat path file))) (setq sset (vla-get-activeselectionset doc)) (vla-export doc (strcat newpath file) "dxf" sset) ;(vla-save doc) (vla-close doc :vlax-false) (setq doc (vla-open docs (strcat newpath file ".dxf"))) (setq sset (vla-get-activeselectionset doc)) (vla-export doc (strcat path file) "dxf" sset) ;我想把上面这一句改成:输出所有DXF文件成DWG格式到Path下,并覆盖原来的DWG文件 (vla-close doc :vlax-false) (vlax-release-object doc) ) ) (alert "所选目录无 .dwg 文件!请重新选择:") ) (userundo) (setq *error* errtmp) (princ) ) |