hndwl
发表于 2007-9-8 19:07:00
请问陈老师,怎么用ssget "f"来选择线内的目标呢?我试了很多方法都不行,恳请指教.多谢了.
xgr
发表于 2007-9-8 22:24:00
<p>你仔细去看看ssget函数的用法,就会知道的。</p><p class="body">创建一个选择集,该选择集由 pt_list 所定义的多边形包含或与之相交的所有图元组成:</p><p class="prompt_end">命令: (ssget "_CP" pt_list)
</p><p class="prompt_end">点表pt_list由闭合多段线获得,</p><p class="prompt_end">得到选择集后,执行选择集过滤操作,就可以得到你想要的实体。</p>
hndwl
发表于 2007-9-10 15:51:00
xgr发表于2007-9-8 22:24:00static/image/common/back.gif你仔细去看看ssget函数的用法,就会知道的。创建一个选择集,该选择集由 pt_list 所定义的多边形包含或与之相交的所有图元组成:命令: (ssget \"_CP\" pt_list) 点表pt_list由闭合多段线
<p>用此方法会把pt_list 所定义的多边形外围相邻的也选上的。我们的目的是只选择线里面的,外面和线相邻的不能选取。</p>
狂刀无痕
发表于 2007-9-10 17:56:00
cp 改为wp
hndwl
发表于 2007-9-10 18:06:00
狂刀无痕发表于2007-9-10 17:56:00static/image/common/back.gifcp 改为wp
<p>改为"wp"时,在框内且和框挨着的又选不上了。</p>
hndwl
发表于 2007-9-10 19:19:00
能有高手指点一下吗?衷心感谢!
Andyhon
发表于 2007-9-10 19:51:00
hndwl发表于2007-9-10 18:06:00static/image/common/back.gif改为\"wp\"时,在框内且和框挨着的又选不上了。
<p>是古怪些? 可否提供测试样本<br/></p>
hndwl
发表于 2007-9-10 20:16:00
就向本图一样,我只想选择白线后,自动的里面的2、3、4线的选择集,而不会选择5号线,应该是明白了吧,谢谢!
Andyhon
发表于 2007-9-10 21:24:00
<p>本图3与5有分隔线吗?得先厘清</p><p>因为古怪所以才想要直接查询实体数据<br/>您直接给个您调试过不了关的图形文件才好查呀</p>
carrot1983
发表于 2007-9-11 09:14:00
本帖最后由 作者 于 2007-9-11 9:20:35 编辑
楼主的意思是:
通过最外边缘的粗白色线构成的范围A,
然后用"WP"或"CP"的选择方式来选择,范围A里面的
细多段线构成的多个封闭的范围B1,B2...Bn的逐个面积....
所以陈老师2楼,可能误解了吧...
(defun get_ptlist(ent / ename elist ptlist)
(setq ename (car ent))
(setq elist (entget ename))
(foreach n elist
(if (= 10 (car n))
(setq ptlist (cons (cdr n) ptlist))
)
)
(reverse ptlist)
)
;;(setq ent (entsel "\n选择粗白色多段线:"))
;;(setq pt_list (get_ptlist ent))
;;(ssget "WP"pt_list filter-list) ;_建立包含在符合 filter- list 的 pt_list 所定义的多边形中所有图元的选择集