浪人 发表于 2004-1-12 12:57:00

新手请教!能否一次删除重叠圆?

计算用过滤选择的圆时,通常也把重叠的圆计算在内了!
结果就有误了(会多出!)能不能一次删除重叠的圆?
这个问题很困杳我,一个个数真的很要命的!:<

东哥 发表于 2004-1-12 13:09:00

删除后要留下一个?

浪人 发表于 2004-1-12 20:03:00

是的! 一个,。

yesong555 发表于 2004-1-12 20:11:00

把一个圆放到一关闭的图层里,再删其它圆

浪人 发表于 2004-1-13 08:43:00

问题是怎样一次框选含有重叠圆的圆的其中一个!因为不能一个一个选!
也就是请教各位老哥的地方,请多多指点!。。。

东哥 发表于 2004-1-13 08:56:00

框选是不可能只选重叠对象中的一个的。框选的特点就是能够让我们方便选择一组对象。用框选,那些重叠的对象要就是全没选上,要就是全部选项上。如果只选一个,为什么不用点选?

meflying 发表于 2004-1-13 11:07:00

将以下内容存为*.lsp,用命令APPLOAD加载,后用命令:er,可以删除选择范围内所有重复的圆(留下一个)。
fuzz后面的数字是半径精度


(defun c:er( / fuzz ss ss2 i ent ent2 lst pt_old r_old r)
(setq fuzz 0.0001)
(setq ss (ssget '((0 . "circle"))))
(setq i 0)
(while (< i (sslength ss))
    (setq ent (ssname ss i))
    (setq pt (assoc 10 (entget ent)))
    (setq r (cdr (assoc 40 (entget ent))))
    (setq ss2 (ssget "x" (list '(0 . "circle") '(-4 . "=") pt)))
    (ssdel ent ss2)
    (setq j 0)
    (repeat (sslength ss2)
      (setq ent2 (ssname ss2 j))
      (if (equal (cdr (assoc 40 (entget ent2))) r fuzz)
        (progn
          (entdel ent2)
          (ssdel ent2 ss)
        )
      )
      
      (setq j (1+ j))
    )
    (setq i (1+ i))
)
(princ)
)

浪人 发表于 2004-1-13 12:43:00

多谢飞哥!先试下程序!
还有东哥!因为有时大大小小的圆多时会有百个上,点选的话效率就。。。。。
所以有重叠的话就难找了!

浪人 发表于 2004-1-13 18:33:00

尝试时!有时会出现误删!我传个图上来,你试下!!

wolaikk 发表于 2004-1-14 00:47:00

可试试晓东工具里的消除重元
页: [1] 2
查看完整版本: 新手请教!能否一次删除重叠圆?