;请参考 (defun get_SDLine(/ ent ed p1 p2 ss sn i ang sdss) (if(setq ent(car(entsel "\n选择一条直线:"))) (progn (setq ed(entget ent) p1(cdr(assoc 10 ed)) p2(cdr(assoc 11 ed))) (setq ang(angle p1 p2)) (setq ss(ssget "x" '((0 . "line")))) ) ) (setq sdss(ssadd)) (ssadd ent sdss) (setq sn(if ss (sslength ss) 0)) (setq i 0) (while(< i sn) (setq ent(ssname ss i)) (setq ed(entget ent) p1(cdr(assoc 10 ed)) p2(cdr(assoc 11 ed))) (if(equal (angle p1 p2) ang 0.00001) (ssadd ent sdss) ) (setq i(1+ i)) ) sdss ) ;
|