 - ;多段线(LWPOLYLINE)折点打断
- (defun c:dbreak(/ ee e x vex vex2 ppp pv i)
- (setvar "OSMODE" 0)
- (setvar "CMDECHO" 0)
- (setq e (car (entsel "请选择多义线")))
- (setq vex (vl-remove-if-not '(lambda(x) (= (car x) 10)) (entget e)))
- (if (< (length vex) 3)
- (princ "\n请选择多于2个顶点的多义线\n")
- (progn
- (foreach pv vex
- (setq ppp (cons (cdr pv) ppp) )
- )
- (setq vex (reverse ppp))
- (setq vex (cdr vex))
- (setq vex (reverse (cdr (reverse vex))))
- (setq i 0)
- (repeat (length vex)
- (setq pv (nth i vex))
- (command "_break" e pv pv)
- (setq ee (entlast))
- (setq vex2 (vl-remove-if-not '(lambda(x) (= (car x) 10)) (entget ee)))
- (if (> (length vex2) 2) (setq e ee))
- (setq i (1+ i))
- )
- )
- )
- (princ)
- )
|