mmh1 发表于 2013-7-27 09:43:49

对选择集筛选和排序的问题

(defun tj (ss)
(setq n 0 ss1 nil)
(repeat (sslength ss)
    (setq en (ssname ss n))
    (setq endata (entget en))
    (setq p1 (cdr (assoc 10 endata)))
    (setq p2 (cdr (assoc 11 endata)))
    (if(> (abs (sin (angle p1 p2))) 0.1)
      (progn
      (setq ss (ssdel en ss))
      (setq n (- n 1))
    )
      (setq ss1 (cons en ss1))
      )
    (setq n (1+ n))
)
(vl-sort ss1
   (function (lambda (e1 e2)
         (< (car (cdr (assoc 10 (entget e1))))
      (car (cdr (assoc 10 (entget e2))))
         )
         )
   )
)
(setq ss2 (ssadd))
(reverse ss1)
(repeat (vl-list-length ss1)
    (setq en2 (car ss1))
    (setq ss1 (cdr ss1))
    (setq ss2 (ssadd en2 ss2))
    )
(setq ss ss2)
)大神们帮忙看下,此程序是筛选出角度小于5度左右的线,然后排序
结果却不对,几个集合,和表为空

Andyhon 发表于 2013-7-27 09:53:11

建设楼主上传相应的 Dwg 以利调试
页: [1]
查看完整版本: 对选择集筛选和排序的问题