难题求教!光标在视口内如何获取布局空间的视图高度
请教一下论坛的各位大神、我想问一下我的光标在视口内、有没有什么函数或者方法、可以不退出视口去获取到布局空间的视图高度、
我现在是用viewsize来获取视图高度、但它在视口内获取的是模型空间视图高度、
我想在视口内获取布局空间的视口高度不知道怎么弄了、有没有懂的大神、求告知方法
本帖最后由 cq4920 于 2023-2-18 17:42 编辑
xiaocainiao 发表于 2023-2-18 17:35
不好意思、我可能没有表达清楚、我是想在视口内、获取此视口对应的布局空间视图高度、这个视图高度就相当 ...
我确实不懂了,视口尺寸 模型尺寸屏幕尺寸 都给你方法去获得了,你还要什么尺寸呢?
你在布局空间进入视口,然后想要布局的屏幕尺寸,那就退出视口,然后再返回视口就好啦!又不是手动退出和进入!
你的程序在视口内运行和能不能退出视口有什么关系呢?难道退出视口会引起什么变化? 给自己顶一下。有没有会的大神啊 再给自己顶一波、求懂的大神指教 本帖最后由 cq4920 于 2023-2-17 17:03 编辑
(setq ent(entget (ssname ss 0)))
(setq scale(/ (cdr(assoc 45 ent))(cdr(assoc 41 ent))));视口内模型空间高度 视口自己的高度 应该是这样
你应该只需要获取当前激活视口的名称然后就通过组码得到高度
cq4920 发表于 2023-2-17 17:02
(setq ent(entget (ssname ss 0)))
(setq scale(/ (cdr(assoc 45 ent))(cdr(assoc 41 ent))));视口 ...
我要获取的不是当前视口的视图高度、是视口外的视图高度(或者说当前布局空间的视图高度) ;;;117.3 [功能] 返回当前视窗左下角和右上角 坐标
(defun viewpnts (/ A B C D X)
(setq d (getvar "screensize")) ;屏像素
(setq b (* (getvar "viewsize") 0.5) ;viewsize屏竖长
a (* b (/ (car d) (cadr d))) ;屏横长
x (trans (getvar "viewctr") 1 2) ;屏中点viewctr
c (list (- (car x) a) (- (cadr x) b) 0.0)
d (list (+ (car x) a) (+ (cadr x) b) 0.0)
)
(list (trans c 2 1) (trans d 2 1))
) cq4920 发表于 2023-2-18 16:51
不好意思、我可能没有表达清楚、我是想在视口内、获取此视口对应的布局空间视图高度、这个视图高度就相当于直接在视口外执行(getvar "screensize")、但是我不能退出视口去执行(getvar "screensize")这个代码 cq4920 发表于 2023-2-18 17:41
我确实不懂了,视口尺寸 模型尺寸屏幕尺寸 都给你方法去获得了,你还要什么尺寸呢?
你在布局空间进入 ...
这么讲吧、我用grread做了一个功能、需要在光标旁用文字实时显示一些数据、而这个文字高度现在我是用(getvar "viewsize")来获取当前空间视图高度来实时调整的、但是如果在是一个锁定视口内去执行这个功能、再用(getvar "viewsize")获取视图高度、获取的是当前视口的视图高度、这个高度是一个固定值、这就导致我的文字高度无法随着滚轮而实时调整、最后的结果就是我滚动滚轮是这个文字会非常大或者非常小、只有在视口内去获取到布局空间的视图高度、才能实时变化 cq4920 发表于 2023-2-18 16:51
http://bbs.mjtd.com/forum.php?mod=viewthread&tid=185419&highlight=%B6%AF%CC%AC
我论坛里面找到一个类似的功能、就是光标旁动态显示文字数据、这个文字的高度就是通过(getvar "viewsize")来动态调整的、但是视口内执行时就会有问题