jbaobao 发表于 2006-3-15 12:56:00

[求助]请教高手!!另类删重复图元LISP!!!

<P>&nbsp;&nbsp;&nbsp;&nbsp; 请教:在论坛上有很多删重复图元的LISP我试了都有如下问题:在一条线上如有重复一条和它不一样长的线时不能删除此重复线!!!请教有办法解决吗??(但是要求不能把不在同一个图层的图元删除!))))</P>
<P>&nbsp; 谢谢了!!!!!</P>

lee50310 发表于 2020-2-18 23:41:12

本帖最后由 lee50310 于 2020-2-18 23:59 编辑

來源位置:https://forum.bricsys.com/discussion/33192/overkill-in-lisp-routine
試試這段代碼, 可完全删除重叠图元

;;圈选范围,删除重叠图元
;;
(defun c:Test (/ ss item)
      (if (setq ss (ssget))
          (progn
               (command "-overkill" ss "" "Ignore" "lweight" "Ignore" "Layer" "")
               (foreach item (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss)))
                         (if (not (entget item))
                           (setq ss (ssdel item ss))
                         )
                )
         )
       )
                (princ)
)

KO你 发表于 2019-12-27 05:03:31

尘缘一生 发表于 2019-12-27 00:29
delCircleArc

Li_item


这个删除重叠图元scty基本已经有全部重叠对象删除功能
http://bbs.mjtd.com/plugin.php?id=imc_attachplug:attachad&aid=MTA0NjA1fGNjZGQ3MjM1fDE1NzczOTQxMzF8NzMyNjY2NnwxNzk1Mzg%3D

尘缘一生 发表于 2019-12-27 00:29:37

自贡黄明儒 发表于 2013-5-19 08:42
这个是我的overkill之路上自己写的东西

delCircleArc

Li_item

ArcJoin

能补上这三个函数吗?

citykunan 发表于 2006-3-15 15:00:00

用express tools 中的overkill

xbsteel 发表于 2006-3-15 15:41:00

