Перейти к содержимому

Как обновить чертеж в автокаде

  • автор:

Как обновить чертеж в автокаде

Обновление вставленных внешних чертежей

Обновление вставленной внешней ссылки

  1. Выберите пункт меню «Вставить» «Внешние ссылки» . В командной строке введите «внссылки».
  2. На палитре «Внешние ссылки» выберите имя вхождения, которое требуется обновить.
  3. Нажмите правую кнопку мыши и выберите «Обновить».

Примечание Если чертеж выбранной ссылки был изменен уже после открытия основного чертежа, то внешняя ссылка обновляется.

Панель: Справочная информация

Ввод команды: ВНССЫЛКИ

Сайт создан в системе uCoz

Регенерация чертежа в AutoCAD или что делать если «не отъезжает колесиком»? (видео)

Во время работы в AutoCAD для навигации по чертежу мы, как правило, пользуемся мышью. Иногда возникают ситуации, когда при вращении колеса мыши, чертеж как бы «заедает» — он отказывается отдаляться или приближаться. Иная ситуация подобного рода — когда дуговые элементы и окружности выглядят «угловатыми» — они становятся ломаными линиями. Для решения этих проблем смотрите наш урок. Мы расскажем, как следует использовать команду «Регенерировать все» (всереген или _regenall в командной строке) и как вывести кнопку регенерации на Панель быстрого доступа.

Опубликовано в: интерфейс и настройки

Обновление устаревших видов чертежа

Если функция автоматического обновления отключена, виды документации чертежей не обновляются автоматически при изменении исходной 3D-модели.

Обновление устаревшего вида чертежа

  1. Перейдите на вкладку «Лист» панель «Обновление» выпадающий список «Обновить вид» Обновить вид . найти
  2. Выберите вид чертежа, который требуется обновить.
  3. Нажмите клавишу ENTER.

Обновление всех устаревших видов чертежа

  1. Перейдите на вкладку «Лист» панель «Обновление» выпадающий список «Обновить вид» Обновить все виды . найти
Понятия, связанные с данным
  • Обновление видов чертежа
  • Вопросы и ответы: Почему в моем чертеже есть пустые виды чертежа?
  • Документация модели
Задачи, связанные с данной

Отключение и включение регенерации

Разрабатывая различные коды для AutoCAD, я обнаружил, что зачастую самым емким по времени и ресурсам становится обновление чертежа. Регенерация, проще говоря.

Идея, казалось бы, проста и незатейлива: отключаем REGENMODE, выполняем что хотим и потом восстанавливаем значение переменной. Ну, для гарантии выполняем обновление — хоть командой _.regenall, хоть функцией (redraw), хоть через (vla-regen (vla-get-activedocument (vlax-get-acad-object)) acactiveviewport).

Но, к сожалению, не все так просто и прозрачно, как хотелось бы.

Регенерация чертежа, насколько я понял, в обязательном порядке производится при использовании командных методов. Команда завершена — чертеж обновлен. Особенно это касается использования команд редактирования блоков и внешних ссылок. REGENMODE в таком случае игнорируется.

Если в коде используется вывод в ком.строку каких-либо сообщений, в этот момент управление из-под лиспа передается AutoCAD’у. Да, это иногда необходимо. Но все же стоит помнить, что AutoCAD может решить именно в этот момент обновить чертеж. Явной и четкой связи я не обнаружил, но с некоторых пор стараюсь минимизировать вывод в ком.строку.

Допустим, мы добавляем в чертеж примитив. И добавляем в текущее пространство, используя entmake или entmakex. В таком случае регенерация, как правило, не выполняется, но примитив отображается сразу. При добавлении примитива в описание какого-либо блока (т.е. указывается группа 330) по окончании обновления блока, насколько я помню, регенерация будет выполняться обязательно. Ставил подобные эксперименты уже очень давно, да и ActiveX мне нравится больше — поэтому здесь могу ошибаться.

Если нам надо добавлять большое количество примитивов в чертеж, то entmake внутри текущего пространства в данном случае может сыграть плохую шутку: AutoCAD будет понимать, что база все обновляется, обновляется, обновляется. А регенерации все нет и нет. В один не самый прекрасный момент ACAD может решить, что «все, парни, с меня хватит» — и начать регенерацию.

Если надо менять большое количество примитивов, то entmod тоже не самое лучшее решение, как мне кажется. Насколько я помню, после entmod использование entupd практически обязательно — в противном случае примитив может быть «полностью обновлен» только после перезапуска чертежа. То есть — здравствуй, регенерация по примитиву. Опять же, могу ошибаться.

Добавление примитива в чертеж через ActiveX не вызывает регенерацию по каждому чиху. Но если выполняется добавление нескольких сотен примитивов, то регенерация может быть вызвана в любой момент. То же самое касается и изменения примитивов. И на REGENMODE в подавляющем большинстве случаев AutoCAD’у плевать.

Если задача состоит именно в том, чтобы в текущий чертеж добавить сотни или тысячи примитивов, или выполнить многократное изменение какого-либо примитива (например, надо подогнать высоту и ширину многострочного текста так, чтобы он вписывался в определенные рамки), то наиболее быстрым вариантом, с моей точки зрения, является реализация примерно следующего алгоритма:

  1. Создание большого количества примитивов
    • Создание описания анонимного блока
    • Создание внутри этого анонимного блока всех нужных примитивов
    • Вставка анонимного блока, его разбитие и уничтожение вхождения

Вариант плох тем, что база чертежа становится достаточно сильно фрагментированной: хендл описания блока, хендлы объектов внутри описания блока, хендл вхождения блока — и все это на выброс. Теоретически можно превысить предел хендлов (он хотя и велик, но не бесконечен). Но метод хорош тем, что вся работа выполняется абсолютно не затрагивая графическую область чертежа. И лишь в самом конце — вставка и разбитие.

  • Создание описания анонимного блока
  • Создание внутри этого анонимного блока нового примитива или копирование в него существующего
  • Изменение созданного (или скопированного) примитива
  • Получение нужных характеристик из созданного (скопированного) примитива
  • Необязательное отключение REGENMODE
  • Изменение реального примитива на основе полученных данных
  • Восстановление REGENMODE
      Этот вариант тоже не без недостатков. И они те же, что и у первого: ненужная фрагментация базы чертежа, хотя и не такая глобальная.

    Конечно, можно выкрутиться: создать новый документ (чтобы в него не переключиться, создавать наверняка придется через ObjectDBX), в нем все делать, а потом просто импортировать соответствующие элементы. Но на моей практике такого пока еще не требовалось.

    Как таковая регенерация с точки зрения пользователя — благо. С точки зрения программиста-лиспописателя — зло. В последних версиях AutoCAD вроде бы научился корректно обрабатывать текущее значение REGENMODE, но я в этом совсем не уверен. Поэтому сейчас я использую один из двух показанных вариантов. Скорее всего, есть третий, четвертый и т.д. (про .NET только не рассказывайте, ладно? :)) — но до них я пока не дошел.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *