[求助]在vba中如何选择一条多段线,或者是获得一条已选中的多段线的信息?
<div class="tpc_content"><font size="3">我想获得当前选中的多段线的坐标,我知道用coordinate可以,可是目前问题是,我不知道怎样获得一条选中的多段线。</font><br/><font size="3"></font><br/><font size="3">如果用GetEntity来选图元的话,选出来的图元不是多段线,就不能获得多段线各顶点的坐标。</font><br/><font size="3"></font><br/><font size="3">如果在运行VBA程序前选中多段线,我又不知道怎样把当前选中的多段线的信息赋值给我定义的acadpolyline形式的变量。</font><br/><font size="3"></font><br/><font size="3">我是新手,思考这个问题了很久,也看了一些书,希望各位高手指点一二!</font><br/></div> <p>给你个程序,试用一下</p><p><br/><br/><br/><br/>*******************************************************************<br/>西北凡人:<a href="http://www.abofanyi.com/blog">www.abofanyi.com/blog</a></p> 嗯。就是这种的。这位大人能告诉我怎么实现的吗? <p>可以用getentity来选择,然后判断返回的对象的objectname是不是acdbpolyline</p><p>或者直接用selectonscreen,将filtertype设为0,filterdata设为"LWPOLYLINE"</p> <p>选择集过滤器中多段线的判断<br/>filtertype(0)=0<br/>FilterData(0) = "*POLYLINE"</p> <p>有道理,直接通过选择集让用户选取~</p><p>各位大人太有才了~</p><p>谢谢</p> <p>如果选出了多段线,怎么使用它的属性呢?</p><p>Sub GetObjInSet()<br/> Dim selset As AcadSelectionSet<br/> Dim FilterType(0) As Integer<br/> Dim FilterData(0) As Variant<br/> FilterType(0) = 0<br/> FilterData(0) = "LWPOLYLINE"<br/> Set selset = ThisDrawing.SelectionSets.Add("SS28")<br/> selset.SelectOnScreen FilterType, FilterData<br/> MsgBox ("Selection set " & selset.Name & " contains " & _<br/> selset.Count & " items")<br/> Dim ent As Object<br/> Dim mselobj As AcadPolyline<br/>i = 0<br/>For i = 0 To selset.Count - 1<br/> If selset(i).ObjectName = "AcDbPolyline" Then<br/> Set ent = selset.Item(i) ‘在这里怎样调用多段线的属性值,请各位不吝指教,谢谢了! <br/> End If<br/>Next<br/>selset.Delete<br/>End Sub</p> <p>请问楼上,你所指多段线的属性值是指什么内容?</p><p>是否可以通过Obj.GetXData来获取呢?</p> azjmjsj发表于2008-4-27 11:16:00static/image/common/back.gif给你个程序,试用一下40732*******************************************************************西北凡人:www.abofanyi.com/blog<p></p><p>能分享一下源码部分吗,学习!</p>
页:
[1]