如何设置文档的优先级
本帖最后由 世人皆醉 于 2022-11-11 10:47 编辑假设我打开了主文档1,其他的都是次文档,我需要每次提取次文档的文件到主文档,用ctrl+table快捷键是可以快速切换文档,但是当文档太多的时候有点切不过来,想请教大神,
能不能快速切换到主文档(第一个,也可以设定一个固定名字),或者有没有命令能够关闭除主文档之外的所有文档,望赐教,谢谢!
本帖最后由 菜卷鱼 于 2022-11-11 18:10 编辑
;;;;关闭未活动文档
(defun qclose (/ vacad vdocs vadoc ok)
(setq vacad (vlax-get-acad-object))
(setq vdocs (vla-get-Documents vacad))
(setq vadoc (vla-get-ActiveDocument vacad))
(vlax-for x vdocs
(if (not (equal x vadoc))
(vla-close x)
)
)
(princ "**操作完成")
(prin1)
) 设个命令
(defun c:tt nil
(startapp "explorer""主文档1")
(prin1)
)
这种简单的方式不行吗?
菜卷鱼 发表于 2022-11-11 10:00
设个命令
(defun c:tt nil
(startapp "explorer""主文档1")
我的意思是CAD里面的文档之前的转换,不是打开CAD文件啊 本帖最后由 菜卷鱼 于 2022-11-11 14:59 编辑
世人皆醉 发表于 2022-11-11 10:46
我的意思是CAD里面的文档之前的转换,不是打开CAD文件啊
用这个改一改就行了
文件标签与布局标签 循环切换
;;;设置主文档
(defun c:q1 nil
(vl-bb-set 'maindoc (getvar "dwgname"))
)
;;;返回主文档
(defun c:q2 (/ dwgname)
(princ "\n切回主文档")
(setq dwgname (getvar "dwgname"))
(if (not (= (vl-bb-ref 'maindoc) dwgname))
(progn
(vl-bb-set 'currentdoc dwgname)
(activatedoc (vl-bb-ref 'maindoc))
)
)
(prin1)
)
;;;两文档之间来回切换
(defun c:q3 (/ s)
(setq s (vl-bb-ref 'currentdoc))
(setq dwgname (getvar "dwgname"))
(if (not (= s dwgname))
(progn
(vl-bb-set 'currentdoc dwgname)
(activatedoc s)
)
)
(prin1)
)
(defun activatedoc (doc / tablist)
(or *ACAD* (setq *ACAD* (vlax-get-acad-object)))
(or *DOC* (setq *DOC* (vla-get-ActiveDocument *ACAD*)))
(or *docs* (setq *docs* (vla-get-Documents *ACAD*)))
(or *MSPACE* (setq *MSPACE* (vla-get-ModelSpace *DOC*)))
(vl-bb-set 'currentdoc (getvar "dwgname"))
(vlax-for layout *docs*
(setq tablist (cons (list (vla-get-Name layout) layout) tablist))
)
(vl-some '(lambda (x)
(if (= (car x) doc)
(vla-activate (cadr x))
)
)
tablist
)
(prin1)
) 暂时不能搞成通用的,本来想做成自动回到第一个文件的,暂时没研究出来:(
下面代码中的"1.dwg"就是你问题中的“固定名字”,把程序设置为自动加载,执行命令kk
不管在哪个文件,都可以自动回到"1.dwg",你自己试试吧
(defun c:kk ()
(vlax-for a (vlax-get-property (vlax-get-acad-object) 'documents) (if (= (vlax-get-property a 'Name) "1.dwg") (vla-activate a)))) 本帖最后由 caaooo 于 2022-11-11 17:29 编辑
然后,你所谓的关闭其他文件的功能,是cad自带的,你也可以试试
我一般遇到你在这种情况都是把 主文档标签 拖出来成为一个窗口。拖出来的窗口本身就自带置顶按钮。
页:
[1]