SunSpring 发表于 2007-1-2 12:43:00

(DEFUN DELETESAMEHOLES (SS_CIRCLE)
(SETQ ERASE_SUM 0
I   0
N   (SSLENGTH SS_CIRCLE)
ZN   N
)
(WHILE (/= N 0)
    (PROGN
      (SETQ ED (ENTGET (SSNAME SS_CIRCLE I))
   RAD (CDR (ASSOC '40 ED))
   X (CADR (ASSOC 10 ED))
   Y (CADDR (ASSOC 10 ED))
   Z (LAST (ASSOC 10 ED))
      )
      (SETQ J (+ I 1))
      (REPEAT (- (- ZN I) 1)
(PROGN
   (SETQ ENT(SSNAME SS_CIRCLE J)
ED(ENTGET ENT)
X_SAME(CADR (ASSOC 10 ED))
Y_SAME(CADDR (ASSOC 10 ED))
Z_SAME(LAST (ASSOC 10 ED))
RAD_SAME (CDR (ASSOC '40 ED))
   )
   (IF (AND (EQUAL X_SAME X 0.00001)
   (EQUAL Y_SAME Y 0.00001)
   (EQUAL Z_SAME Z 0.00001)
   (EQUAL RAD_SAME RAD 0.00001)
       )
   (PROGN
       (SSDEL ENT SS_CIRCLE)
       (COMMAND "ERASE" ENT "")
       (SETQ N       (- N 1)
      ERASE_SUM (1+ ERASE_SUM)
       )
   )
   (SETQ J (+ J 1))
   )
)
      )
      (SETQ ZN (SSLENGTH SS_CIRCLE))
      (IF (< I (- (SSLENGTH SS_CIRCLE) 1))
(SETQ I (1+ I))
      )
      (SETQ N (- N 1))
    )
)
(IF (/= ERASE_SUM 0)
    (PROGN
      (REDRAW)
      (ALERT (STRCAT "\n 有 "
       (RTOS ERASE_SUM 2 0)
       " 个重复的孔将被删除!!! "
      )
      )
    )
)
SS_CIRCLE
)
这是以有写的一程序里面用到的,可以控制精度.
因为两圆重叠时,不一定刚好是同心或等半径.

无痕 发表于 2007-1-3 23:45:00

(defun c:tt (/ ss i e ent cpt r pts)
(setq ss(ssget '((0 . "CIRCLE")))
fz (getdist "\n 圆心&半径误差(误差值内按1个计算):")
      i -1)
(while(setq e(ssname ss(setq i(1+ i))))
   (setq ent (entget e)
cpt (cdr(assoc 10 ent))
r   (cdr(assoc 40 ent)))
   (if (not(member 'T (mapcar '(lambda(x)(and(equal cpt (car x) fz)(equal r (cadr x) fz)))pts)))
   (setq pts (cons (list cpt r) pts))
   )
   ) (length pts)
)

WELLDICK 发表于 2007-10-17 17:41:00

<p>楼主,相关命令是什么啊?我不是很清楚啊,谢谢!</p><p><a href="mailto:liguofeng3909@126.com">liguofeng3909@126.com</a></p>

yhkk0317 发表于 2011-6-9 11:19:36

回复 无痕 的帖子

简洁.实用.明了.很好

ljttjl 发表于 2011-6-10 20:28:07

本帖最后由 ljttjl 于 2011-6-10 20:31 编辑


或http://ljttjl.ys168.com 2009-2试用程序及演示20091111删除完全重叠图元对象 目录下载此程序
以下为此程序演示:

183017064 发表于 2024-12-2 09:11:27

phoenixdjq 发表于 2006-12-29 20:47
给你一个网上下载的删除重线的程序,谁做的我忘了你可以先把多余的圆删除,然后再计算,就可以了&nbsp;

好用,谢谢大佬分享,学习了。居然是18年前的东西,太强了
页: 1 [2]
查看完整版本: [求助]恳请帮助:统计圆数量时如何去掉重复圆