在VBA中几乎是一样的,它背后的原始想法是一个标题栏更改,无论有多少标题栏,额外的代码允许选择一个标识块名称的块,希望所有这些都有意义。只需运行add\u project\u number,它将与您的块一起工作,将DA1DRTXT更改为您的块名。
- Public Sub add_project_number()
- ' This Updates the project number
- Dim SS As AcadSelectionSet
- Dim Count As Integer
- Dim FilterDXFCode(1) As Integer
- Dim FilterDXFVal(1) As Variant
- Dim attribs, newtext As Variant
- Dim BLOCK_NAME As String
- 'On Error Resume Next
- Dim startCH As Double
- newtext = ThisDrawing.Utility.GetString(True, "Enter new project code : ")
- FilterDXFCode(0) = 0
- FilterDXFVal(0) = "INSERT"
- FilterDXFCode(1) = 2
- FilterDXFVal(1) = "DA1DRTXT"
- BLOCK_NAME = "DA1DRTXT"
- Set SS = ThisDrawing.SelectionSets.Add("issued")
- SS.Select acSelectionSetAll, , , FilterDXFCode, FilterDXFVal
- For Cntr = 0 To SS.Count - 1
- attribs = SS.Item(Cntr).GetAttributes
-
-
- attribs(1).TextString = newtext
- attribs(1).Update
-
- Next Cntr
- ThisDrawing.SelectionSets.Item("issued").Delete
- End Sub
和
- Function Getpitname(Newpitname As String) As String
- Dim PitNameSelect As AcadObject
- Dim pitattribs As Variant
- ThisDrawing.Utility.GetEntity PitNameSelect, basepnt, "pick pit name : "
- If PitNameSelect.ObjectName = "AcDbText" Then
- Getpitname = PitNameSelect.TextString
- End If
- If PitNameSelect.ObjectName = "AcDbBlockReference" Then
- pitblname = PitNameSelect.Name ' RETURNS BLOCK NAME
- pitattribs = PitNameSelect.GetAttributes
- Getpitname = pitattribs(0).TextString
- End If
- End Function
您需要更改线newtext=ThisDrawing。公用事业GetString(True,“输入新项目代码:”)到
- Dim PitNameSelect As AcadObject
- ThisDrawing.Utility.GetEntity PitNameSelect, basepnt, "pick pit name : "
- Newpitname = "1" 'dummy to pass then return changed
- pitname = Getpitname(Newpitname)
- 'Call Getpitname(pitname)
- MsgBox "pitname selected is " & pitname
|