我正在尝试备份autoCAD工作区,以便安全地更改某些ACAD设置。
在这样做的时候,我遇到了一个小问题。如果存在具有该名称的现有工作区,那么我需要设置一个肯定答案来覆盖它,如果没有任何这样的工作区,则什么也不做。
错误的选择会阻止脚本进一步执行。
我通过VVA发布的代码找到了解决方案
- (defun C:SW ()
- ;;;Save WorkSpace
- (command "_.WorkSpace" "_Save"
- "[color=red]MyWorkSpace[/color]" [b];;;_ Type this your workspace name[/b]
- )
- (while (> (getvar "CMDACTIVE") 0)(command "_Y"))
- (princ)
- )
我试着把它转换成脚本的一部分,但它总是挂在最后。我似乎无法找到在不结束脚本执行的情况下结束代码的方法。
我也试着把它分开。lsp文件并从脚本中加载它
- (load "G:\\...\\install.lsp")
- [size=4][color=red]sw[/color][/size]
- (vl-load-com)
- (vla-put-enterprisemenufile (vla-get-files
- (vla-get-preferences(vlax-get-acad-object)))"G:/.../Standard_001.cui")
- (command "*_TOOLPALETTEPATH" "G:/.../PALETTE SYSTEM")
- (command "workspace" "c" "tmp")
- (command "-toolbar" "STANDARD BLOCKS" "SHOW")
- (command "quit" "y")
但是脚本总是纠缠在lisp代码中。。。
如果我试着直接在命令行中执行它,它会很好地工作。。。
所以这个解决方案对我来说很难理解 |