布局和MV窗口一键切换代码
本帖最后由 sjzm 于 2023-4-29 16:28 编辑我再布局内标注的时候,想要进入模型空间画图需要鼠标双击视口进入模型空间才行,画完后还要把鼠标移出来双击布局空间,很不方便。如果是用快捷键mspace和pspace切换也不方便。
所以请问有没有这样的插件可以一键切换布局/模型空间,不用我再来回双击鼠标。
这是旧的提问
static/image/hrline/1.gif
谢谢大家的帮助和回复,我对需求的形容不清误导了大家,在此表达歉意!
自己借助AI工具鼓捣了一下,满足我我的需求。希望能帮到大家
(defun C:ww ()
(if (= (getvar "CVPORT") 1)
(command "_.MSPACE")
(command "_.PSPACE")
)
)
本帖最后由 liuhe 于 2023-4-28 17:31 编辑
(defun c:t1 ()
(setq lst (cons "Model" (layoutlist)))
(setq num (vl-position (getvar "ctab") lst))
(if (= num (1- (length lst)))
(setq num 0)
(setq num (1+ num))
)
(setvar 'ctab (nth num lst))
)
(defun c:t2 ()
(setqacadObj(vlax-get-acad-object)
doc(vla-get-ActiveDocument acadObj)
lst(list acModelSpace acPaperSpace)
)
(vla-put-ActiveSpace
doc
(nth (/ (1+ (getvar "TILEMODE")) 2) lst)
)
)
(vl-load-com)
(defun c:Example_ActiveSpace()
;; This example toggles the ActiveSpace property from
;; paper space to model space.
(setq acadObj (vlax-get-acad-object))
(setq doc (vla-get-ActiveDocument acadObj))
;; Display the current setting for TILEMODE
(alert (strcat "TILEMODE = " (itoa (vla-get-ActiveSpace doc))))
;; Changes active document to paper space
(vla-put-ActiveSpace doc acPaperSpace)
(alert (strcat "TILEMODE = " (itoa (vla-get-ActiveSpace doc))))
;; Changes active document to model space
(vla-put-ActiveSpace doc acModelSpace)
(alert (strcat "TILEMODE = " (itoa (vla-get-ActiveSpace doc))))
)
CAD帮助自带的程序,自己改改就行了 本帖最后由 liuhe 于 2023-4-28 21:24 编辑
;;判断工作空间及是否在活动视口中
(DEFUN C:T3()
(cond
((= (getvar "TILEMODE") 1)
(princ "\n——★★★ 在模型空间中 ★★★——")
)
((and (= (getvar "TILEMODE") 0)(= (getvar "CVPORT") 1))
(COMMAND "MSPACE")(PRINC)
)
((and (= (getvar "TILEMODE") 0)(> (getvar "CVPORT") 1))
(COMMAND "PSPACE")(PRINC)
)
))
PSPACE 命令)
在布局中,从布局视口中的模型空间切换到图纸空间。
MSPACE(命令)
在布局中,从图纸空间切换到布局视口中的模型空间。
liuhe 发表于 2023-4-29 13:25
直接复制就可以快捷键是T3
谢谢你的代码,以你的代码为基础,我让GTP修改了一下,最后实现了我想要的功能,是我对我需要的功能描述不清晰误导了你,但还是谢谢你,一下是代码(我不懂代码和编程,只能瞎鼓捣)
(defun C:ww ()
(if (= (getvar "CVPORT") 1)
(command "_.MSPACE")
(command "_.PSPACE")
)
)
参考这个帖子,判断不同空间执行不同的命令:http://bbs.mjtd.com/thread-186934-1-1.html
kucha007 发表于 2023-4-28 16:23
参考这个帖子,判断不同空间执行不同的命令:http://bbs.mjtd.com/thread-186934-1-1.html
谢谢你的回复和帮助,这个帖子的内容我看不懂啊,请问有现成的lsp吗 liuhe 发表于 2023-4-28 17:12
(vl-load-com)
(defun c:Example_ActiveSpace()
;; This example toggles the ActiveSpace propert ...
感觉他要的不是你这个,是要退出和进入视口。顺便说一下你这个程序也可以用这个代替:(ai_onoff 'TILEMODE) 要退出视口回到布局空间设置一下不就好了:
命令CUI,设置快捷键,
下面搜索命令"图纸空间",拖到"键盘快捷键"的子菜单"快捷键"菜单
然后设置一个快捷键比如SHIFT+1,这样你在视口中的时候按一下SHIFT+1就退出了视口 liuhe 发表于 2023-4-28 21:23
PSPACE 命令)
在布局中,从布局视口中的模型空间切换到图纸空间。
很好的循环切换程序 liuhe 发表于 2023-4-28 17:12
(vl-load-com)
(defun c:Example_ActiveSpace()
;; This example toggles the ActiveSpace propert ...
谢谢你的帮助,我尝试研究下 本帖最后由 sjzm 于 2023-4-29 13:18 编辑
liuhe 发表于 2023-4-28 21:23
PSPACE 命令)
在布局中,从布局视口中的模型空间切换到图纸空间。
谢谢你的代码,我好想有点懂了,这个代码是自动判别当前是在模型空间还是在布局空间,然后根据情况输入pspace或者mspace。不知道我理解的对不对。
请问:这段代码我复制到文档中然后改名为lsp文件就行能用了吗? 快捷键怎么设置呢?
页:
[1]
2