如何在CAD中编程实现一次选中同一层中不同内容的文字?文字的内容可以自行定义。
如何在CAD中编程实现一次选中同一层中不同内容的文字?文字的内容可以自行定义。如在道路层中一次选中“沥”和“碎石”,文字内容可以在程序中写死。望有码,感谢!
本帖最后由 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]