求高手帮我学完整,这个小程序,谢谢了
;;去除教育版打印戳记(defun out(/ HOLDLSP HOLDECHO dwg dxf AcadObject AcadDocument mSpace DOCS docName OldFileName NewFileName VlaFileName)
;(setq HOLDLSP (getvar "ACADLSPASDOC"))
;(setvar "acadlspasdoc" 1)
(setq HOLDECHO (getvar "cmdecho"))
(setvar "cmdecho" 0)
(setq dwg (getvar "DWGNAME") ;取当前文档名
path (getvar "dwgprefix") ;取当前文档路径
dxf (vl-string-subst ".dxf" ".dwg" dwg) ;改文件扩展名
AcadObject (vlax-get-acad-object)
AcadDocument (vla-get-ActiveDocument Acadobject)
mSpace (vla-get-ModelSpace Acaddocument)
DOCS (vla-get-documents Acadobject)
docName (vla-get-FullName AcadDocument)
OldFileName(strcat path dxf)
NewFileName(strcat path "New_" (vl-string-subst ".dwg" ".dxf" dxf))
)
(command "wblock" (strcat path dxf) "16" "*") ;输出为dxf格式
;(vl-file-rename OldFileName NewFileName) ;更改文件名(这样更改文件名其实格式是不对的,打开会出错)
(setq VlaFileName (vla-open (vla-get-documents (vlax-get-acad-object)) OldFileName));打开新文件
(vla-saveas VlaFileName NewFileName (eval (read "acR16_DWG"))) ;或用(vla-saveas VlaFileName NewFileName);以新文件名另存
(vl-file-delete OldFileName);删除dxf文件
;(setvar "acadlspasdoc" HOLDLSP)
(setvar "cmdecho" HOLDECHO)
(command "vbastmt""AcadApplication.activeDocument.close false ") ;这一句必须放在最后
(princ)
页:
[1]