祥子
发表于 2011-6-4 22:35:26
取出所有圆的圆心和直径,保存一个列表里,再循环判断同心及判断最大直径为一组列表,
如下表
((0 0 0)10.0) ((10 10 0)12.0) ((18 12 0)5.0)
chpmould
发表于 2011-6-5 06:39:26
祥子 发表于 2011-6-4 22:35 static/image/common/back.gif
取出所有圆的圆心和直径,保存一个列表里,再循环判断同心及判断最大直径为一组列表,
如下表
能否示范一下...
198526
发表于 2011-6-7 19:25:10
这是我一个自定义命令里用到的获得同心圆,是不是你想要的。
chpmould
发表于 2011-6-7 19:31:58
198526 发表于 2011-6-7 19:25 static/image/common/back.gif
这是我一个自定义命令里用到的获得同心圆,是不是你想要的。
没有看明白,能否提供同心圆处理部分看看...
liu22737
发表于 2011-6-8 10:00:06
回复 chpmould 的帖子
这是我用的同心圆过滤,
也是逐个判断,我觉得速度还可以
ta:圆列表
(setq i 0)
(repeat(length ta)
(setq c(entget(nth i ta))i(1+ i)
r1(cdr(assoc 40 c))
pt(cdr(assoc 10 c))
pt(list(atof(rtos(car pt)2 2))(atof(rtos(cadr pt)2 2)))
lis(cons pt r1));setq
(if(setq a1(assoc(car lis)t2))
(if(<(cdr a1)r1)(setq t2(subst lis a1 t2)));if
(setq t2(cons lis t2))
);if
);repeat
chpmould
发表于 2011-6-8 19:52:37
liu22737 发表于 2011-6-8 10:00 static/image/common/back.gif
回复 chpmould 的帖子
这是我用的同心圆过滤,
谢谢!
不知使用排序的方法是否可以,希望高手指点...
zhb236623
发表于 2011-6-8 23:06:51
回复 chpmould 的帖子
感觉这个程序里面的部分可以借鉴下。http://bbs.mjtd.com/forum.php?mod=viewthread&tid=87367&page=1#pid467685
zhb236623
发表于 2011-6-8 23:10:08
回复 198526 的帖子
楼主只发图片不发lisp源程序好让大伙学习下嘛
690994
发表于 2011-6-9 15:08:58
chpmould 发表于 2011-6-4 14:13 static/image/common/back.gif
圆心和直径成表再操作,能否稍详细一点...
象你只要求最大直径,这个比较简单,我以前要以圆之大小,线型,颜色,图层,附加数据等再判断同种孔有几个进行加工标注。
1,先用实体按圆心排序,这程式坛中有,不过这不做也没关系,可能会慢一点
2. REPEAT一次
A 取圆心和直径(注意要象15楼一样转换一下,不然很多看似一样的实际上在电脑里是不一样的,尤其是别的软件转过来的圆。
B用ASSOC搜索圆心,NIL 将圆心直径成表加入,T再判断直径,大于替换,小于跳过
3.将表再换成你想要的格式。
highflybir
发表于 2011-6-9 17:18:13
感觉到楼主是某个人的马甲。