jly0406 发表于 2014-1-7 13:29:54

获取角点坐标

;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矩形坐标提取*****************************************************************************************************************

清风明月名字 发表于 2014-1-8 13:56:11

谢谢楼主代码分享!
页: [1]
查看完整版本: 获取角点坐标