Добрый день!
Собственно вопрос задан в теме.
Добавлю, что пользуюсь операцией "Вставка"-"Блок". Если выбрать блок, который уже определён в пространстве модели, то выйдет запрос на переопределение блока. Есть ли такая возможность применительно к нескольким блокам с разными именами?
Если такой функции в базовом Автокаде нет - то, возможно, кто-то уже реализовал данную функцию в своём макросе или в отдельном ПО?
Знаю, что есть в AutoCAD Electrical, но интересует применение касательно базового AutoCAD.
Solved! Go to Solution.
Solved by AVCPlugins. Go to Solution.
Находите сообщения полезными? Поставьте "НРАВИТСЯ" этим сообщениям! | Do you find the posts helpful? "LIKE" these posts!
На ваш вопрос успешно ответили? Нажмите кнопку "УТВЕРДИТЬ РЕШЕНИЕ" | Have your question been answered successfully? Click "ACCEPT SOLUTION" button.
Я делал программную подмену блоков на блок из другого чертежа - ничего сложного (если интересно - команда BReplace) У меня там поиск блока с таким же именем. А как вы представляете замену сразу пачки блоков? Какая логика подмены? Что-то я не представляю...
Такая, как и в AutoCAD Electrical - активировав команду:
- пользователь указывает папку БД, где лежат актуальные файлы блоков, до которых требуется обновиться;
- после этого все блоки на чертеже заменяются на блоки БД при совпадении имён блоков.
Я бы постарался прокачать ещё до того, что если версия блока на чертеже совпадает с версией блока БД, то не заменять, что, как предполагаю, уменьшило бы нагрузку для больших файлов.
Сложно говорить об операции сравнения - не знаю, какие свойства блока можно взять из блока в модели. Но если есть, то сравнивал бы по размеру блока (байты) и дата+время изменения блока.
Не совсем понимаю необходимость обновления до блока из другого чертежа.
Организационно считаю правильным хранить БД в виде файлов-блоков, нежели в виде 1-го файла.
Если считаете, что это не так - будет интересным узнать Ваше видение.
Т.е. нет на самом деле ни какой БД, а есть просто папка с файлами, которую всю надо перелопатить и заменить блоки на самые свежие? Вполне простенький алгоритм, может когда нибудь сделаю, не прям сейчас. Я то же самое делал для БД на MSSQL. Прям при загрузке чертежа обновлял автоматом блоки. Как-то я решил вопрос с датой изменения блока... забыл уже как... Но сравнивать блоки побайтно точно не имеет смысла. И геометрически тоже.
p.s.
Посмотрел старые проекты - я в XData писал дату обновления блока. Сейчас пожалуй я бы предпочел невидимый атрибут создать и в нем версию хранить. И при выкладке в БД инкриминировать.
@AVCPlugins написал (-а):Т.е. нет на самом деле ни какой БД, а есть просто папка с файлами, которую всю надо перелопатить и заменить блоки на самые свежие?
Да, просто папка с файлами. Условно - БД УГО (условно-графических обозначений) элементов/аппаратов. В ней также могут быть подпапки, подподпапки, ...
@AVCPlugins написал (-а):
Посмотрел старые проекты - я в XData писал дату обновления блока. Сейчас пожалуй я бы предпочел невидимый атрибут создать и в нем версию хранить. И при выкладке в БД инкриминировать.
Тоже вариант. Вижу минусы:
- данный атрибут можно отредактировать;
- дополнительная нагрузка на мозг обыденного пользователя;
- дополнительная (пусть и небольшая, но всё же) нагрузка при создании блока.
Возможно всё-таки есть свойства блока в пространстве модели, благодаря которым можно инициализировать блок?
Будет круто, если выложишь все свойства обычного блока - подумаем вместе.
Не согласен 🙂
- данный атрибут можно отредактировать;
да, и это плюс. Пользователь может подправить свои и программные косяки без танцев с бубном.
- дополнительная нагрузка на мозг обыденного пользователя;
Если у пользователя обнаружится мозг (редкий случай! ;)), то он сможет использовать атрибуты для выгрузки данных, в Полях текстов, выносок и таблиц. Если мозга нет, то он и не заметит существование невидимого атрибута.
- дополнительная (пусть и небольшая, но всё же) нагрузка при создании блока.
Только и исключительно программное создание атрибута. Пользователь жмет одну кнопку "Обновить". Дальше программа сама ищет блоки в заданой папке, обновляет и записывает атрибут (если его небыло еще).
Я всю эту систему испытал в плагине Крепеж. Никто даже не заметил, что в блоках появилась пачка атрибутов.
Есть плагины чтоб посмотреть все доступные в API свойства объектов. Например, мой Похожий показывает.
Can't find what you're looking for? Ask the community or share your knowledge.