[已解决]同心圆、弧判断
本帖最后由 作者 于 2009-7-5 18:57:37 编辑 <br /><br /> <p>我在写一个画中心线的命令,现在有个问题,我用如下函数获取所有圆和圆弧的</p><p>(setq cobj (ssget '((-4 . "<OR") (0 . "CIRCLE") (0 . "ARC") (-4 . "OR>"))))</p><p>那么请问大家,如果存在同心圆或者圆弧,怎么忽略掉其中比较小的圆或者弧,直接加大的选择集呢?</p><p>因为螺丝过孔经常是两个同心圆...所以,中心线画重了</p> 顾名思义,比较圆心。 本帖最后由 作者 于 2009-2-21 23:13:21 编辑(defun dxg (code ele)
(cdr (assoc code (entget ele)))
)
;; (setq cobj (ssget "X" '((0 . "CIRCLE,ARC"))))
;; 单试同一圆心选择集
(setq cobj (ssget '((0 . "CIRCLE,ARC"))))
(cond
((< (setq nn (sslength cobj)) 2))
(T
(setq ee (ssname cobj (1- nn))
Rad (dxg 40 ee)
nn (1- (1- nn))
)
(while (setq e1 (ssname cobj nn))
(setq Rad1 (dxg 40 e1)
nn (1- nn)
)
(cond
((> Rad1 Rad)
(ssdel ee cobj)
(setq eee1
RadRad1
))
(T (ssdel e1 cobj))
))) )
===>cobj (nn=1 / max Rad)
本帖最后由 作者 于 2009-2-21 19:13:55 编辑 <br /><br /> <p>谢谢Andyhon</p><p>不过现在又有个问题,只能对一个对象操作了?</p><p>我框选N个圆,只能画出一个</p> <p>解决思路:提取所有圆和圆弧的圆心坐标后,将其组成表,然后消除相同坐标后组成新表,再进行其它操作。</p> ljttjl 发表于 2009-2-21 19:50 static/image/common/back.gif
解决思路:提取所有圆和圆弧的圆心坐标后,将其组成表,然后消除相同坐标后组成新表,再进行其它操作。
好思路!赞一个!
页:
[1]