无法精确获得图框长宽,是哪里不严谨了呢?
(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)
)
(command "line" (getvar "extmax") (getvar "extmin") (getvar "viewctr") "")
是不是图框外还有其它对象? (getvar "extmax")好像你删除对象后,不能马上侦查出来 在ZOOM E前后REGEN一下试试 fl202 发表于 2013-7-5 16:25 static/image/common/back.gif
(command "line" (getvar "extmax") (getvar "extmin") (getvar "viewctr") "")
是不是图框外还有其它对象 ...
肯定没有啊,我是一个零件就一张图对应一个DWG文件,我想捕捉的是图框顶点 (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)
)
屏幕边角位置未必靠近图框边角吧,尤其是显示区长宽比和图框相差很大的情况下。用捕捉的方法不严谨。 觉得图纸刚打开时,马上执行你的程序是正确的
页:
[1]