明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 446|回复: 8

[提问] 求帮修改一下代码,显视删除数量

[复制链接]
发表于 2021-4-8 11:58 | 显示全部楼层 |阅读模式
1明经币
(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)
)

感谢

"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2021-4-8 11:58 | 显示全部楼层
  1. (defun c:tt1 (/ center center-lst dxf lst name radius ss temp n)
  2.   (if (setq ss (ssget '((0 . "CIRCLE"))))
  3.     (progn
  4.       (while (setq name (ssname ss 0))
  5.         (setq dxf (entget name))
  6.         (setq Center (cdr (assoc 10 dxf)))
  7.         (setq radius (cdr (assoc 40 dxf)))
  8.         (setq lst (append lst (list (list Center radius name))))
  9.         (ssdel name ss)
  10.       )
  11.       (foreach x lst
  12.         (if (not (member (car x) Center-lst))
  13.           (setq Center-lst (append Center-lst (list (car x))))
  14.         )
  15.       )
  16.       (setq n 0 )
  17.       (foreach x Center-lst
  18.         (setq temp nil)
  19.         (foreach xx lst
  20.           (if (equal (car xx) x)
  21.             (setq temp (append temp (list (list (cadr xx) (caddr xx)))))
  22.           )
  23.         )
  24.         (setq temp (cdr (vl-sort temp '(lambda (a b)
  25.                                          (< (car a) (car b))
  26.                                        ))))
  27.         (foreach x temp
  28.           (entdel (cadr x))(setq n (1+ n))
  29.         )
  30.       )
  31.       (princ "删了")
  32.       (princ n )
  33.     )
  34.   )
  35.   (princ)
  36. )


回复

使用道具 举报

发表于 2021-4-8 12:12 | 显示全部楼层
选择对象: 指定对角点: 找到 ****个
回复

使用道具 举报

 楼主| 发表于 2021-4-8 13:34 | 显示全部楼层
香远益清 发表于 2021-4-8 12:12
选择对象: 指定对角点: 找到 ****个

要的是要显视,删了多少个
回复

使用道具 举报

发表于 2021-4-8 15:18 | 显示全部楼层
回复

使用道具 举报

 楼主| 发表于 2021-4-8 18:10 | 显示全部楼层
回复

使用道具 举报

发表于 2021-4-8 19:11 | 显示全部楼层

你这个代码  是删除啥情况下的圆呀,没看明白,求指教
回复

使用道具 举报

 楼主| 发表于 2021-4-8 20:30 | 显示全部楼层
同心圆,只留最小的,做刀路时,处理牙孔用到。
回复

使用道具 举报

发表于 2021-4-20 14:21 | 显示全部楼层
能加上容差就好了,因为CAD数据图上误差0.000001毫米的圆心也不是同心圆,无法删除。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-5-10 11:09 , Processed in 0.143419 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表