关闭后续图形
我正在创建一个lisp,以将所有后续图形关闭到当前图形。(当前右侧的文件选项卡)下面是我能得到的最接近的,但偶尔我会得到“错误:自动化错误”。绘图很忙。”(defun c:Close-Subsq-dwgs (/ acadx cur docs dwg nds num)
(vl-load-com)
(setq cur (getvar 'dwgname))
(setq acadx (vlax-get-acad-object) ;Get AutoCAD ActiveX object
docs (vla-get-Documents acadx);Get collection of open documents
nds (1- (vla-get-Count docs)) ;Gets number of open docs
num 0)
(while (/= (vla-get-name (vla-item docs nds)) cur)
(setq dwg (vla-item docs nds))
(if (/= 0 (vlax-variant-value (vla-getvariable dwg "DBMOD")))
(vla-save dwg)
)
(vla-close dwg :vlax-False)
(setq num (1+ num)
nds (1- nds))
)
(princ (strcat "\n " (itoa num) " Drawings closed"))
(princ)
)
我认为需要:(vla-^c^c dwg)取消vla访问的图形中发生的任何事情,但没有这样的命令。有人知道解决方案吗? 嗨,西蒙,
认为问题在于从curdwg和vla getname中获得的名称。同时使用while意味着一旦处理的文档是当前dwg,循环就会停止。不管怎样,我通常用这个:
祝你好运,Rlx组
ps不保存退出我使用
2
已经有几个月没有编码了,所以我可能有点生疏;-)
页:
[1]