inxiu 发表于 2008-4-26 21:29:00

[求助]在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>

azjmjsj 发表于 2008-4-27 11:16:00

<p>给你个程序,试用一下</p><p><br/><br/><br/><br/>*******************************************************************<br/>西北凡人:<a href="http://www.abofanyi.com/blog">www.abofanyi.com/blog</a></p>

inxiu 发表于 2008-5-4 10:51:00

嗯。就是这种的。这位大人能告诉我怎么实现的吗?

sailorcwx 发表于 2008-5-4 20:33:00

<p>可以用getentity来选择,然后判断返回的对象的objectname是不是acdbpolyline</p><p>或者直接用selectonscreen,将filtertype设为0,filterdata设为"LWPOLYLINE"</p>

azjmjsj 发表于 2008-5-4 22:03:00

<p>选择集过滤器中多段线的判断<br/>filtertype(0)=0<br/>FilterData(0) = "*POLYLINE"</p>

inxiu 发表于 2008-5-6 16:35:00

<p>有道理,直接通过选择集让用户选取~</p><p>各位大人太有才了~</p><p>谢谢</p>

lchong 发表于 2008-6-13 01:16:00

<p>如果选出了多段线,怎么使用它的属性呢?</p><p>Sub GetObjInSet()<br/>&nbsp; Dim selset As AcadSelectionSet<br/>&nbsp;&nbsp; Dim FilterType(0) As Integer<br/>&nbsp;&nbsp; Dim FilterData(0) As Variant<br/>&nbsp;&nbsp; FilterType(0) = 0<br/>&nbsp;&nbsp; FilterData(0) = "LWPOLYLINE"<br/>&nbsp; Set selset = ThisDrawing.SelectionSets.Add("SS28")<br/>&nbsp;selset.SelectOnScreen FilterType, FilterData<br/>&nbsp; MsgBox ("Selection set " &amp; selset.Name &amp; " contains " &amp; _<br/>&nbsp;&nbsp;&nbsp; selset.Count &amp; " items")<br/>&nbsp;Dim ent As Object<br/>&nbsp;Dim mselobj As AcadPolyline<br/>i = 0<br/>For i = 0 To selset.Count - 1<br/>&nbsp; If selset(i).ObjectName = "AcDbPolyline" Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Set ent = selset.Item(i) ‘在这里怎样调用多段线的属性值,请各位不吝指教,谢谢了!&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp; End If<br/>Next<br/>selset.Delete<br/>End Sub</p>

robbin840311 发表于 2008-6-13 08:20:00

<p>请问楼上,你所指多段线的属性值是指什么内容?</p><p>是否可以通过Obj.GetXData来获取呢?</p>

tl319 发表于 2008-6-19 16:13:00

azjmjsj发表于2008-4-27 11:16:00static/image/common/back.gif给你个程序,试用一下40732*******************************************************************西北凡人:www.abofanyi.com/blog

<p></p><p>能分享一下源码部分吗,学习!</p>
页: [1]
查看完整版本: [求助]在vba中如何选择一条多段线,或者是获得一条已选中的多段线的信息?