Команда обновить в автокаде

Команда обновить в автокаде

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

Ввод имен и псевдоимен команд AutoCAD вручную с клавиатуры — это один из приемов повышения скорости работы в программе. Этим способом можно вызвать любую быструю команду Автокад (видеоурок "Как пользоваться командной строкой в Автокаде")

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

По умолчанию AutoCAD автоматически заполняет имя команды по мере ее ввода. По окончании ввода необходимо нажать "Enter".

Некоторые команды имеют также альтернативные имена или псевдонимы команд AutoCAD. Т.е. при вызове команды из командной строки, вы можете вводить не полное имя, а лишь первые одну или несколько букв. Например, вместо того, чтобы полностью писать команду "Круг", можно набрать букву "К" на клавиатуре, а затем "Enter".

Отмена выполнения команды происходит при нажатии на клавишу Esc. Завершение команды Автокад — клавиша "Enter". Повторное выполнение команды AutoCAD — клавиша "Enter", либо Пробел.

Чтобы начать быстрее работать в программе, советую запомнить для начала основные команды AutoCAD (АвтоКАД), а также псевдонимы. Справочник команд AutoCAD привожу ниже в виде таблицы.

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

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

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

Читайте также:  Вотч догс 2 персонажи

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

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

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

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

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

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

Читайте также:  Knights of honor моды

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

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

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

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

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

      Читайте также:  Как ускорить видео в avidemux

      КОМАНДЫ REGEN И REDRAW

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

      Связано это с тем, что на экране остается различный «мусор», например временные маркеры, появляющиеся при построении точек, или же наоборот – ошибочно становятся невидимыми части объектов, что связано со стиранием находящихся рядом с ними других объектов.

      Вот еще один пример. Предположим, что построение окружности выполнялось в одном масштабе, а затем это изображение было сильно увеличено, что привело к образованию ломаной поверхности окружности. Так или иначе, видимое на экране изображение становится отличным от действительного.

      Процесс регенерации восстанавливает изображение путем пересчета данных, хранящихся в базе данных чертежа. Выполняться эта операция может автоматически, в пределах виртуального экрана, или же принудительно. Для этого используются команды Regen и Redraw.

      Команда Regen выполняет регенерацию чертежа для удаления его нежелательной геометрической интерпретации, а команда Redraw перерисовывает изображение на экране, удаляя временные маркеры и другой «мусор».

      Нужно подчеркнуть, что все перечисленные команды могут работать в «прозрачном» режиме. Как было отмечено выше, «прозрачными» называются команды, которые можно вызвать во время выполнения других команд. После завершения «прозрачной» команды AutoCAD возвращается к выполнению ранее запущенной команды.

      Примечание. Для запуска команды Redraw в «прозрачном» режиме нужно перед ее названием вводить в командную строку апостроф (‘Redraw), а для перерисовки всех видовых экранов используется команда Redrawall.

      Ссылка на основную публикацию
      Коды для разблокировки телефона нокиа
      Секретные коды Nokia для сброса, проверки и настроек. На этой странице собраны все полезные секретные и не секретные коды для...
      Киностудия windows live не сохраняет фильм
      Запрос в поисковых системах «MovieMaker не сохраняет фильм что делать», говорит о распространенной проблеме записи готового видеоролика в Муви Мейкер...
      Кнопка как в предыдущем разделе не активна
      Опубликовано Михаил Непомнящий в 18.04.2017 18.04.2017 Текстовый редактор Microsoft Word позволяет добавлять два типа колонтитулов – верхние и нижние, а...
      Команда обновить в автокаде
      Все действия в программе AutoCAD мы совершаем с помощью команд, которые вызываем на ленте из контекстного меню, либо же вводом...
      Adblock detector