![]() |
怎样查找某个坐标的最近的线
怎样查找某个坐标的最近的线
www.dimcax.com 怎样查找某个坐标的最近的线请教各位大哥,假如给出坐标,怎样查找距离这个坐标最近的线,有的说用ssget "c",慢慢放大选择集,这种方法准确度不是很高,使用起来也不太方便,有更好的方法吗? d 俺也不知道,呵呵! d 文字对象和块对象不能计算,以下是代码,刚写的,供你参考! 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22( ssall(ssget"x"'((0 . "spline,arc,circle,line,polyline,lwpolyline,ellipse"))));,insert,text ( pt(getpoint"\n请输入基点:")); ( pt ( ( sslen( ssall)i 0) ( sslen ( ename( ssall i)i( i)) ( dxf( ename)) ((= i 1) ( ( outname ename) ( npt( ename pt t));垂直点 ( dist1( pt npt)) ) ( ( npt( ename pt t));垂直点 ( dist2( pt npt)) ((> dist1 dist2)( dist1 dist2 outname ename)) )) ) ) ) 因為專業, 所以精彩! 多多學習.多多進步 . 明经在我在! 我的代表作/bbs/dispbbs.asp?boardid=2&id=33961 /bbs/dispbbs.asp?boardid=14&id=58568&page=1 d 在这里先谢谢你了,你的方法是先把整幅图东西垂直点都跟着计算一遍,然后筛选,这样要是图很大的话好慢啊,还有更好的思路吗, d e,快一点的方法可能是这样子吧: 固定区域选取法 1、用放大命令把基点(指找最近对象的点)放到绘图区中间; 2、进行选取; 3、筛选最近对象; 4、放大还原。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26( pt(getpoint"\n请输入基点:")); ( p1((-( pt)100)(-( pt)100)) p2((+( pt)100)((cadr pt)100))) (command".zoom" p1 p2) ( ss( "c" p1 p2'((0 . "spline,arc,circle,line,polyline,lwpolyline,ellipse")))) ( ss ( ( sslen( ss)i 0) ( sslen ( ename( ss i)i( i)) ( dxf( ename)) ((= i 1) ( ( outname ename) ( npt( ename pt t));垂直点 ( dist1( pt npt)) ) ( ( npt( ename pt t));垂直点 ( dist2( pt npt)) ((> dist1 dist2)( dist1 dist2 outname ename)) )) ) ) ) (command".zoom" "p") 因為專業, 所以精彩! 多多學習.多多進步 . 明经在我在! 我的代表作/bbs/dispbbs.asp?boardid=2&id=33961 /bbs/dispbbs.asp?boardid=14&id=58568&page=1 d 谢谢版主,版主辛苦了, |
| 所有的时间均为北京时间。 现在的时间是 11:39 AM. |