保存重复的DWG LISP Routin
嘿伙计们,前几天我在Audodesk论坛上发现了这个帖子…http://forums.autodesk.com/t5/Visual-LISP-AutoLISP-and-General/Save-copy-of-AutoCAD-Dwg-file-using-macro/td-p/3574830
我觉得这是个不错的主意。因此,我将宏代码应用到QuickSave LISP例程中,发现它运行得很好。
有一件事让我困惑……有时我会收到这样的信息:“一幅同名的画已经存在。你想替换它吗?”在命令行中返回,其他时候我没有收到消息,例程成功完成。我的第一个想法是,我只会(而且总是)在消息为真时得到该消息,即当需要覆盖文件时。事实并非如此,有时我可以运行例程,在我的“备份”目录中可能存在同名的现有文件,并且我不会看到“覆盖”消息。
我的代码是:
(defun c:q ()
(vl-load-com)
(command "qsave")
(SETQ QSDATE (RTOS (GETVAR "CDATE") 2 0))
(vl-mkdir (strcat "D:/_DWGBackup/" QSDATE "/"))
(command "_.SAVE" (strcat "D:/_DWGBackup/" QSDATE "/" (getvar "DWGNAME")))
(princ)
)
我已经找到了解决这个问题的方法(下面的代码),所以这不是我寻求的解决方案——只是解释一下为什么我有时只会得到这个信息。
(DEFUN C:q (/ newname)
(setvar "CMDECHO" 0)
(if (zerop (getvar "dwgtitled"))
(command "._qsave" (getstring "\n Enter drawing name: "))
(command "_.qsave")
)
(setvar "filedia" 0)
(vl-mkdir (strcat "D:/_DWGBackup/" QSDATE "/"))
(setq newname
(strcat
"D:/_DWGBackup/" QSDATE "/"
(getvar "DWGNAME")
)
)
(if (findfile (strcat newname))
(command "_.save" newname "_Y")
(command "_.save" newname)
)
(setvar "filedia" 1)
(princ)
)
谢谢你的帮助。 (setvar专家2)。。天啊,我现在很困惑 就这样-谢谢pBe。
很高兴我能帮忙
页:
[1]