明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2333|回复: 8

[求助]在vba中如何选择一条多段线,或者是获得一条已选中的多段线的信息?

[复制链接]
发表于 2008-4-26 21:29:00 | 显示全部楼层 |阅读模式
我想获得当前选中的多段线的坐标,我知道用coordinate可以,可是目前问题是,我不知道怎样获得一条选中的多段线。

如果用GetEntity来选图元的话,选出来的图元不是多段线,就不能获得多段线各顶点的坐标。

如果在运行VBA程序前选中多段线,我又不知道怎样把当前选中的多段线的信息赋值给我定义的acadpolyline形式的变量。

我是新手,思考这个问题了很久,也看了一些书,希望各位高手指点一二!
发表于 2008-4-27 11:16:00 | 显示全部楼层

给你个程序,试用一下





*******************************************************************
西北凡人:www.abofanyi.com/blog

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
 楼主| 发表于 2008-5-4 10:51:00 | 显示全部楼层
嗯。就是这种的。这位大人能告诉我怎么实现的吗?
发表于 2008-5-4 20:33:00 | 显示全部楼层

可以用getentity来选择,然后判断返回的对象的objectname是不是acdbpolyline

或者直接用selectonscreen,将filtertype设为0,filterdata设为"LWPOLYLINE"

发表于 2008-5-4 22:03:00 | 显示全部楼层

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

 楼主| 发表于 2008-5-6 16:35:00 | 显示全部楼层

有道理,直接通过选择集让用户选取~

各位大人太有才了~

谢谢

发表于 2008-6-13 01:16:00 | 显示全部楼层

如果选出了多段线,怎么使用它的属性呢?

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

发表于 2008-6-13 08:20:00 | 显示全部楼层

请问楼上,你所指多段线的属性值是指什么内容?

是否可以通过Obj.GetXData来获取呢?

发表于 2008-6-19 16:13:00 | 显示全部楼层
azjmjsj发表于2008-4-27 11:16:00给你个程序,试用一下40732*******************************************************************西北凡人:www.abofanyi.com/blog

能分享一下源码部分吗,学习!

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-26 10:05 , Processed in 0.288878 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表