明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1382|回复: 8

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

[复制链接]
发表于 2022-3-14 13:13:47 | 显示全部楼层 |阅读模式
请教一下论坛的各位大神们、如何lisp进入到选中的视口内


  1. (if (setq E (entsel))
  2.   (progn
  3.     (command "_.MSPACE")
  4.     (setvar 'CVPORT (cdr (assoc 69 (entget (car E)))))
  5.   )
  6. )

这是之前一个大神给出的方法、但是如果循环进入选中的每个视口中、
偶尔会出现报错的情况、报错内容是无法设置CVPORT的值、
所以想请教一下各位有没有其他方法可以进入选中的视口
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 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)
 楼主| 发表于 2022-3-16 17:11:20 | 显示全部楼层
G〆h 发表于 2022-3-14 23:14
①输入to→自定义用户界面→键盘快捷键→快捷键,自定义键如Shift+Z,在宏里面输入
$M=$(if,$(=,$(getvar, ...

谢谢、之前报错的原因找到了、还是用之前的代码更直接点
发表于 2022-8-26 16:52:34 | 显示全部楼层
xiaocainiao 发表于 2022-3-16 17:11
谢谢、之前报错的原因找到了、还是用之前的代码更直接点

楼主,这个问题咋解决的,分享一下,谢谢!!
 楼主| 发表于 2022-8-28 12:02:00 | 显示全部楼层
tfanghui 发表于 2022-8-26 16:52
楼主,这个问题咋解决的,分享一下,谢谢!!

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

上面的代码只能是偶尔可以正常运行咯,
 楼主| 发表于 2022-8-30 17:20:11 | 显示全部楼层
tfanghui 发表于 2022-8-28 12:17
上面的代码只能是偶尔可以正常运行咯,

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

点评

一样的情况,大视口里面有好几个视口,  发表于 2022-8-30 18:42
发表于 2024-2-15 15:57:50 | 显示全部楼层
G〆h 发表于 2022-3-14 23:14
①输入to→自定义用户界面→键盘快捷键→快捷键,自定义键如Shift+Z,在宏里面输入
$M=$(if,$(=,$(getvar, ...

这个思路很有意思
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 22:52 , Processed in 0.212262 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表