mokson 发表于 2023-9-5 09:16:42

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

本帖最后由 mokson 于 2023-9-5 11:43 编辑

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




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


nyistjz 发表于 2023-9-5 09:41:51

(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)) ;当前视口左下角
)

liuhe 发表于 2023-9-5 10:18:29

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 方法显示的最小区域。

liuhe 发表于 2023-9-5 09:28:38

viewctr 存储当前视口中视图的中心点。该值用 ucs 坐标表示。
vsmax 存储当前视口虚屏的右上角。该值用 ucs 坐标表示。
vsmin 存储当前视口虚屏的左下角。该值用 ucs 坐标表示。

mokson 发表于 2023-9-5 09:36:03

本帖最后由 mokson 于 2023-9-5 10:01 编辑

liuhe 发表于 2023-9-5 09:28
viewctr 存储当前视口中视图的中心点。该值用 ucs 坐标表示。
vsmax 存储当前视口虚屏的右上角。该值用 uc ...
这是虚线框的视口坐标, 我要的是视图高度, 视图是作图区域的空间, 有时会比视口大得多.


liuhe 发表于 2023-9-5 09:40:39

(setq AcadObject(vlax-get-acad-object)
  AcadDocument(vla-get-ActiveDocument AcadObject)
  mSpace(vla-get-ModelSpace AcadDocument)
)
  ;;; 返回激活文件当前的视口
  (setq currViewport(vla-get-ActiveViewport AcadDocument))
(vla-get-HeightcurrViewport)
(vla-get-Width currViewport)

mokson 发表于 2023-9-5 09:43:21

(tblsearch "view" "standard")
我想获取默认视图的高度和宽度, 但是内置的默认视图的名称是什么, 我写 "当前" 和 "standard" 都不对.
如果知道默认视图的名称,就好办了.

kozmosovia 发表于 2023-9-5 10:06:28

视图理论上无限大小,只有视口才会有边界。

mokson 发表于 2023-9-5 10:09:18

kozmosovia 发表于 2023-9-5 10:06
视图理论上无限大小,只有视口才会有边界。

但是对当前正在工作的区域是有限的呀.

e2002 发表于 2023-9-5 10:47:15

你是想搞清楚布局中的VP对象与其中显示区域的换算关系吧?
页: [1] 2 3
查看完整版本: viewsize 只获取了视图的高度, 那么它的宽度如何获取?