25/06/2015
Получение постоянных атрибутов вставки блока при помощи VBA
Как можно получить имя блока, значения атрибутов, найти количество вставок блока и всё это внести в таблицу при помощи VBA? Получаем информацию о блоке из определения блока в таблице блоков.Следующий пример показывает это, получая все атрибуты всех вставок блоков из пространства модели. Вам нужно создать простую форму содержащую listbox с именем ListBox1 и кнопку, запускающую следующую процедуру:
Код - VBA: [Выделить]
- Private Sub CommandButton1_Click()
- Dim elem As Object
- Dim block As AcadBlock
- Dim item As Object
- Dim Array1 As Variant
- Dim count As Integer
- Dim MBtest1 As String
- Dim str As String
- For Each elem In ThisDrawing.ModelSpace
- If elem.EntityName = "AcDbBlockReference" Then
- If elem.HasAttributes Then
- Array1 = elem.GetAttributes
- If (Array1(count).EntityName) = "AcDbAttribute" Then
- MBtest1 = Array1(count).TagString & _
- " - " & Array1(count).TextString
- ListBox1.AddItem MBtest1
- End If
- Next count
- ' Получаем определение блока из таблицы блоков
- str = elem.Name
- Set block = ThisDrawing.Blocks.item(str)
- For Each item In block
- str = item.EntityName
- ' Получаем постоянные атрибуты
- If item.EntityName = "AcDbAttributeDefinition" Then
- If item.Mode = acAttributeModeConstant Then
- ListBox1.AddItem item.TagString & " - " _
- & item.TextString
- End If
- End If
- Next item
- End If
- End If
- Next elem
- End Sub
Автор перевода: Александр Ривилис
Отредактировано 26.06.2015 в 00:15:18
Обсуждение: http://adn-cis.org/forum/index.php?topic=2818
Опубликовано 25.06.2015Отредактировано 26.06.2015 в 00:15:18