不好意思,理解错了,还以为是圆弧,多段线用这个,不用炸散
(DEFUN C:ddj1(/ pl p_42)
(setq s (ssget))
(setq n (sslength s))
(setq k 0 )
(while (< k n)
(setq name (ssname s k))
(setq a (entget name))
(SETQ kk 0 nn (LENGTH a))
(setq pl nil p_42 nil)
(WHILE (< kk nn)
(SETQ aa (LIST (NTH kk a)))
(SETQ P (CDR (AssOC 10 aa)))
(IF P (SETQ PL (CONS P PL)))
(setq a_42 (cdr(assoc 42 aa)))
(IF a_42 (SETQ p_42 (CONS a_42 p_42)))
(SETQ kk (1+ kk))
)
(setq pl (reverse pl))
(setq p_42 (reverse p_42))
(setq kk 0 nn (LENGTH p_42))
(WHILE (< kk nn)
(setq a_42 (nth kk p_42))
(if (/= a_42 0)
(progn
(setq p1 (nth (- kk 1) pl))
(setq p2 (nth kk pl))
(setq p3 (nth (+ kk 1) pl))
(setq p4 (nth (+ kk 2) pl))
(setq p5 (inters p1 p2 p3 P4 nil))
(command "PLINE" p2 p5 p3 "")
))
(setq kk (+ kk 1))
)
(setq k (+ k 1))
)
)