这个画的是多段线。
- (defun c:Test (/ _LW ss in en st nd up dn u d)
- ;; Tharwat 18.Oct.2013 ;;
- (defun _LW (lst)
- (entmakex
- (append (list '(0 . "LWPOLYLINE")
- '(100 . "AcDbEntity")
- '(100 . "AcDbPolyline")
- (cons 90 (length lst))
- '(70 . 0)
- )
- (mapcar (function (lambda (p) (cons 10 p))) lst)
- )
- )
- )
- (if (setq ss (ssget '((0 . "LINE"))))
- (progn
- (repeat (setq in (sslength ss))
- (setq en (entget (ssname ss (setq in (1- in))))
- st (cdr (assoc 10 en))
- nd (cdr (assoc 11 en))
- )
- (if (> (cadr st) (cadr nd))
- (setq up (cons st up)
- dn (cons nd dn)
- )
- (setq dn (cons st dn)
- up (cons nd up)
- )
- )
- )
- (setq u (vl-sort up '(lambda (a b) (< (car a) (car b))))
- d (vl-sort dn '(lambda (j k) (< (car j) (car k))))
- )
- (if (> (length u) 1)
- (_LW u)
- )
- (if (> (length d) 1)
- (_LW d)
- )
- )
- )
- (princ)
- )
|