(defun c:sel_zerolen () (initget 7) (setq l (getreal "\nSelect lines with length less than? =")) (setq ss (ssget '((0 . "LINE"))) i 0 br (sslength ss) ss1 (ssadd)) (repeat br (setq linija (entget (ssname ss i))) (if (< (distance (cdr (assoc 10 linija)) (cdr (assoc 11 linija))) l) (ssadd (cdr (assoc -1 linija)) ss1) ) (setq i (1+ i)) ) (sssetfirst ss1 ss1) ) (defun c:sel_vertline () (setq ss (ssget '((0 . "LINE"))) i 0 br (sslength ss) ss1 (ssadd)) (repeat br (setq linija (entget (ssname ss i))) (if (< (abs (- (car (cdr (assoc 10 linija))) (car (cdr (assoc 11 linija))))) 0.005) (ssadd (cdr (assoc -1 linija)) ss1) ) (setq i (1+ i)) ) ) (defun c:sel_horline () (setq ss (ssget '((0 . "LINE"))) i 0 br (sslength ss) ss1 (ssadd)) (repeat br (setq linija (entget (ssname ss i))) (if (< (abs (- (cadr (cdr (assoc 10 linija))) (cadr (cdr (assoc 11 linija))))) 0.005) (ssadd (cdr (assoc -1 linija)) ss1) ) (setq i (1+ i)) ) ) (defun c:del_dupline () (setq ss (ssget '((0 . "LINE"))) i 0 br (sslength ss)) (if (< (car (cdr (assoc 10 (entget (ssname ss i))))) (car (cdr (assoc 11 (entget (ssname ss i)))))) (setq lista (list (list (cdr (assoc 10 (entget (ssname ss i)))) (cdr (assoc 11 (entget (ssname ss i))))))) (setq lista (list (list (cdr (assoc 11 (entget (ssname ss i)))) (cdr (assoc 10 (entget (ssname ss i))))))) );end if (setq ct 0) (repeat (1- br) (setq linija (entget (ssname ss i)) p1 (cdr (assoc 10 (entget (ssname ss i)))) p2 (cdr (assoc 11 (entget (ssname ss i))))) (if (< (car p2) (car p1)) (setq m p1 p1 p2 p2 m));end if (setq test 0 lista1 lista) (while lista1 (setq e1 (car (car lista1)) e2 (cadr (car lista1))) (if (and (= (car e1) (car p1)) (= (cadr e1) (cadr p1)) (= (car e2) (car p2)) (= (cadr e2) (cadr p2))) (progn (entdel (cdr (assoc -1 linija))) (setq lista1 nil test 1 ct (1+ ct)) ) );end if (setq lista1 (cdr lista1)) );end while (if (= test 0) (setq lista (cons (list p1 p2) lista)));end if (setq i (1+ i)) );end repeat (princ ct) ) (princ "\nCommand SEL_ZEROLEN for selecting zero-length lines!") (princ "\nCommand SEL_VERTLINE for selecting vertical lines!") (princ "\nCommand SEL_HORLINE for selecting horizontal lines!") (princ "\nCommand DEL_DUPLINE for deleting duplicate lines!") (princ)