atoz 发表于 2013-6-22 11:34:44

无法精确获得图框长宽,是哪里不严谨了呢?

(defun c:za ()
(setvar "osmode" 0)
(command "zoom" "e")
(setq size_x (- (nth 0 (getvar "extmax"))   (nth 0 (getvar "extmin"))))
(setq size_y (- (nth 1 (getvar "extmax"))   (nth 1 (getvar "extmin"))))
(setq p1 (getvar "viewctr"))
(command "text" p1 5 "0" size_x)
(command "text" (polar p1 (* pi 1.5) 70) 5 "0" size_y)
(setvar "osmode" 1)
(princ)
)


fl202 发表于 2013-7-5 16:25:16

(command "line" (getvar "extmax") (getvar "extmin") (getvar "viewctr") "")
是不是图框外还有其它对象?

自贡黄明儒 发表于 2013-7-6 19:25:18

(getvar "extmax")好像你删除对象后,不能马上侦查出来

ZZXXQQ 发表于 2013-7-6 21:35:50

在ZOOM E前后REGEN一下试试

atoz 发表于 2013-7-14 15:12:32

fl202 发表于 2013-7-5 16:25 static/image/common/back.gif
(command "line" (getvar "extmax") (getvar "extmin") (getvar "viewctr") "")
是不是图框外还有其它对象 ...

肯定没有啊,我是一个零件就一张图对应一个DWG文件,我想捕捉的是图框顶点

ZZXXQQ 发表于 2013-7-15 07:55:23

(defun c:za ()
(setvar "osmode" 0)
(command "zoom" "e" "REGEN")
(if (and (setq p1 (osnap(getvar "EXTMAX") "END"))
(setq p2 (osnap(getvar "EXTMIN") "END"))) (progn
(setq size_x (- (car p1)   (car p2)))
(setq size_y (- (cadrp1) (cadr p2)))
(setq p1 (getvar "viewctr"))
(command "text" p1 5 "0" size_x)
(command "text" (polar p1 (* pi 1.5) 70) 5 "0" size_y)
)
(princ "\n无法找到图框角点!")
)
(setvar "osmode" 1)
(princ)
)

vectra 发表于 2013-7-15 08:32:09

屏幕边角位置未必靠近图框边角吧,尤其是显示区长宽比和图框相差很大的情况下。用捕捉的方法不严谨。

自贡黄明儒 发表于 2013-7-15 16:35:08

觉得图纸刚打开时,马上执行你的程序是正确的
页: [1]
查看完整版本: 无法精确获得图框长宽,是哪里不严谨了呢?