查看单个帖子
旧 2009-04-26, 08:49 PM   #1
yang686526
高级会员
 
注册日期: 06-11
帖子: 14579
精华: 1
现金: 224494 标准币
资产: 234494 标准币
yang686526 向着好的方向发展
默认 怎样查找某个坐标的最近的线

怎样查找某个坐标的最近的线
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
谢谢版主,版主辛苦了,
yang686526离线中   回复时引用此帖
GDT自动化论坛(仅游客可见)