我正在创建一个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访问的图形中发生的任何事情,但没有这样的命令。有人知道解决方案吗? |