经过一点的实体的选择
<p><font face="Verdana"> Dim pc As New Point3dCollection<br/> pc.Add(p)<br/> Dim obc As ObjectId()<br/> Dim acTypValAr(0) As TypedValue<br/> acTypValAr.SetValue(New TypedValue(DxfCode.Start, "*Line"), 0)<br/> Dim acSelFtr As SelectionFilter = New SelectionFilter(acTypValAr)<br/> Dim acSSPrompt As PromptSelectionResult = ed.SelectFence(pc, acSelFtr)<br/> Dim acSSet As SelectionSet = acSSPrompt.Value<br/> If Not acSSet Is Nothing Then<br/> obc = acSSet.GetObjectIds</font></p><p> End if</p>
<p> </p>
<p>好像SelectFence不支持经过一点的选择,该怎么弄呢?</p> <p>你的线或多段线是端点在这个点?还是经过</p>
<p> </p> <p>我本来想是经过这个点,如果是端点就在这个线上的话更好</p> <p>另外,上次问的经过两点的选择好像也有问题,检索结果有时候多有时候少</p>
<p><font face="Verdana"> Dim pc As New Point3dCollection<br/> pc.Add(p1)<br/> pc.Add(p2)<br/> Dim obc As ObjectId()<br/> Dim acTypValAr(0) As TypedValue<br/> acTypValAr.SetValue(New TypedValue(DxfCode.Start, "*Line"), 0)<br/> Dim acSelFtr As SelectionFilter = New SelectionFilter(acTypValAr)<br/> Dim acSSPrompt As PromptSelectionResult = ed.SelectFence(pc, acSelFtr)<br/> Dim acSSet As SelectionSet = acSSPrompt.Value<br/> If Not acSSet Is Nothing Then<br/> obc = acSSet.GetObjectIds<br/> Else : Return False</font></p> <p><font face="Verdana">端点在pt1</font></p>
<p><font face="Verdana"> ed.SelectAll(<br/> new SelectionFilter(<br/> new TypedValue[]<br/> {<br/> new TypedValue(0, "*line"),<br/> new TypedValue(-4, "<or"),<br/> new TypedValue(10, pt1),<br/> new TypedValue(11, pt1),<br/> new TypedValue(-4, "or>")<br/> }));</font></p> <p>版主写的意思是不是选择*Line,并且起点和其他点都是pt1啊?为啥用or呢?搞不懂。但是挺好玩,这种结合搞懂的话,</p>
<p>我也想写 :选择块名为name,并且覆盖点pt1的块参照过滤</p> ??? <p>你的问题一直问的都是不明不白的,想帮都没法帮,汗</p>
<p>把你的问题描述清楚</p>
<p>另外,不要同一个问题到处开新帖</p> 就是按照版主写的过滤语句,能不能过滤如下条件的:快名为brfName,且覆盖一点(或者说经过)p的块参照 <p>不行</p>
<p>如果是插入点可以,经过不行</p>
页:
[1]
2