![]() |
【转帖】请问在lisp中怎样写这个判断圆直径是否相等的表达式?
请问在lisp中怎样写这个判断圆直径是否相等的表达式?
www.dimcax.com 请问在lisp中怎样写这个判断圆直径是否相等的表达式? 我已经创建了一个圆的选择集,我要判断所选择的圆中直径是否相同,怎样写呢? 还请各位朋友帮帮我这个菜鸟! 选择了就不要放弃! 判定两个圆的半径是否相等,数值精确到小数点后第四位: (setq ss (ssget)) (setq n (sslength ss)) (setq n (- n 1)) (setq index 0) (repeat n (setq en (ssname ss index)) (setq c (entget en)) (setq en1 (ssname ss (+ index 1))) (setq c1 (entget en1)) (setq index ( + index 1)) (if (and (= "circle" (cdr (assoc 0 en))) (= "circle" (cdr (assoc 0 en1))) (= (rtos (cdr (assoc 40 c)) 2 4)(rtos (cdr (assoc 40 c1)) 2 4)) ) ;;两个圆的直径相等 (......) );end of if );end of repeat 谢谢楼上的朋友! 让我慢慢地回味一下! 选择了就不要放弃! ljm68 你的程序有一些问题,你选的圆中有相等的圆,但用你的程序有可能查出无.你再回味一下. 另将查出相等的圆放到一个表中,你可记录它的聚柄号在dxf中5后的符号.最后我再来给你讨论. gbg 我给你编了一个程序:把相同圆和直径放到一个yyu的表中,例: (("10.0306" (508.906 449.482 0.0) (463.626 536.035 0.0) (331.724 532.1 0.0) (369.129 447.515 0.0)) ("8.3491" (562.06 439.647 0.0) (516.78 526.199 0.0) (384.878 522.265 0.0) (422.283 437.68 0.0)) ("5.9013" (575.841 496.693 0.0) (530.561 583.245 0.0) (398.659 579.311 0.0) (436.064 494.725 0.0))) 你可用用(length yyu) 求出有相同圆的个数,可求出相同圆的圆心. 5 gbg 谢谢顾老师! 已经下载了,下在学习中! 选择了就不要放弃! |
所有的时间均为北京时间。 现在的时间是 02:32 AM. |