明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 960|回复: 19

[提问] viewsize 只获取了视图的高度, 那么它的宽度如何获取?

[复制链接]
发表于 2023-9-5 09:16 | 显示全部楼层 |阅读模式
本帖最后由 mokson 于 2023-9-5 11:43 编辑

viewsize 只获取了当前绘图的工作空间的高度,
那么它的宽度如何获取?




我想获取 当前的绘图区域 最大值的坐标, 即:左上角 和 右下角的坐标
(而不是 视口框 的左上角和右下角的坐标)


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2023-9-5 09:41 | 显示全部楼层
(setq
        pix (getvar "screensize") ;当前视口宽高像素值
        sc (/ (car pix) (cadr pix)) ;当前视口宽高比
        h (getvar "viewsize") ;视口高度
        w (* h sc) ;视口宽度
        midpt (getvar "viewctr") ;视口中心点
        x (car midpt) ;中心点X轴
        y (cadr midpt) ;中心点Y轴
        w/2 (/ w 2) ;半宽
        h/2 (/ h 2) ;半高
        pt22 (list (+ x w/2) (+ y h/2)) ;当前视口右上角
        pt11 (list (- x w/2) (- y h/2)) ;当前视口左下角
)
回复 支持 1 反对 0

使用道具 举报

发表于 2023-9-5 10:18 | 显示全部楼层
mokson 发表于 2023-9-5 10:09
但是对当前正在工作的区域是有限的呀.

limmax 存储当前空间的右上方图形界限,用世界坐标系坐标表示。
limmin 存储当前空间的左下方图形界限,用世界坐标系坐标表示。
  
Limits 属性



指定图形界限。

参阅 | 示例

语法

object.Limits

object

Document
使用该属性的对象。

Limits

Variant[变体] (双精度数组); 可读写
四元素数组。第一对值定义了左下角点的 X 和 Y 的坐标值, 第二对值定义了右上角点的 X 和 Y 的坐标值。

系统变量

左下角点控制 LIMMIN 系统变量。 右上角点控制 LIMMAX 系统变量。LIMCHECK 系统变量打开或关闭当前空间的界限检查,[明经通道提示]也就是说是否允许在图形界限外创建对象。

说明

图形界限在世界坐标系统中(WCS)是二维点,代表了左下角和右上角的界限。用户不能得到界限的 Z 方向坐标。

图形界限也控制了可见栅格所覆盖的图形部分,同时也决定了 ZoomAll 方法显示的最小区域。
发表于 2023-9-5 09:28 | 显示全部楼层
viewctr 存储当前视口中视图的中心点。该值用 ucs 坐标表示。
vsmax 存储当前视口虚屏的右上角。该值用 ucs 坐标表示。
vsmin 存储当前视口虚屏的左下角。该值用 ucs 坐标表示。
 楼主| 发表于 2023-9-5 09:36 | 显示全部楼层
本帖最后由 mokson 于 2023-9-5 10:01 编辑
liuhe 发表于 2023-9-5 09:28
viewctr 存储当前视口中视图的中心点。该值用 ucs 坐标表示。
vsmax 存储当前视口虚屏的右上角。该值用 uc ...

这是虚线框的视口坐标, 我要的是视图高度, 视图是作图区域的空间, 有时会比视口大得多.


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2023-9-5 09:40 | 显示全部楼层
(setq AcadObject(vlax-get-acad-object)  
  AcadDocument(vla-get-ActiveDocument AcadObject)  
  mSpace(vla-get-ModelSpace AcadDocument)  
)  
  ;;; 返回激活文件当前的视口  
  (setq currViewport(vla-get-ActiveViewport AcadDocument))  
(vla-get-Height  currViewport)
(vla-get-Width currViewport)
 楼主| 发表于 2023-9-5 09:43 | 显示全部楼层
(tblsearch "view" "standard")
我想获取默认视图的高度和宽度, 但是内置的默认视图的名称是什么, 我写 "当前" 和 "standard" 都不对.
如果知道默认视图的名称,就好办了.
发表于 2023-9-5 10:06 | 显示全部楼层
视图理论上无限大小,只有视口才会有边界。
 楼主| 发表于 2023-9-5 10:09 | 显示全部楼层
kozmosovia 发表于 2023-9-5 10:06
视图理论上无限大小,只有视口才会有边界。

但是对当前正在工作的区域是有限的呀.
发表于 2023-9-5 10:47 | 显示全部楼层
你是想搞清楚布局中的VP对象与其中显示区域的换算关系吧?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-17 17:24 , Processed in 0.294078 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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