;;; ;;; ;;;> Author: Henry C. Francis ;;;> 425 N. Ashe St. ;;;> Southern Pines, NC 28387 ;;;> http://paracadd.com ;;;> All rights reserved. ;;; ;;;> COPYRIGHT: ;;;> EDITED: 10-29-2004 ;;; (DEFUN c:ddupent () (SETQ all_ss (SSGET)) (SETQ line_ss (SSGET "P" '((0 . "LINE")))) (COMMAND "select" all_ss "") (SETQ circle_ss (SSGET "P" '((0 . "CIRCLE")))) (COMMAND "select" all_ss "") (SETQ arc_ss (SSGET "P" '((0 . "ARC")))) (COMMAND "select" all_ss "") (SETQ text_ss (SSGET "P" '((0 . "TEXT")))) (SETQ line_sslen (IF line_ss (SSLENGTH line_ss) 0)) (SETQ circle_sslen (IF circle_ss (SSLENGTH circle_ss) 0)) (SETQ arc_sslen (IF arc_ss (SSLENGTH arc_ss) 0)) (SETQ text_sslen (IF text_ss (SSLENGTH text_ss) 0)) (SETQ line_cnt 0 line_lst nil ) ;_ end of SETQ (SETQ circle_cnt 0 circle_lst nil ) ;_ end of SETQ (SETQ arc_cnt 0 arc_lst nil ) ;_ end of SETQ (SETQ text_cnt 0 text_lst nil ) ;_ end of SETQ (WHILE (< line_cnt line_sslen) (SETQ line_lst (APPEND line_lst (LIST (ENTGET (SSNAME line_ss line_cnt))) ) ;_ end of APPEND ) ;_ end of SETQ (SETQ line_cnt (1+ line_cnt)) ) ;_ end of WHILE (SETQ STEP_CNT 1) (IF (> line_sslen 0) (PROGN (princ "\n") (PRINC LINE_SSLEN) (PRINC " Lines found, processing... \n") ) ) (setq ENTS_LST nil) (FOREACH n line_lst (PRINC "\010\010\010\010\010\010\010") (PRINC STEP_CNT) (PRINC) (SETQ STEP_CNT (1+ STEP_CNT)) (setq ENTS_LST (append (list (list (ASSOC 10 n) (ASSOC 11 n))) ENTS_LST)) (SETQ dup_test (SSGET "X" (LIST (ASSOC 10 n) (ASSOC 11 n)))) (IF (> (SSLENGTH dup_test) 1) (PROGN (SETQ DUPLEN (SSLENGTH DUP_TEST) DELCNT 1) (WHILE (< DELCNT DUPLEN) (ENTDEL (SSNAME dup_test DELCNT)) (SETQ DELCNT (1+ DELCNT)) ) ) ) ;_ end of IF ) ;_ end of FOREACH ;;;the following is faster but deletes too much (the member test is faulty) ;;; (setq ENTS_CNT 0) ;;; (WHILE (< ENTS_CNT (LENGTH ENTS_LST)) ;;; (setq ENT_DEF (ENTGET(SSNAME line_ss ENTS_CNT))) ;;; (SETQ STEP_ENT (list (ASSOC 10 ENT_DEF) (ASSOC 11 ENT_DEF))) ;;; (IF (AND (MEMBER STEP_ENT ENTS_LST)(MEMBER STEP_ENT (CDR(MEMBER STEP_ENT ENTS_LST)))) ;;; (ENTDEL (SSNAME line_ss ENTS_CNT)) ;;; ) ;;; (SETQ ENTS_CNT (1+ ENTS_CNT)) ;;; ) (WHILE (< circle_cnt circle_sslen) (SETQ circle_lst (APPEND circle_lst (LIST (ENTGET (SSNAME circle_ss circle_cnt))) ) ;_ end of APPEND ) ;_ end of SETQ (SETQ circle_cnt (1+ circle_cnt)) ) ;_ end of WHILE (SETQ STEP_CNT 1) (IF (> circle_sslen 0) (PROGN (princ "\n") (PRINC CIRCLE_SSLEN) (PRINC " Circles found, processing... \n") ) ) (FOREACH n circle_lst (PRINC "\010\010\010\010\010\010\010") (PRINC STEP_CNT) (PRINC) (SETQ STEP_CNT (1+ STEP_CNT)) (SETQ dup_test (SSGET "X" (LIST (ASSOC 10 n) (ASSOC 40 n)))) (IF (> (SSLENGTH dup_test) 1) (PROGN (SETQ DUPLEN (SSLENGTH DUP_TEST) DELCNT 1) (WHILE (< DELCNT DUPLEN) (ENTDEL (SSNAME dup_test DELCNT)) (SETQ DELCNT (1+ DELCNT)) ) ) ) ;_ end of IF ) ;_ end of FOREACH (WHILE (< arc_cnt arc_sslen) (SETQ arc_lst (APPEND arc_lst (LIST (ENTGET (SSNAME arc_ss arc_cnt))) ) ;_ end of APPEND ) ;_ end of SETQ (SETQ arc_cnt (1+ arc_cnt)) ) ;_ end of WHILE (SETQ STEP_CNT 1) (IF (> arc_sslen 0) (PROGN (princ "\n") (PRINC ARC_SSLEN) (PRINC " Arcs found, processing... \n") ) ) (FOREACH n arc_lst (PRINC "\010\010\010\010\010\010\010") (PRINC STEP_CNT) (PRINC) (SETQ STEP_CNT (1+ STEP_CNT)) (SETQ dup_test (SSGET "X" (LIST (ASSOC 10 n) (ASSOC 40 n) (ASSOC 50 n) (ASSOC 51 n)))) (IF (> (SSLENGTH dup_test) 1) (PROGN (SETQ DUPLEN (SSLENGTH DUP_TEST) DELCNT 1) (WHILE (< DELCNT DUPLEN) (ENTDEL (SSNAME dup_test DELCNT)) (SETQ DELCNT (1+ DELCNT)) ) ) ) ;_ end of IF ) ;_ end of FOREACH (WHILE (< text_cnt text_sslen) (SETQ text_lst (APPEND text_lst (LIST (ENTGET (SSNAME text_ss text_cnt))) ) ;_ end of APPEND ) ;_ end of SETQ (SETQ text_cnt (1+ text_cnt)) ) ;_ end of WHILE (SETQ STEP_CNT 1) (IF (> text_sslen 0) (PROGN (princ "\n") (PRINC text_SSLEN) (PRINC " text strings found, processing... \n") ) ) (FOREACH n text_lst (PRINC "\010\010\010\010\010\010\010") (PRINC STEP_CNT) (PRINC) (SETQ STEP_CNT (1+ STEP_CNT)) (SETQ dup_test (SSGET "X" (LIST (ASSOC 10 n) (ASSOC 1 n)))) (IF (> (SSLENGTH dup_test) 1) (PROGN (SETQ DUPLEN (SSLENGTH DUP_TEST) DELCNT 1) (WHILE (< DELCNT DUPLEN) (ENTDEL (SSNAME dup_test DELCNT)) (SETQ DELCNT (1+ DELCNT)) ) ) ) ;_ end of IF ) ;_ end of FOREACH (PRINC) ) ;_ end of DEFUN ;|«Visual LISP© Format Options» (72 2 40 2 T "end of " 60 9 2 1 0 nil T nil T) ;*** DO NOT add text below the comment! ***|;