马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
在CAD中,如果属性定义的标签(TagString)或者单行文本和多行文本的文本(TextString)为空字符串的话,那么这些对象在屏幕上就不会显示出来,就如隐藏一样,但在使用当中又不可能为人所注意,这时就可以把这些清理掉。
以下的例子实现了这个功能。
- [FONT=courier new]
- Public Sub TextPurge()
- '创建选择集,名称为TextPurge
- Dim SSetObj As AcadSelectionSet
- Set SSetObj = ThisDrawing.SelectionSets.Add("TextPurge")
- '创建过滤器,仅选择Attdef(属性定义)、Text(单行文本)、Mtext(多行文本)
- '关于过滤器的使用,请参考有关书籍
- Dim fType(0 To 0) As Integer
- Dim fData(0 To 0) As Variant
- fType(0) = 0
- fData(0) = "Attdef,Text,Mtext"
- '选择全部的Attdef、Text、Mtext
- SSetObj.Select acSelectionSetAll, , , fType, fData
- If SSetObj.Count <> 0 Then
- Dim i As Integer
- For i = 0 To SSetObj.Count - 1
- '在Attdef中显示的是TagString,在Text和Mtext中显示的是TextString
- If TypeOf SSetObj(i) Is AcadAttribute Then
- If SSetObj(i).TagString = "" Then SSetObj(i).Delete
- Else
- If SSetObj(i).TextString = "" Then SSetObj(i).Delete
- End If
- Next
- End If
- SSetObj.Delete
- Set SSetObj = Nothing
- End Sub
- [/FONT]
|