- 积分
- 1022
- 明经币
- 个
- 注册时间
- 2003-6-27
- 在线时间
- 小时
- 威望
-
- 金钱
- 个
- 贡献
-
- 激情
-
|
比如坐标(15,11)附近有4个文字,坐标(25,19)附近也有4个文字。。。。。,我想将坐标(15,11)附近的4个文字归入一个选择集,(25,19)附近4个文字也归入一个选择集,以此类推,将坐标相似的文字单独归入一个选择集,我原来的算法是(setq ent_lst (vl-sort ent_lst '(lambda(e1 e2 ) (< (distance (cdr (assoc 10 (entget (car ent_lst )))) (cdr(assoc 10 (entget e1 ))))
(distance (cdr(assoc 10 (entget (car ent_lst ))))(cdr (assoc 10 (entget e2))))))))
即将所有文字按相互距离的长短进行排序,然后按4个一组、4个一组将文字赋值到每一个表中,这个方法有两个缺点:
1、算法很慢,3000多个文字,排序差不多要花7、8min(和电脑也有关系),但总体来说还是很费时。
2、如果这些坐标类似的文字数目不一样,比如(15,11)附近有4个文字,但是坐标(25,19)只有3个文字,那又要增加一大段判断语句对排序后的ent_lst的物体重新分类。
不知道大家是否有好的算法,帮我出出注意,谢谢。
|
|