明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1507|回复: 4

[提问] 求助:同心圆删除大圆只保留最小的一个

[复制链接]
发表于 2014-2-22 09:12:55 | 显示全部楼层 |阅读模式
如题                     

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2014-2-22 10:28:13 | 显示全部楼层
一个想法:

取得圆选集
(ssget '((0 . "CIRCLE")))

依次取出圆
半径至圆周 以 'F 滤取圆选集
若大于1 删除自身
发表于 2014-2-22 13:42:02 | 显示全部楼层
  1. ;; 同心圆留小
  2. ;; 需要e派工具箱(XCAD)的支持:[url]http://yunpan.cn/QXQKsW9gAPmpF[/url](defun c:tt ()
  3.   (xyp-CMDLA0)
  4.   (setq i -1
  5.         lst-del '()
  6.         lst-save '()
  7.   )
  8.   (if (setq ss (ssget '((0 . "CIRCLE"))))
  9.     (while (setq s1 (ssname ss (setq i (1+ i))))
  10.       (if (and (not (member s1 lst-del)) (not (member s1 lst-save)))
  11.         (if (setq ss1 (ssget "X" (list '(0 . "CIRCLE") (cons 10 (xyp-DXF 10 s1)))))
  12.           (setq lst1 (xyp-ss2list ss1)
  13.                 lst1 (mapcar '(lambda (x) (list (xyp-DXF 40 x) x)) lst1)
  14.                 lst1 (vl-sort lst1 '(lambda (x y) (< (car x) (car y))))
  15.                 lst1 (mapcar 'cadr lst1)
  16.                 lst-save (cons (car lst1) lst-save)
  17.                 lst-del (append (cdr lst1) lst-del)
  18.           )
  19.         )
  20.       )
  21.     )
  22.   )
  23.   (if lst-del
  24.     (progn
  25.       (setq ss (xyp-list2ss lst-del))
  26.       (sssetfirst ss ss)
  27.     )
  28.   )
  29.   (xyp-CMDLA1)
  30. )

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x

评分

参与人数 1明经币 +1 收起 理由
edata + 1 很给力!

查看全部评分

 楼主| 发表于 2014-2-22 13:47:24 | 显示全部楼层
以下程序如何才能删除同心圆大的那个圆?
  1. (setq ss(ssget '((0 . "circle"))))
  2. (if ss(progn
  3.   (setq m(sslength ss)n 0)
  4.   (while(< n m)
  5.     (setq e(ssname ss n)n(1+ n)l n
  6.    p(assoc 10(entget e))
  7.    P(vl-princ-to-string(list(nth 1 p)(nth 2 p)))
  8.    a nil)
  9.     (while(< l m)
  10.       (setq f(ssname ss l)l(1+ l)
  11.      p1(assoc 10(entget f))
  12.      P1(vl-princ-to-string(list(nth 1 p1)(nth 2 p1))))
  13.       (if(= p p1)
  14.         (progn
  15.    (ssdel f ss)(entdel f)
  16.    (setq l(1- l)m(1- m)a t))))
  17.     (if a(progn
  18.     (ssdel e ss)
  19.     (entdel e)
  20.     (setq n(1- n)m(1- m))))
  21.     )
  22.   )
  23.   )
 楼主| 发表于 2014-2-24 10:07:01 | 显示全部楼层
xyp1964 发表于 2014-2-22 13:42

错误: no function definition: XYP-CMDLA0
错误: no function definition: XYP-DXF
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-16 22:33 , Processed in 0.181683 second(s), 32 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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