查看单个帖子
旧 2009-04-26, 07:42 PM   #1
yang686526
高级会员
 
注册日期: 06-11
帖子: 14579
精华: 1
现金: 224494 标准币
资产: 234494 标准币
yang686526 向着好的方向发展
默认 如何获得一个实体最近另外一个实体

如何获得一个实体最近另外一个实体
www.dimcax.com
如何获得一个实体最近另外一个实体比如获得指定的文字最近line线或者pline,用autolisp如何实行?谢谢。
还有,autocad
d
自己解决了,获得实体的坐标,然后构造一个选择区域,用ssget获得区域内的实体,可逐步增加区域,获得实体后停止。挺简单。呵呵。
d
我现在也正需要这方面的,可不可以贴出来学习一下?
d
(defun fun_ssget(sdpt sddelobj sdlaynm / my_tot my_objss my_ld my_ru my_x my_y );//(点坐标,ssname,图层)
(setq my_x (car sdpt)
my_y (cadr sdpt)
my_objss nil
my_prcsn 5.0
my_addstep 0.5
my_tot 0
)
(while(< my_tot 2)
(setq my_prcsn (+ my_prcsn my_addstep)
my_ru (list (+ my_x my_prcsn) (+ my_y my_prcsn))
my_ld (list (- my_x my_prcsn) (- my_y my_prcsn))
my_objss (ssget "_c" my_ld my_ru sdlaynm)
)
(if ( null my_objss)
(setq my_objss nil)
(setq my_tot (sslength my_objss ))
)
(if (> my_prcsn 100.0)
(setq my_tot 10000)
)
)
(if ( null my_objss)
(alert "none object")
(progn
(setq my_obj(ssdel sddelobj my_objss));;删除自身
)
)
(setq objnm(ssname my_objss 0))
)
d
yang686526离线中   回复时引用此帖
GDT自动化论坛(仅游客可见)