zhelindaxues 发表于 2009-2-14 11:06:00

再仔细看了下 发现我理解错误 我还以为楼主需要2种情况。有点汗。。。

Andyhon 发表于 2009-2-14 21:55:00

本帖最后由 作者 于 2009-2-14 21:55:55 编辑


(defun tempSelNext (pt ent)
   (setq ss2 (ssget "C" pt pt filter))
   (ssdel ent ss2)
   (setq ent6 (ssname ss2 0)
         dxf6 (entget ent6)
       qidian (cdr (assoc 10 dxf6))
   duandian (cdr (assoc 11 dxf6))
   )
   (if (equal pt qidian 1e-12)
   (setq PtSel duandian)
   (setq PtSel qidian)
   )
   (mapcar '(lambda (x y) (/ (+ x y) 2.0)) qidian duandian)
)
(defun tempSel (/ ss)
   (cond
    ((Not (setq ss (ssget filter))))
    ((= (sslength ss) 4))
    (T
      (alert "只能选4条线!")
      (tempSel)
   ))
   ss
)
;;;
;;; for Test only
;;; 您得补强错误处理
(defun c:temp ()
   (setq filter '((0 . "LINE")))
   (cond
    ((not (setq ss (tempSel))))
    (T
   (setq ent1 (ssname ss 0)
         dxf1 (entget ent1)
         qidian (cdr (assoc 10 dxf1))
       duandian (cdr (assoc 11 dxf1))
            mp1 (mapcar '(lambda (x y) (/ (+ x y) 2.0)) qidian duandian)
            mp2 (tempSelNext duandian ent1)
            mp3 (tempSelNext PtSel ent6)
            mp4 (tempSelNext PtSel ent6)
   )
   (command "line" mp1 mp3 "")
   (command "line" mp2 mp4 "")
   ))
)
页: 1 [2]
查看完整版本: 请教高手求中点问题