xiaocainiao 发表于 2022-3-14 13:13:47

求助!用lisp如何实现进入选择的视口内

请教一下论坛的各位大神们、如何lisp进入到选中的视口内


(if (setq E (entsel))
(progn
    (command "_.MSPACE")
    (setvar 'CVPORT (cdr (assoc 69 (entget (car E)))))
)
)
这是之前一个大神给出的方法、但是如果循环进入选中的每个视口中、
偶尔会出现报错的情况、报错内容是无法设置CVPORT的值、
所以想请教一下各位有没有其他方法可以进入选中的视口

G〆h 发表于 2022-3-14 23:14:50

①输入to→自定义用户界面→键盘快捷键→快捷键,自定义键如Shift+Z,在宏里面输入
$M=$(if,$(=,$(getvar,CVPORT),1),^C^C_VPMAX,^C^C_VPMIN)
②鼠标选择某视口后,配合Shift+Z,可以快速切换进入视口或退出。

同理,自定义键如Shift+A,在宏里面输入
^P'_.TILEMODE $M=$(if,$(eq,$(getvar,TILEMODE),0),1,0)
反复按Shift+A,可以快速切换模型或布局。

很多键盘命令还可以转换成键盘快捷键,日积月累后,也可以保存为.cuix文件,重复使用。
例如 F4两点中点F5自…

当然也可以用autolisp加载.cuix文件
(vla-load(vla-get-MenuGroups (vlax-get-acad-object)) fname.cuix)

xiaocainiao 发表于 2022-3-16 17:11:20

G〆h 发表于 2022-3-14 23:14
①输入to→自定义用户界面→键盘快捷键→快捷键,自定义键如Shift+Z,在宏里面输入
$M=$(if,$(=,$(getvar, ...

谢谢、之前报错的原因找到了、还是用之前的代码更直接点

tfanghui 发表于 2022-8-26 16:52:34

xiaocainiao 发表于 2022-3-16 17:11
谢谢、之前报错的原因找到了、还是用之前的代码更直接点

楼主,这个问题咋解决的,分享一下,谢谢!!

xiaocainiao 发表于 2022-8-28 12:02:00

tfanghui 发表于 2022-8-26 16:52
楼主,这个问题咋解决的,分享一下,谢谢!!

就是用Z+O的形式先让视口在屏幕中全部显示、然后再循环进入就行了

tfanghui 发表于 2022-8-28 12:17:21

xiaocainiao 发表于 2022-8-28 12:02
就是用Z+O的形式先让视口在屏幕中全部显示、然后再循环进入就行了

上面的代码只能是偶尔可以正常运行咯,

xiaocainiao 发表于 2022-8-30 17:20:11

tfanghui 发表于 2022-8-28 12:17
上面的代码只能是偶尔可以正常运行咯,

上面的代码是没问题的、可以一直运行、但是我的问题是循环多个视口、代码只是一个视口

atone 发表于 2024-2-15 15:57:50

G〆h 发表于 2022-3-14 23:14
①输入to→自定义用户界面→键盘快捷键→快捷键,自定义键如Shift+Z,在宏里面输入
$M=$(if,$(=,$(getvar, ...

这个思路很有意思
页: [1]
查看完整版本: 求助!用lisp如何实现进入选择的视口内