bigmonster 发表于 2011-10-9 09:32:32

如何在CAD中编程实现一次选中同一层中不同内容的文字?文字的内容可以自行定义。

如何在CAD中编程实现一次选中同一层中不同内容的文字?文字的内容可以自行定义。

如在道路层中一次选中“沥”和“碎石”,文字内容可以在程序中写死。望有码,感谢!

wylong 发表于 2011-10-11 23:51:12

本帖最后由 wylong 于 2011-10-11 23:52 编辑

Sub SelectTexts()
    Dim sS As AcadSelectionSet
    Dim fType(0 To 2) As Integer
    Dim fData(0 To 2) As Variant
    Dim AutoSelect As Boolean
   
    '更改变量值 True/False 可以实现自动全选或手动框选
    AutoSelect = True

    On Error Resume Next
    ThisDrawing.SelectionSets("SelectTexts").Delete
    Set sS = ThisDrawing.SelectionSets.Add("SelectTexts")
    On Error GoTo 0

    On Error GoTo ErrHandle

    '创建过滤机制
    fType(0) = 0: fData(0) = "TEXT,MTEXT"             '单行或多行文字
   
    '更改下面的文字内容可以实现选择不同的文字
    'fType(1) = 1: fData(1) = "*碎石*,*沥*"         '文字内容-模糊选择
    fType(1) = 1: fData(1) = "碎石,沥"                '文字内容-精确选择
   
    fType(2) = 8: fData(2) = "道路"                   '图层名称

    '选择符合条件的所有图元-单行文字和多行文字
    If AutoSelect Then
      '自动选择方式
      sS.Select acSelectionSetAll, , , fType, fData
    Else
      '提示用户手动选择区域
      sS.SelectOnScreen fType, fData
    End If
   
    If sS.Count = 0 Then Exit Sub
   
    sS.Highlight True
   
    '此处加入你的处理代码
    '....................

    '删除数组
    Erase fType: Erase fData
   
    '删除选择集
    sS.Clear: sS.Delete
    Set sS = Nothing
   
    Exit Sub
ErrHandle:
    MsgBox Err.Description, vbCritical, "产生了以下错误:"
    Err.Clear
End Sub
页: [1]
查看完整版本: 如何在CAD中编程实现一次选中同一层中不同内容的文字?文字的内容可以自行定义。