明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2424|回复: 22

[提问] 难题求教!光标在视口内如何获取布局空间的视图高度

[复制链接]
发表于 2023-2-16 15:42:34 | 显示全部楼层 |阅读模式
5明经币
请教一下论坛的各位大神、我想问一下我的光标在视口内、
有没有什么函数或者方法、可以不退出视口去获取到布局空间的视图高度、
我现在是用viewsize来获取视图高度、但它在视口内获取的是模型空间视图高度、
我想在视口内获取布局空间的视口高度不知道怎么弄了、有没有懂的大神、求告知方法

最佳答案

查看完整内容

我确实不懂了,视口尺寸 模型尺寸 屏幕尺寸 都给你方法去获得了,你还要什么尺寸呢? 你在布局空间进入视口,然后想要布局的屏幕尺寸,那就退出视口,然后再返回视口就好啦!又不是手动退出和进入! 你的程序在视口内运行和能不能退出视口有什么关系呢?难道退出视口会引起什么变化?
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2023-2-16 15:42:35 | 显示全部楼层
本帖最后由 cq4920 于 2023-2-18 17:42 编辑
xiaocainiao 发表于 2023-2-18 17:35
不好意思、我可能没有表达清楚、我是想在视口内、获取此视口对应的布局空间视图高度、这个视图高度就相当 ...

我确实不懂了,视口尺寸 模型尺寸  屏幕尺寸 都给你方法去获得了,你还要什么尺寸呢?
你在布局空间进入视口,然后想要布局的屏幕尺寸,那就退出视口,然后再返回视口就好啦!又不是手动退出和进入!
你的程序在视口内运行和能不能退出视口有什么关系呢?难道退出视口会引起什么变化?
回复

使用道具 举报

 楼主| 发表于 2023-2-16 17:40:30 | 显示全部楼层
给自己顶一下。有没有会的大神啊
回复

使用道具 举报

 楼主| 发表于 2023-2-17 15:24:20 | 显示全部楼层
再给自己顶一波、求懂的大神指教
回复

使用道具 举报

发表于 2023-2-17 17:02:07 | 显示全部楼层
本帖最后由 cq4920 于 2023-2-17 17:03 编辑

(setq ent(entget (ssname ss 0)))
      (setq scale(/ (cdr(assoc 45 ent))(cdr(assoc 41 ent))));视口内模型空间高度 视口自己的高度 应该是这样

你应该只需要获取当前激活视口的名称然后就通过组码得到高度

回复

使用道具 举报

 楼主| 发表于 2023-2-18 07:53:39 | 显示全部楼层
cq4920 发表于 2023-2-17 17:02
(setq ent(entget (ssname ss 0)))
      (setq scale(/ (cdr(assoc 45 ent))(cdr(assoc 41 ent))));视口 ...

我要获取的不是当前视口的视图高度、是视口外的视图高度(或者说当前布局空间的视图高度)
回复

使用道具 举报

发表于 2023-2-18 16:51:57 | 显示全部楼层
  1. ;;;117.3 [功能] 返回当前视窗左下角和右上角 坐标
  2. (defun viewpnts        (/ A B C D X)
  3.   (setq d (getvar "screensize"))              ;屏像素
  4.   (setq        b (* (getvar "viewsize") 0.5)          ;viewsize屏竖长
  5.         a (* b (/ (car d) (cadr d)))                            ;屏横长
  6.         x (trans (getvar "viewctr") 1 2)                    ;屏中点viewctr
  7.         c (list (- (car x) a) (- (cadr x) b) 0.0)
  8.         d (list (+ (car x) a) (+ (cadr x) b) 0.0)
  9.   )
  10.   (list (trans c 2 1) (trans d 2 1))
  11. )
回复

使用道具 举报

 楼主| 发表于 2023-2-18 17:35:04 | 显示全部楼层

不好意思、我可能没有表达清楚、我是想在视口内、获取此视口对应的布局空间视图高度、这个视图高度就相当于直接在视口外执行(getvar "screensize")、但是我不能退出视口去执行(getvar "screensize")这个代码
回复

使用道具 举报

 楼主| 发表于 2023-2-18 17:49:07 | 显示全部楼层
cq4920 发表于 2023-2-18 17:41
我确实不懂了,视口尺寸 模型尺寸  屏幕尺寸 都给你方法去获得了,你还要什么尺寸呢?
你在布局空间进入 ...

这么讲吧、我用grread做了一个功能、需要在光标旁用文字实时显示一些数据、而这个文字高度现在我是用(getvar "viewsize")来获取当前空间视图高度来实时调整的、但是如果在是一个锁定视口内去执行这个功能、再用(getvar "viewsize")获取视图高度、获取的是当前视口的视图高度、这个高度是一个固定值、这就导致我的文字高度无法随着滚轮而实时调整、最后的结果就是我滚动滚轮是这个文字会非常大或者非常小、只有在视口内去获取到布局空间的视图高度、才能实时变化
回复

使用道具 举报

 楼主| 发表于 2023-2-18 17:57:12 | 显示全部楼层

http://bbs.mjtd.com/forum.php?mo ... hlight=%B6%AF%CC%AC

我论坛里面找到一个类似的功能、就是光标旁动态显示文字数据、这个文字的高度就是通过(getvar "viewsize")来动态调整的、但是视口内执行时就会有问题
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-16 10:49 , Processed in 0.175744 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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