求帮修改一下代码,显视删除数量
(defun c:tt (/ center center-lst dxf lst name radius ss temp)(if (setq ss (ssget '((0 . "CIRCLE"))))
(progn
(while (setq name (ssname ss 0))
(setq dxf (entget name))
(setq Center (cdr (assoc 10 dxf)))
(setq radius (cdr (assoc 40 dxf)))
(setq lst (append lst (list (list Center radius name))))
(ssdel name ss)
)
(foreach x lst
(if (not (member (car x) Center-lst))
(setq Center-lst (append Center-lst (list (car x))))
)
)
(foreach x Center-lst
(setq temp nil)
(foreach xx lst
(if (equal (car xx) x)
(setq temp (append temp (list (list (cadr xx) (caddr xx)))))
)
)
(setq temp (cdr (vl-sort temp '(lambda (a b)
(< (car a) (car b))
))))
(foreach x temp
(entdel (cadr x))
)
)
)
)
(princ)
)
感谢
(defun c:tt1 (/ center center-lst dxf lst name radius ss temp n)
(if (setq ss (ssget '((0 . "CIRCLE"))))
(progn
(while (setq name (ssname ss 0))
(setq dxf (entget name))
(setq Center (cdr (assoc 10 dxf)))
(setq radius (cdr (assoc 40 dxf)))
(setq lst (append lst (list (list Center radius name))))
(ssdel name ss)
)
(foreach x lst
(if (not (member (car x) Center-lst))
(setq Center-lst (append Center-lst (list (car x))))
)
)
(setq n 0 )
(foreach x Center-lst
(setq temp nil)
(foreach xx lst
(if (equal (car xx) x)
(setq temp (append temp (list (list (cadr xx) (caddr xx)))))
)
)
(setq temp (cdr (vl-sort temp '(lambda (a b)
(< (car a) (car b))
))))
(foreach x temp
(entdel (cadr x))(setq n (1+ n))
)
)
(princ "删了")
(princ n )
)
)
(princ)
)
选择对象: 指定对角点: 找到 ****个 香远益清 发表于 2021-4-8 12:12
选择对象: 指定对角点: 找到 ****个
要的是要显视,删了多少个 Sonnenblumen 发表于 2021-4-8 15:18
试一下看看 Sonnenblumen 发表于 2021-4-8 11:58
可以了,谢谢 wgij007 发表于 2021-4-8 18:10
可以了,谢谢
你这个代码是删除啥情况下的圆呀,没看明白,求指教 同心圆,只留最小的,做刀路时,处理牙孔用到。 能加上容差就好了,因为CAD数据图上误差0.000001毫米的圆心也不是同心圆,无法删除。
页:
[1]