nicorvp 发表于 2022-7-6 11:19:44

获取视频限制

你好
我需要获得图形的视频限制坐标(而不是图形范围)。我已经尝试获取“LIMMIN”和“LIMMAX”变量,但这不是我需要的结果。
我需要这些点,因为我需要知道wmf导出的极限。现在我只能用“status”命令手动读取它们
谢谢

lpseifert 发表于 2022-7-6 11:26:18

Vpmax/Vpmin可能?

nicorvp 发表于 2022-7-6 11:34:34

谢谢你的回复,但我还没有找到Vpmax/Vpmin变量。我正在使用ACad2008。

Lee Mac 发表于 2022-7-6 11:37:15

VSMin/VSMax?

nicorvp 发表于 2022-7-6 11:43:31

我已经试过了,但是VSMin/VSMax不是我想要的值。还有其他猜测吗?

nicorvp 发表于 2022-7-6 11:48:54

现在我已经了解了如何计算屏幕视图的左/右角的Y坐标(=VIEWCTRy+(-)VIEWSIZE/2)。但是,如何获得屏幕的高度/宽度比,以使用VSMin/VSMax计算X坐标?对不起,我对视图和视口不太在行。

lpseifert 发表于 2022-7-6 11:53:47

我试过这个,有时有效,但不总是有效。我发现,使用Vsmax/Vsmin并不总是给出屏幕大小的比率

(defun test ()
(setq vmax (getvar "vsmax")
   vmin (getvar "vsmin")
   vctr (getvar "viewctr")
   vhgt (getvar "viewsize");view height
   vrat (/ (abs(- (car vmin)(car vmax))) (abs (- (cadr vmin)(cadr vmax)))); view width/height ratio
   vwid (* vrat vhgt);view width
   vll (list (- (car vctr) (/ vwid 2)) (- (cadr vctr) (/ vhgt 2))); Lower left coordinates
   vur (list (+ (car vctr) (/ vwid 2))(+ (cadr vctr) (/ vhgt 2))); Upper right coordinates
   )
)

David Bethel 发表于 2022-7-6 12:00:08

 
我过去也有过同样的问题。
 
我使用了一种不同的方法:

(defun c:scrsize (/ tdef c x y ll ur)
(command "_.VIEW" "_Save" "TMP")
(setq tdef (tblsearch "VIEW" "TMP")
          c (cdr (assoc 10 tdef))
          x (cdr (assoc 41 tdef))
          y (cdr (assoc 40 tdef))
         ll (list (- (carc) (* x 0.5))
                  (- (cadr c) (* y 0.5)))
         ur (list (+ (carc) (* x 0.5))
                  (+ (cadr c) (* y 0.5))))
(list ll ur))

 
原油,但acad也可以是原油-大卫

lpseifert 发表于 2022-7-6 12:04:21

很好大卫。。。尽管你可能认为它很粗糙,但至少它给出了准确/一致的结果。我从未想过保存视图并使用tblsearch。

David Bethel 发表于 2022-7-6 12:10:40

有时粗鲁对我有用!强迫ACAD做这项工作也是我最喜欢做的事情。
 
计算x的另一种方法:

(* (getvar "VIEWSIZE) (/ (car (getvar "SCCRENSIZE"))
                        (cadr (getvar "SCREESIZE"))))

 
这个稍微好一点,因为它应该比实际尺寸小一点-大卫
页: [1] 2
查看完整版本: 获取视频限制