<P>试试这个</P>
<P>;;;图元合并<BR>(defun c:tyhb (/ ARC_LIST ENT I LINE_LIST SS)<BR>&nbsp; (while (and<BR>&nbsp;&nbsp;&nbsp; (setq ss (ssget (list (cons -4 "&lt;or")<BR>&nbsp;&nbsp;&nbsp;&nbsp; (cons 0 "arc")<BR>&nbsp;&nbsp;&nbsp;&nbsp; (cons 0 "CIRCLE")<BR>&nbsp;&nbsp;&nbsp;&nbsp; (cons 0 "line")<BR>&nbsp;&nbsp;&nbsp;&nbsp; (cons -4 "or&gt;")<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<BR>&nbsp;&nbsp;&nbsp; )<BR>&nbsp;&nbsp;&nbsp; (&gt; (sslength ss) 0)<BR>&nbsp; )<BR>&nbsp;&nbsp;&nbsp; (hbzhx ss)<BR>&nbsp;&nbsp;&nbsp; )<BR>&nbsp; (princ)<BR>&nbsp; )<BR>(defun cs_pross (to i / CS_TEXT MYI)<BR>&nbsp; (setq cs_text "&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;")<BR>&nbsp; (setq myi (fix (/ (* (strlen cs_text) i) to))<BR>&nbsp;cs_text (substr cs_text 1 myi)<BR>&nbsp;)<BR>&nbsp; (grtext -2 cs_text)<BR>&nbsp; )</P>
<P>(defun hbzhx ( ss / ARC_LIST ENT I LINE_LIST SS jd)<BR>;;;&nbsp;&nbsp;&nbsp;&nbsp; 转为数据表<BR>&nbsp;&nbsp;&nbsp;&nbsp; (grtext -2 "正在整理数据")<BR>&nbsp;&nbsp;&nbsp;&nbsp; (setq i 0 jd 1e-5<BR>&nbsp;&nbsp;&nbsp; line_list ' ()<BR>&nbsp;&nbsp;&nbsp; arc_list '()<BR>&nbsp;&nbsp;&nbsp; )<BR>&nbsp;&nbsp;&nbsp;&nbsp; (repeat (sslength ss)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq ent (ssname ss i)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; i (1+ i)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (if (= "LINE" (cdr (assoc 0 (entget ent))))<BR>&nbsp; (setq line_list (cons (line_data ent) line_list))<BR>&nbsp; (setq arc_list (cons (arc_data ent) arc_list))<BR>&nbsp; )<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<BR>&nbsp;&nbsp;&nbsp;&nbsp; (setq line_list (vl-sort line_list<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '(lambda (e1 e2)<BR>&nbsp;&nbsp;&nbsp; (if (equal (car e1) (car e2) jd)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (if (equal (cadr e1) (cadr e2) jd)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (if (equal (car (caddr e1)) (car (caddr e2)) jd)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (&lt; (cadr (caddr e1)) (cadr (caddr e2)))<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (&lt; (car (caddr e1)) (car (caddr e2)))<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (&lt; (cadr e1) (cadr e2))<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (&lt; (car e1) (car e2))<BR>&nbsp;&nbsp;&nbsp; )<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<BR>&nbsp;&nbsp;&nbsp; )<BR>&nbsp;&nbsp;&nbsp;&nbsp; (setq arc_list (vl-sort arc_list<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '(lambda (e1 e2)<BR>&nbsp;&nbsp;&nbsp; (if (equal (car e1) (car e2) jd)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (if (equal (cadr e1) (cadr e2) jd)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (if (equal (caddr e1) (caddr e2) jd)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (&lt; (cadddr e1) (cadddr e2))<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (&lt; (caddr e1) (caddr e2))<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (&lt; (cadr e1) (cadr e2))<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (&lt; (car e1) (car e2))<BR>&nbsp;&nbsp;&nbsp; )<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<BR>&nbsp;&nbsp;&nbsp; )<BR>&nbsp;&nbsp;&nbsp;&nbsp; (if line_list (hb_line line_list jd))<BR>&nbsp;&nbsp;&nbsp;&nbsp; (if arc_list (hb_arc arc_list jd))<BR>&nbsp;&nbsp;&nbsp;&nbsp; (grtext)<BR>&nbsp; (princ)<BR>&nbsp; )<BR>(defun hb_line (line_list jd / B BIAOJI DATA ENT K LINE_A LINE_B P1 P2 P3 P4 P5 JD XUHAO ZONGSHU i lay)<BR>&nbsp; (setq zongshu (length line_list)<BR>&nbsp;i 0<BR>&nbsp;xuhao 0)<BR>&nbsp; (princ (strcat "\n共处理" (rtos zongshu) "个实体"))<BR>&nbsp; (grtext -1 "合并直线")<BR>&nbsp; (while (&gt; (length line_list) 0)&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq xuhao (1+ xuhao))<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (cs_pross zongshu xuhao)<BR>&nbsp;&nbsp;&nbsp; (setq line_a (car line_list)<BR>&nbsp;&nbsp; line_list (cdr line_list)<BR>&nbsp;&nbsp; biaoji t<BR>&nbsp;&nbsp; k (car line_a)<BR>&nbsp;&nbsp; b (cadr line_a)<BR>&nbsp;&nbsp; p1 (caddr line_a)<BR>&nbsp;&nbsp; p2 (cadddr line_a)<BR>&nbsp;&nbsp; ent (last line_a)<BR>&nbsp;&nbsp; lay (cdr (assoc 8 (entget ent)))<BR>&nbsp;&nbsp; )<BR>&nbsp;&nbsp;&nbsp; (while (and biaoji<BR>&nbsp;&nbsp;(&gt; (length line_list) 0)<BR>&nbsp;&nbsp;)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq line_b (car line_list)<BR>&nbsp;&nbsp;&nbsp;&nbsp; )<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (cond<BR>&nbsp;((and (equal k (car line_b) jd)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (equal b (cadr line_b) jd)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (= lay (cdr (assoc 8 (entget (last line_b)))))<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<BR>&nbsp; (setq p3 (caddr line_b)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; p4 (cadddr line_b)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; p5 (vl-sort (list p1 p2 p3 p4)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '(lambda (e1 e2)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (if (equal (car e1) (car e2) jd)<BR>&nbsp;&nbsp;&nbsp;&nbsp;(&lt; (cadr e1) (cadr e2))<BR>&nbsp;&nbsp;&nbsp;&nbsp;(&lt; (car e1) (car e2))<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<BR>&nbsp;&nbsp;&nbsp; )<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; p4 (cadr p5)<BR>&nbsp; )<BR>&nbsp; (if (or (equal p1 p4 jd)<BR>&nbsp;&nbsp; (equal p3 p4 jd)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<BR>&nbsp;&nbsp;&nbsp; (progn<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq p1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (car p5)<BR>&nbsp;&nbsp;&nbsp;&nbsp; p2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (last p5)<BR>&nbsp;&nbsp;&nbsp;&nbsp; line_list (cdr line_list)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (entdel (last line_b))<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq xuhao (1+ xuhao))<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (cs_pross zongshu xuhao)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq i (1+ i))<BR>&nbsp;&nbsp;&nbsp; )<BR>&nbsp;&nbsp;&nbsp; (setq biaoji nil)<BR>&nbsp; )<BR>&nbsp; )<BR>&nbsp;(t (setq biaoji nil))<BR>&nbsp;)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<BR>&nbsp;&nbsp;&nbsp; (setq data (entget ent)<BR>&nbsp;&nbsp; data (subst (cons 10 p1) (assoc 10 data) data)<BR>&nbsp;&nbsp; data (subst (cons 11 p2) (assoc 11 data) data)<BR>&nbsp;&nbsp; )<BR>&nbsp;&nbsp;&nbsp; (entmod data)<BR>&nbsp;&nbsp;&nbsp; )<BR>&nbsp; (princ (strcat ",删除了" (rtos i) "个实体"))<BR>&nbsp; (princ)<BR>&nbsp; )<BR>(defun hb_arc (arc_list jd / i ARC_A ARC_B BIAOJI BJ DATA EANGL EANGL1 ENT JD LINE_LIST P5 PC SANGL SANGL1 XUHAO ZONGSHU lay)<BR>&nbsp; (setq zongshu (length arc_list)<BR>&nbsp;xuhao 0<BR>&nbsp;i 0)<BR>&nbsp; (princ (strcat "\n共处理" (rtos zongshu) "个实体"))<BR>&nbsp; (grtext -1 "合并圆弧")<BR>&nbsp; (while (&gt; (length arc_list) 0)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq xuhao (1+ xuhao))<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (cs_pross zongshu xuhao)<BR>&nbsp;&nbsp;&nbsp; (setq arc_a (car arc_list)<BR>&nbsp;&nbsp; arc_list (cdr arc_list)<BR>&nbsp;&nbsp; biaoji t<BR>&nbsp;&nbsp; bj (car arc_a)<BR>&nbsp;&nbsp; pc (list (cadr arc_a) (caddr arc_a))<BR>&nbsp;&nbsp; sangl (cadddr arc_a)<BR>&nbsp;&nbsp; eangl (nth 4 arc_a)<BR>&nbsp;&nbsp; ent (last arc_a)<BR>&nbsp;&nbsp; lay (cdr (assoc 8 (entget ent)))<BR>&nbsp;&nbsp; )<BR>&nbsp;&nbsp;&nbsp; (while (and&nbsp;biaoji<BR>&nbsp;&nbsp;(&gt; (length arc_list) 0)<BR>&nbsp;&nbsp;&nbsp; )<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq arc_b (car arc_list)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (cond<BR>&nbsp;((and (equal bj (car arc_b) jd)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (equal pc (list (cadr arc_b) (caddr arc_b)) jd)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (= lay (cdr (assoc 8 (entget (last arc_b)))))<BR>&nbsp; )<BR>&nbsp; (setq sangl1 (cadddr arc_b)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; eangl1 (nth 4 arc_b)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; p5&nbsp;&nbsp;&nbsp;&nbsp; (vl-sort (list sangl eangl sangl1 eangl1)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '(lambda&nbsp;(e1 e2)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (&lt; e1 e2)<BR>&nbsp;&nbsp;&nbsp;&nbsp;)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sangl1 (nth (- (length p5) 2) p5)<BR>&nbsp; )<BR>&nbsp; (if (or (equal eangl sangl1 jd)<BR>&nbsp;&nbsp; (equal eangl1 sangl1 jd)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<BR>&nbsp;&nbsp;&nbsp; (progn<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq sangl&nbsp;&nbsp;&nbsp; (car p5)<BR>&nbsp;&nbsp;&nbsp;&nbsp; eangl&nbsp;&nbsp;&nbsp; (last p5)<BR>&nbsp;&nbsp;&nbsp;&nbsp; arc_list (cdr arc_list)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (entdel (last arc_b))<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq xuhao (1+ xuhao))<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (cs_pross zongshu xuhao)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq i (1+ i))<BR>&nbsp;&nbsp;&nbsp; )<BR>&nbsp;&nbsp;&nbsp; (setq biaoji nil)<BR>&nbsp; )<BR>&nbsp;)<BR>&nbsp;(t (setq biaoji nil))<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<BR>&nbsp;&nbsp;&nbsp; )<BR>&nbsp;&nbsp;&nbsp; (setq data (entget ent)<BR>&nbsp;&nbsp; data (subst (cons 50 sangl) (assoc 50 data) data)<BR>&nbsp;&nbsp; data (subst (cons 51 eangl) (assoc 51 data) data)<BR>&nbsp;&nbsp; )<BR>&nbsp;&nbsp;&nbsp; (entmod data)<BR>&nbsp;&nbsp;&nbsp; )<BR>&nbsp; (princ (strcat ",删除了" (rtos i) "个实体"))<BR>&nbsp; (princ)<BR>&nbsp; )<BR>(defun arc_data&nbsp;(ent / BJ DATA EANGL PC SANGL)<BR>&nbsp; (setq data (entget ent))<BR>&nbsp; (setq bj (cdr (assoc 40 data)))<BR>&nbsp; (setq pc (cdr (assoc 10 data)))<BR>&nbsp; (setq sangl (cdr (assoc 50 data)))<BR>&nbsp; (setq eangl (cdr (assoc 51 data)))<BR>&nbsp; (if (not sangl)<BR>&nbsp;&nbsp;&nbsp; (setq sangl&nbsp;0.0<BR>&nbsp;&nbsp; eangl&nbsp;(+ pi pi)<BR>&nbsp;&nbsp;&nbsp; )<BR>&nbsp; )<BR>&nbsp; (if (&lt; eangl sangl)<BR>&nbsp;&nbsp;&nbsp; (setq eangl (+ eangl (+ pi pi)))<BR>&nbsp; )<BR>&nbsp; (list bj (car pc) (cadr pc) sangl eangl ent)<BR>)</P>
<P>&nbsp; (defun line_data (ent / B K P1 P2 jd)<BR>&nbsp;&nbsp;&nbsp; (setq p1 (vlax-curve-getstartpoint ent)<BR>&nbsp;&nbsp; p2 (vlax-curve-getendpoint ent)<BR>&nbsp;&nbsp; jd 1e-5<BR>&nbsp;&nbsp;&nbsp; )<BR>&nbsp;&nbsp;&nbsp; (if&nbsp;(equal (car p1) (car p2) jd)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq k nil<BR>&nbsp;&nbsp;&nbsp;&nbsp; b (car p1)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq k (/ (- (cadr p2) (cadr p1))<BR>&nbsp;&nbsp; (- (car p2) (car p1))<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<BR>&nbsp;&nbsp;&nbsp;&nbsp; b (- (cadr p1) (* (car p1) k))<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<BR>&nbsp;&nbsp;&nbsp; )<BR>&nbsp;&nbsp;&nbsp; (setq p2 (vl-sort (list p1 p2)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '(lambda (e1 e2)<BR>&nbsp;&nbsp;&nbsp; (if (equal (car e1) (car e2) jd)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (&lt; (cadr e1) (cadr e2))<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (&lt; (car e1) (car e2))<BR>&nbsp;&nbsp;&nbsp; )<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<BR>&nbsp;&nbsp; p1 (car p2)<BR>&nbsp;&nbsp; p2 (cadr p2)<BR>&nbsp;&nbsp; )<BR>&nbsp;&nbsp;&nbsp; (list k<BR>&nbsp;&nbsp; b<BR>&nbsp;&nbsp; (list (car p1) (cadr p1))<BR>&nbsp;&nbsp; (list (car p2) (cadr p2))<BR>&nbsp;&nbsp; ent<BR>&nbsp;&nbsp;&nbsp; )<BR>&nbsp; )</P>

jdhszh 发表于 2006-3-15 17:49:00

三楼的好酷,我要试一下。顶!

jbaobao 发表于 2006-3-15 18:01:00

太好了,谢谢你了!!!

lifesun 发表于 2006-5-15 19:38:00

楼主辛苦啦,我先试试看好用不,谢谢你了

hanhang200 发表于 2006-5-16 15:25:00

<P>那么长,工也试一下,</P>
<P>真的不错唉</P>

SHOUXI 发表于 2013-5-19 08:15:08

非多义线的同一图层重复图元能删除,一直想找个能取代OVERKILL的类似外挂!

自贡黄明儒 发表于 2013-5-19 08:39:44

其实本论坛上早就有了(谁写的忘了),写得很经典,从中我看到的是智慧
我回复在晓东论坛上,晓东马上加分了,老大就是老大,慧眼识珠.

;;8 删除重叠多段线、线、弧、块、文字
(DEFUN HH:delBLOCKs (ss / E EN K LIST1 S9 XY)
    (repeat (setq k (sslength ss))
      (spin "重叠对象")
      (if (and (setq e (ssname ss (setq k (1- k))))
             (setq en (entget e))
          )
        (progn
          (setq xy (cdr en))
          (IF (SETQ S9 (ASSOC 5 XY))
          (SETQ XY (subst '(5 . "ASD") S9 XY))
          )
          (if (member xy list1)
          (entdel e)
          (setq list1 (cons xy list1))
          )
        )
      )
    )
)

自贡黄明儒 发表于 2013-5-19 08:42:27

这个是我的overkill之路上自己写的东西

;;5.2先删除与圆同心的圆和圆弧,然后同心同半径圆弧合并
;;(setq ss (ssget "X" '((0 . "ARC"))))
(defun del-Circles
       (ss ssCircle / CEN E E1 E2 EN EN1 EN2 I N N1 R SS SSARC)
    (delCircleArc ssCircle)                ;删除与圆同心的圆和圆弧
    (if        ss
      (repeat (setq n (sslength ss))
        (spin "合并圆弧")
        (if (and (setq e (ssname ss (setq n (1- n))))
               (setq en (entget e))
          )
          (progn
          (setq Cen (Li_item 10 en))
          (setq R (Li_item 40 en))
          (setq ssArc        (ssget "x"
                             (list (cons 0 "ARC")
                                     (cons 10 Cen)
                                     (cons 40 R)
                             )
                        )
          )
          (repeat (setq n1 (sslength ssArc))
              (if (and (setq e1 (ssname ssArc (setq n1 (1- n1))))
                     (setq en1 (entget e1))
                  )
                (progn
                  (setq i n1)
                  (while (and (> i 0) ssArc)
                  (if        (and (setq e2 (ssname ssArc (setq i (1- i))))
                             (setq en2 (entget e2))
                        )
                      (ArcJoin e1 e2 ssArc)
                  )
                  )
                )
              )
          )
          )
        )
      )
    )
    (princ)
)
页: [1] 2
查看完整版本: [求助]请教高手!!另类删重复图元LISP!!!