ADN Club > VBA
Макрос вставки атрибутов в блок
(1/1)
sae.prc:
--- Код - Visual Basic [Выбрать] ---Sub AddAttributePritok()Dim blk As AcadBlockReferenceDim att As AcadAttributeDim insertionPoint(0 To 2) As DoubleDim height As DoubleDim mode As LongDim prompt As StringDim tag As StringDim value As String ' Удалить существующий Selection Set, если он естьOn Error Resume NextThisDrawing.SelectionSets.Item("SelectionSet").DeleteOn Error GoTo 0 ' Создать новый Selection SetDim selectionSet As AcadSelectionSetSet selectionSet = ThisDrawing.SelectionSets.Add("SelectionSet") ' Проверить, удалось ли создать Selection SetIf Not selectionSet Is Nothing Then' Предоставить пользователю возможность выбрать объектыselectionSet.SelectOnScreen' Перебрать все выбранные объектыFor Each obj In selectionSet' Проверить, является ли объект блокомIf TypeOf obj Is AcadBlockReference ThenSet blk = obj' Задать параметры атрибутаheight = 1#mode = acAttributeModeInvisibleprompt = "тест"insertionPoint(0) = 5#: insertionPoint(1) = 5#: insertionPoint(2) = 0tag = "тест"value = "привет"' Создать новый атрибутSet att = blk.AddAttribute(height, mode, prompt, insertionPoint, tag, value)' Обработать ситуацию, если добавление атрибута не удалосьIf Not att Is Nothing ThenMsgBox "Атрибут успешно добавлен к блоку."ElseMsgBox "Ошибка при добавлении атрибута к блоку.", vbExclamationEnd IfEnd IfNext obj' Удалить Selection Set после использованияselectionSet.DeleteEnd IfEnd Sub
Код для добавления атрибута в блок - в чем ошибка, а так же как можно добавлять пакетно атрибуты в блок (и если у блока есть параметр видимости, то добавить атрибуты во все видимости)
Алексей Кулик:
Атрибуты по идее надо добавлять не к вхождению блока, а к его описанию. Соответственно надо ИМХО
а) пройтись по набору блоков и сформировать список имен блоков (без повторений, естественно)
б) по каждому из элемента списка имен - получить указатель на описание блока и уже в него добавлять описания атрибутов
в) выполнить _.attsync либо его аналог
г(по желанию)) пройтись по полученному в в. а) списку и установить значения добавленных атрибутов.
Навигация
Перейти к полной версии