乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 33|回复: 1

VB+类模块CLS+SelectionSets的应用

[复制链接]

120

主题

326

帖子

7

银币

中流砥柱

Rank: 25

铜币
806
发表于 2008-8-16 22:00:00 | 显示全部楼层 |阅读模式
Dim xlsMdb As New XlsMdbTxtData
Dim CadEnt As New AcadEntity
'主程序
Private Sub Form_Load()
  Dim ojbLine As AcadLine
  Dim pp(0 To 2) As Double, ppp(0 To 2) As Double
  Dim xlSheet1 As Worksheet
  Set xlSheet1 = xlsMdb.ReturnxlSheet("Sheet1")
  Dim objText As AcadText, objTextSelectSet As AcadSelectionSet
  Dim fTypa As Variant, fData As Variant
  fType = Array("0"): fData = Array("Text")
  Set objTextSelectSet = CadEnt.ReturnAllSelectSet(fType, fData)
  Debug.Print objTextSelectSet.Count
  For ii = 0 To objTextSelectSet.Count - 1
    Set objText = objTextSelectSet.Item(ii)
    xlSheet1.Cells(ii + 1, 1) = objText.TextString
  Next ii
  
End Sub
'类模块
Function ReturnAllSelectSet(fTypeArray As Variant, fDataArray As Variant) As AcadSelectionSet
  Dim app As AutoCAD.AcadApplication
  On Error Resume Next
  Set appAutoCad = GetObject(, "AutoCAD.Application")
  If Err Then
    Err.Clear
    Set appAutoCad = CreateObject("AutoCAD.Application")
   
  End If
  appAutoCad.Visible = True
  Dim AcadDoc As AcadDocument
  Set AcadDoc = appAutoCad.ActiveDocument
''
    Dim fType, fData
    ReDim fType(0 To UBound(fTypeArray) + 2) As Integer
    ReDim fData(0 To UBound(fDataArray) + 2) As Variant
    fType(0) = -4
    For ii = 0 To UBound(fTypeArray)
      fType(ii + 1) = fTypeArray(ii)
    Next ii
    fType(UBound(fType)) = -4
    ''
    fData(0) = ""
    ''
    '选择过滤出图形中所有的标注对象
''
  With AcadDoc
    .SelectionSets("mccad").Delete
    Set Sset = .SelectionSets.Add("mccad")
    '建立过滤器
    '选择过滤出图形中所有的标注对象
    Sset.Select 5, , , fType, fData
    Set ReturnAllSelectSet = Sset
  End With
  
End Function
回复

使用道具 举报

120

主题

326

帖子

7

银币

中流砥柱

Rank: 25

铜币
806
发表于 2008-9-2 21:23:00 | 显示全部楼层
Sub LS()
  Dim rr As AcadSelectionSet
  Dim objText As AcadText
  fType = Array("0"): fData = Array("Text")
  Set rr = ReturnAllSelectSet(fType, fData)
  For ii = 0 To rr.Count - 1
    Select Case rr.Item(ii).ObjectName
      Case "AcDbText"
        Set objText = rr.Item(ii)
        With objText
          Debug.Print .TextString
        End With
    End Select
  Next ii
End Sub
Function ReturnAllSelectSet(fTypeArray As Variant, fDataArray As Variant) As AcadSelectionSet
  Dim appAutoCad As AutoCAD.AcadApplication
  On Error Resume Next
  Set appAutoCad = GetObject(, "AutoCAD.Application")
  If Err Then
    Err.Clear
    Set appAutoCad = CreateObject("AutoCAD.Application")
   
  End If
  appAutoCad.Visible = True
  Dim AcadDoc As AcadDocument
  Set AcadDoc = appAutoCad.ActiveDocument
''
    Dim fType, fData
    ReDim fType(0 To UBound(fTypeArray) + 2) As Integer
    ReDim fData(0 To UBound(fDataArray) + 2) As Variant
    fType(0) = -4
    For ii = 0 To UBound(fTypeArray)
      fType(ii + 1) = fTypeArray(ii)
    Next ii
    fType(UBound(fType)) = -4
    ''
    fData(0) = ""
    ''
    '选择过滤出图形中所有的标注对象
''
  With AcadDoc
    .SelectionSets("mccad").Delete
    Set Sset = .SelectionSets.Add("mccad")
    '建立过滤器
    '选择过滤出图形中所有的标注对象
    Sset.Select 5, , , fType, fData
    Set ReturnAllSelectSet = Sset
  End With
  
End Function
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-7-4 01:42 , Processed in 0.638949 second(s), 57 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表