| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
21.03.2019, 17:43 | #1 | |
Как программно обновить блок, если добавлен новый атрибут?
Регистрация: 28.01.2019
Сообщений: 14
|
||
Просмотров: 5020
|
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,850
|
Самый простой вариант - в тихом режиме выполнить _.attsync.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,052
|
только при этом учитывайте:
Цитата:
|
|||
|
||||
Регистрация: 28.01.2019
Сообщений: 14
|
Цитата:
Этот код решил проблему при обновлении одного блока: Код:
Цитата:
|
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,850
|
Может, надо использовать не .Name, а .EffectiveName
А так - смотри: _.attsync <Enter> _n <Enter> * <Enter> Решит твою проблему? ----- добавлено через 38 сек. ----- Сергей812, так я и не говорю, что решение универсальное ----- добавлено через ~2 мин. ----- P.S. Вообще, учитывая, как в ACAD живут атрибуты, без танцев с бубнами их не синхронизировать. Андрей Бушман, если я правильно помню, в свое время пытался сделать аналог _.attsync на .NET, и потерпел фиаско.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,052
|
Offtop:
Цитата:
А как костыль к решению: вставить атрибут изначально и попробовать играться уже с видимостью вставки атрибута. Можно было бы хранить в расширенных данных вставки блока - но VBA вроде не позволяет создать PaletteSet (палитру) или "внедряться" в окно свойств. А без этого вменяемый интерфейс не сделаешь, имхо. Цитата:
|
|||
|
||||
Регистрация: 28.01.2019
Сообщений: 14
|
C .EffectiveName на втором блоке при переборе выделенных блоков выдает туже самую ошибку...
Цитата:
Пробовал так: Код:
|
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,850
|
Сергей812, где-то было обсуждение, что представленный код то ли некорректно срабатывал, то ли еще что-то. Точно не помню
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 28.01.2019
Сообщений: 14
|
Вообщем есть три рабочих команды для обновления блока:
Код:
Но выдают ошибку, если их вставить в цикл перебора выделенных блоков... Почему возникает ошибка на втором блоке в цикле перебора? ----- добавлено через ~32 мин. ----- Получается, что команда ATTSYNC не корректно работает, если выбрано несколько блоков... Если выбран только один блок - то все Ok Последний раз редактировалось stuff, 22.03.2019 в 12:19. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,850
|
Я звездочку зачем поставил, как думаешь?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 28.01.2019
Сообщений: 14
|
Проблема решилась, если использовать PostCommand:
Код:
Цитата:
Последний раз редактировалось stuff, 22.03.2019 в 21:22. |
|||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
stuff, Попробуй так
Код:
Код:
__________________
Как использовать код на Лиспе читаем здесь |
|||
|
||||
Регистрация: 05.06.2014
Сообщений: 77
|
1. Правильно ли я понял что с 2015 PostCommand выполняется синхронно, а SendCommand - асинхронно?
2. При выполнении кода из топика появляется ошибка: no function definition: ACET-ATTSYNC. Ошибка не появляется, если перед этим вручную выполнить хотя бы один раз АТРОБНОВИТЬ. Это можно как-то обойти? |
|||
|
||||
Регистрация: 05.06.2014
Сообщений: 77
|
|
|||
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как обновить внешнюю ссылку DWG если изменилось название файла | Zets | AutoCAD | 10 | 23.02.2021 14:43 |
Почему атрибут не сдвигается от ручки выбора?(динамический блок) | prajdziswet | Динамические блоки | 3 | 26.04.2017 14:49 |
Как программно прочитать цвет слоя, если он задан в формате RGB? | 480725 | LISP | 7 | 09.03.2017 12:01 |
Как программно вставить блок с атрибутами. | Kirill_Ja | Программирование | 6 | 12.05.2012 00:53 |
Аннотативный блок в составе обыкновенного | Ruppel | Динамические блоки | 11 | 20.03.2008 10:53 |