| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > VBA Autocad2015 Как переопредилить атрибуты в уже вставленных блоках.

VBA Autocad2015 Как переопредилить атрибуты в уже вставленных блоках.

Ответ
Поиск в этой теме
Непрочитано 31.08.2016, 14:21 #1
VBA Autocad2015 Как переопредилить атрибуты в уже вставленных блоках.
KomProekt
 
Регистрация: 12.08.2016
Сообщений: 59

Здравствуйте!

Есть несколько одноименных блоков в модели чертежа. Добавляем атрибут в этот блок, но он отображается на чертеже только при очередной вставки блока.
Как добиться отображения нового атрибута у уже вставленных блоков?

Процедура для добавления атрибута следующая:

Dim Shtamp As AcadBlock
Set Shtamp = acadDoc.Blocks("ШтампЭ")

'Добавим атрибут
Dim attributeShtampShifr As AcadAttribute
Dim heightShifr As Double
Dim modeShifr As Long
Dim promptShifr As String
Dim insPointShifr(0 To 2) As Double
Dim tagShifr As String
Dim valueShifr As String

heightShifr = 5
modeShifr = acAttributeModeVerify
promptShifr = "New Prompt"
insPointShifr(0) = 100: insPointShifr(1) = 200: insPointShifr(2) = 0
tagShifr = "Code"
valueShifr = Range("F2").Value

Set attributeShtampShifr = Shtamp.AddAttribute(heightShifr, 0, promptShifr, insPointShifr, tagShifr, valueShifr)


Спасибо!

Последний раз редактировалось KomProekt, 31.08.2016 в 14:28.
Просмотров: 3471
 
Непрочитано 31.08.2016, 14:23
#2
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787


KomProekt, форматировать код кто будет?
Во-вторых, после добавления атрибута не помешает выполнить команду _.attsync.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 31.08.2016, 14:41
#3
KomProekt


 
Регистрация: 12.08.2016
Сообщений: 59


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
KomProekt, форматировать код кто будет?
Во-вторых, после добавления атрибута не помешает выполнить команду _.attsync.
А зачем код форматировать?

Поясни, пожалуйста, как использовать команду _.attsync.??

Спасибо!
KomProekt вне форума  
 
Непрочитано 31.08.2016, 15:21
1 | #4
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787


Цитата:
Сообщение от KomProekt Посмотреть сообщение
А зачем код форматировать?
Чтобы его читать можно было, не вычленяя из общего текста вопроса.
Цитата:
Сообщение от KomProekt Посмотреть сообщение
как использовать команду _.attsync.??
Как обычно - ThisDrawing.SendCommand и далее по тексту
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 31.08.2016, 15:43
#5
KomProekt


 
Регистрация: 12.08.2016
Сообщений: 59


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Как обычно - ThisDrawing.SendCommand и далее по тексту
Да, обновляет, но приходится в ручную в Autocade указывать блок, который нужно обновить. А как сделать обновление нужного блока автоматически?

----- добавлено через ~25 мин. -----
Цитата:
Сообщение от KomProekt Посмотреть сообщение
Да, обновляет, но приходится в ручную в Autocade указывать блок, который нужно обновить. А как сделать обновление нужного блока автоматически?
Разобрался, Спасибо!
KomProekt вне форума  
 
Непрочитано 21.03.2024, 09:14
#6
pad


 
Регистрация: 04.10.2022
Сообщений: 16


Подскажите, а есть возможность с помощью vba отредактировать скрытые и постоянные атрибуты блока?
Нахожу их в GetConstantAttributes, меняю на нужные и могу работать с ними далее, но по факту они не меняются и после обновления блока все значения возвращаются).

Последний раз редактировалось pad, 21.03.2024 в 09:26.
pad вне форума  
 
Непрочитано 21.03.2024, 13:29
#7
pad


 
Регистрация: 04.10.2022
Сообщений: 16


Цитата:
Сообщение от pad Посмотреть сообщение
Подскажите, а есть возможность с помощью vba отредактировать скрытые и постоянные атрибуты блока?
Нахожу их в GetConstantAttributes, меняю на нужные и могу работать с ними далее (их видно в свойствах), но по факту они не меняются и после обновления блока все значения возвращаются).
нашел параллельную тему https://forum.dwg.ru/showthread.php?t=151936 но тоже не решило проблему.
Добавлю что блоки динамические, с выбором видимостей.

Нашел только один рабочий способ:
Сбросить блок командой _resetblock (Возвращает одну или несколько динамических ссылок на блоки к значениям по умолчанию в определении блока.), после чего все изумительно работает.
pad вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > VBA Autocad2015 Как переопредилить атрибуты в уже вставленных блоках.

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Атрибуты не в блоках, атрибуты как самостоятельный примитив АлексЮстасу AutoCAD 11 13.05.2015 10:39
Прыгают атрибуты в блоках (Acad 2013 Sp2 rus) gizmo_zx AutoCAD 7 28.02.2014 14:44
Обновить атрибуты д.блока при изменении его параметров GordonF AutoCAD 8 13.12.2010 14:56
Атрибуты в динамических блоках Traum Динамические блоки 9 13.08.2008 11:53
Как добавить атрибуты в динамический блок? Archeo Динамические блоки 20 17.11.2006 11:30