明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: qinleilei

[提问] 关于同心圆的判断与筛选。请各位高手帮帮忙

  [复制链接]
 楼主| 发表于 2014-8-11 14:30:53 | 显示全部楼层
feng582304 发表于 2014-8-11 00:35

(setq ss (ssget '((-4 . "<and") (0 . "CIRCLE") (-4 . "<or") (40 . 4.5) (40 . 7.0) (-4 . "or>") (-4 . "and>"))))
上面那句话是什么意思,有点不明白。可不可以帮忙解释一下。
如果我要把4.5  7.0  设置成变量a  b ,需要怎么更改
另外如果要把同心圆的位置设置允许0.1的偏差该如何修改
发表于 2014-8-11 14:58:53 | 显示全部楼层
qinleilei 发表于 2014-8-11 14:30
(setq ss (ssget '((-4 . ""))))
上面那句话是什么意思,有点不明白。可不可以帮忙解释一下。
如果我要 ...

(setq ss (ssget '((-4 . "<and") (0 . "CIRCLE") (-4 . "<or") (40 . 4.5) (40 . 7.0) (-4 . "or>") (-4 . "and>"))))
1.是一个带过滤列表的选择,意思就是选择半径是4.5和7.0的圆。
2.(setq ss (ssget (list (cons -4  "<and") (cons 0 "CIRCLE") (cons -4 "<or") (cons 40 a) (cons 40 b) (cons -4 "or>") (cons -4 "and>"))))
3.圆心位置的精度为1e-05,如果你要0.1的话,就把1e-05改为0.1

评分

参与人数 1明经币 +2 收起 理由
雪山飞狐_lzh + 2 赞一个!

查看全部评分

发表于 2014-8-11 16:19:19 来自手机 | 显示全部楼层
建议 让用户直接选择同心圆 而不是改代码
另外 and是多余的

点评

1.已应楼主要求,可以直接选择指定半径的同心圆,不需改代码,直接运行。 2.属个人习惯,但对于编程的优化及精简的追求,谢谢提醒。  发表于 2014-8-11 23:42
发表于 2014-8-11 18:11:03 | 显示全部楼层
本帖最后由 lite 于 2014-8-13 10:09 编辑

附件为我写的关于选取同心圆的程序,为方便使用,写成了函数。

本帖子中包含更多资源

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

x
回复 支持 1 反对 0

使用道具 举报

发表于 2014-8-13 12:48:07 | 显示全部楼层
本帖最后由 zctao1966 于 2014-8-13 12:50 编辑

①先选择所有的圆
②获取圆的圆心,组成表1
③删除重复的圆心,组成新的圆心表2
④遍历圆心表2,选择圆,
⑤如果对象是2个,并且是Φ9.0与Φ14.0的圆,创建选择集
发表于 2014-8-13 13:17:24 | 显示全部楼层


本帖子中包含更多资源

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

x
发表于 2014-8-14 12:30:29 | 显示全部楼层
lite 发表于 2014-8-11 18:11
附件为我写的关于选取同心圆的程序,为方便使用,写成了函数。

还是用XD的模块写的
我还以为是纯原码呢
发表于 2014-8-14 13:58:45 | 显示全部楼层
院长的是纯源码吗?
发表于 2014-8-20 16:17:07 | 显示全部楼层
  1. (defun c:txy(/ s s2 e1 e2 m n)
  2.   (if(setq s(ssget'((0 . "circle,arc")(40 . 4.5))))
  3.     (progn
  4.       (setq s2(ssadd)n 0)
  5.       (repeat(sslength s)
  6.         (setq e1(ssname s n)n(1+ n))
  7.         (if(setq e2(ssget"X"(list'(0 . "circle,arc")'(40 . 7)(assoc 10(entget e1)))))
  8.           (progn(setq s2(ssadd e1 s2)m 0)
  9.             (repeat(sslength e2)
  10.               (setq s2(ssadd(ssname e2 m)s2)
  11.                     m(1+ m))
  12.               ))
  13.           )))
  14.     )
  15.   (sssetfirst nil s2)
  16.   )
发表于 2014-9-3 09:56:01 | 显示全部楼层
如果是模具应用,还是做成块比较好,
1,选择所有圆,根据同心不同属性生成块,
属性包括圆数量/直径/线型/颜色等,比如虚线识别为反面沉头作为另一种块
2,用块编辑或选择易快速选择
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-12-27 19:57 , Processed in 0.179646 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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