获取角点坐标
;LISP矩形坐标提取*****************************************************************************************************************(defun c:zzb ()
(setvar "cmdecho" 0)
(setq lujing (getvar "dwgprefix")) ;获取路径
(setq wenjianming (getvar "dwgname")) ;获取当前文名
(setq Fpath(strcat lujing wenjianming))
(setq changdu (- (strlen Fpath) 4))
(setq fname (substr Fpath 1 changdu))
(setq pt (getpoint "\n选择区域内任意一点:")) ;输入区域内任意一点坐标
(setq ss (ssget));选择多线段
(setq i 0)
(setvar "pdmode" 33)
(setq os (getvar "osmode"))
(setvar "osmode" 0)
;(setq StartpointN (getstring "\n请输入案件编号:"))
(setq StartpointN "")
(if (= StartpointN "") (setq StartpointN (setq fname2 (substr wenjianming 1 (setq changdu2 (- (strlen wenjianming) 4))))))
(setq tx 10000000000000000);定义临时变量
(setq ty 10000000000000000)
(setq tmaxx -10000000000000000);定义临时变量
(setq tmaxy -10000000000000000)
(setq waiweiw 0)
(setq waiweih 0)
(repeat (sslength ss)
(setq ssn (ssname ss i))
(setq endata (entget ssn))
(setq n 0)
(setq xh 1)(terpri)
(repeat (length endata)
(setq pp (nth n endata))
(setq key (car pp))
(if (= key 10)
(progn
(setq x1 (cadr pp))
(setq y1 (caddr pp))
(setq x (rtos x1 2 4))
(setq y (rtos y1 2 4))
(setq PP (list x1 y1))
(setq ppp (list (+ x1 0.8) (- y1 0.5)))
(setq StartPointN1 (strcat StartpointN "-" (itoa xh)))
(command "text"
ppp
1
"0"
(list x1 y1)
)
(if (> tx x1 )
(progn
(setq tx x1)
)
)
(if (> ty y1 )
(progn
(setq ty y1)
)
)
(if (< tmaxx x1 )
(progn
(setq tmaxx x1)
)
)
(if (< tmaxy y1 )
(progn
(setq tmaxy y1)
)
)
(setq xh (1+ xh))
)
)
(setq n (1+ n))
)
(setq i (1+ i))
)
(setvar "osmode" os)
(setq waiweiw (- tmaxx tx))
(setq waiweih (- tmaxy ty))
(princ (list tx ty))
(princ (list waiweiw waiweih ))
(prin1)
);LISP矩形坐标提取*****************************************************************************************************************
谢谢楼主代码分享!
页:
[1]