Макросы в автокаде что это
Автоматизация работы в AutoCAD при помощи макросов
А раз и в том и в другом случае это всего лишь последовательность команд, то для автоматизации AutoCAD нам достаточно четко понимать последовательность команд, которые нужно выполнить, чтобы получить требуемый результат.
Сценарии AutoCAD
Положительные моменты: AutoCAD скрипты могут содержать длинные списки инструкций для AutoCAD. Все файлы сценариев AutoCAD можно хранить в одном месте на сервере. Если вам необходимо обновить или изменить файл сценария, достаточно изменить его в одном месте для всех пользователей. Сценарии AutoCAD могут содержать комментарии, напоминающие, что делает скрипт или его отдельные строки.
Сценарии, написанные на LISP работают только в полноценных версиях AutoCAD или вертикальных решениях, например, AutoCAD Electrical, но не работают в AutoCAD LT.
Отрицательные моменты: Требуются определенные навыки для загрузки сценариев и знание места, где они хранятся.
AutoCAD Макросы
Отрицательные моменты: Макросы довольно долго создавать, и порой весьма сложно отлаживать их работу. Кроме того, при обновлении версии AutoCAD придется создавать макросы для новой версии сначала.
Для достижения наилучшего результата можно макрокомандой вызывать необходимый сценарий.
Автоматизация вывода на печать
В предыдущей статье, мы научились создавать сценарии, изучая команды и ответы на запросы AutoCAD в командной строке. В итоге был получен сценарий, автоматизирующий получение чертежа в формате *.PDF.
Для перевода сценария в макрокоманду необходимо написать то же самое, но в одну строку, используя в качестве разделителей, точку с запятой (;):
^C^C-ПЕЧАТЬ;д;;DWG to PDF.pc3;ISO A4 (210,00 х 297,00 мм);м;а;н;г;в;ц;д;monochrome.ctb;д;о;;н;д;
Обратите внимание, что, вместо переноса строки в макросах используют точку с запятой. В тех местах где нажимается Пробел или Enter также ставят точку с запятой.
^C^C – в начале команды, аналогично двойному нажатию Esc на клавиатуре. Эта операция должна отменить любые другие команды, которые выполнялись перед вашим макросом.
Запуск и отладка макросов
Используя сочетание клавиш CTRL + 3, откроем Инструментальные палитры.
Щелкните правой кнопкой мыши по любой пустой области на палитре и выберите Создать палитру, чтобы создать новую пустую палитру, которую мы будем использовать для тестирования нашего макроса. Вы можете сразу задать имя вашей палитре, например, Моя.
Эта инструкции предназначена для AutoCAD 2014 или более поздней версии. Предыдущие версии могут иметь некоторые отличия в названии команд и окон.
Щелкните правой кнопкой мыши по любой пустой области новой палитры и выберите Адаптация команд…. Это вызовет появление окна Адаптация пользовательского интерфейса.
Наберите «сценарий» в поле поиска, чтобы найти команду Сценарий.
Перетащите команду Сценарий из окна Адаптация пользовательского интерфейса на вашу палитру. Нажмите ОК в окне Адаптация пользовательского интерфейса, чтобы его закрыть.
Конечно, теоретически, вы не должны использовать команду Сценарий для тестирования макроса, но в AutoCAD нет команды Выполнить макрос.
Чтобы добавить свою макрокоманду к новой кнопке на панели инструментов, щелкните правой кнопкой мыши на кнопке палитры инструментов Сценарий, и в контекстном меню выберите Свойства объекта.
В открывшемся окне Свойства инструмента, вы можете вставить свой макрос в строку: Командная строка, добавить Название и Описание вашей кнопке, поменять изображение значка кнопки и т.д.
Нажмите OK, чтобы закрыть диалог и сохранить макрос.
Теперь можно нажать на новую кнопку и посмотреть, что происходит!
Если макрос сработал правильно – великолепно. Если нет, то нажмите на клавиатуре F2, чтобы открыть Текстовое окно AutoCAD. В нем вы увидите, что произошло, и может, даже поймете, что необходимо исправить, чтобы ваш макрос заработал.
Отладка макросов весьма увлекательный процесс!
Примеры макросов
Вот примеры макросов, которые можно использовать для ускорения некоторых операций в Autocad Electrical, например:
Расчленить все блоки на простые геометрические и текстовые объекты с сохранением заданных значений текстовых атрибутов.
Добавляем в предыдущую команду зуммирование в реальном времени.
Очистка чертежа от неиспользуемых элементов, таких как определения блоков, слои, типы линий и т.п.
Специальные символы, применяемые в макрокомандах
Символ | Наименование |
---|---|
; или ^M, или Пробел | Соответствует нажатию на клавиатуре Enter или Пробел. |
Пауза выполнения команды, предусматривающая необходимость ручного ввода данных мышкой или с клавиатуры. | |
Заменяет обратную косую черту в записях путей доступа к файлам, при использовании путей в макросах. | |
Применяется в локализованных (например, в русскоязычной) версиях AutoCAD. Ставиться перед некоторыми командами на английском языке. | |
@ | Символ последней указанной на экране точки. |
^C^C | Тоже, что двойное нажатие клавиши Esc. Практически все макросы начинаются этими символами. |
* | Префикс (*) служит для бесконечного повторения макроса. Выход из команды осуществляется нажатием клавиши Esc. |
Применяется перед «прозрачной» командой, например, ‘_ОРТО. | |
$, $M= | Специальный символ, предназначенный для ввода выражений, написанных на языке DIESEL. |
^Z | Подавляет автоматическое добавление пробела, появляющееся на конце макроса. |
( ) | В скобках записываются выражения, написанные на языках LISP и DIESEL. А также применяется для записи вложенных выражений калькулятора в полной версии AutoCAD. |
Для чего нужны макросы?
Написание макросов для AutoCAD может быть интересным и увлекательным занятием. Вы можете создавать простые макросы, которые помогут вам экономить время на рутинные операции. Вы можете создать макросы для построения рисунков по нажатию всего одной кнопки. Можно при помощи макроса добавить на чертеж форматку вашего предприятия и стандартные слои, стили и т.п. Или вы можете создать на Инструментальной палитре кнопки для вызова макросов команд, которые вы наиболее часто используете. Да мало ли чего еще. Дерзайте!
Создание, тестирование и отладка макроса в AutoCAD Electrical 2018
Как создавать, тестировать и редактировать макросы в AutoCAD Electrical 2018 смотрите в следующем видео:
AutoCAD. Макросы команд. Часть 1: Создаем свою кнопку
[Общие слова об автоматизации]
Когда об AutoCAD говорят как о «САПР», мне всегда хочется внести уточнение: «голый» AutoCAD это еще не САПР (система автоматизированного проектирования), а универсальная платформа (можно даже сказать «заготовка») для создания САПР под свои нужды. Ведь именно автоматизации в свежеустановленной программе как раз и нет, но зато есть колоссальные возможности по ее внедрению!
И большинство пользователей рано или поздно начинают потихоньку упрощать себе жизнь: создают свои шаблоны, осваивают поля, динамические блоки, наполняют ими палитры, запоминают псевдонимы команд и т.д. Это, можно сказать, «начальный уровень» автоматизации. По другую сторону лежит программирование в чистом виде: код в AutoCAD можно писать на встроенном LISP или VBA, или же вообще создавать внешние плагины и расширения (add-ons) под свои узкоспециализированные нужды. Возможности тут открываются поистине фантастические, но разобраться в этом уже сложнее, все-таки, программирование — это отдельная профессия. И туда мы (пока что) не полезем.
Кстати, стоит отметить, что писать код с нуля нужно далеко не всегда — в сети есть огромное количество различных LISP-ов и аддонов (как платных, так и бесплатных) для решения практически любых задач, главное, хорошо поискать.
[Собственно, о макросах]
Но если до программирования вы пока не доросли, а автоматизировать свою рутину ну очень хочется, советую обратить внимание на макросы. Чтобы не было путаницы, уточним, речь в статье пойдет о макросах (макрокомандах), набранных пользователем в текстовом виде.
Просто еще в программе есть возможность записывать действия пользователя через рекордер операций, и это тоже будет называться «макросом». Но о рекордере операций мы (может быть) напишем отдельную статью, а еще есть «сценарии» и это отдельная тема. В общем, писать и писать мне. =)
Под макросом мы будем понимать последовательность действий с использованием стандартных команд AutoCAD, которую программа будет выполнять по нажатию всего одной кнопки. Например, создание в документе нового слоя с конкретными параметрами или построение прямоугольника с заданными размерами. Эти примеры довольно простые, но зато понятные каждому. В целом же, возможности макросов довольно велики, но мы будем двигаться постепенно.
Перед тем как записать макрос, нужно понять где же мы его разместим? — Речь о той самой кнопке, по нажатию на которую и будет происходить вся магия. Вариантов тут несколько. Я предлагаю рассмотреть два самых популярных — кнопка на панели быстрого доступа и кнопка на палитре. В общем-то именно созданию кнопок и посвящен данный материал. Это вводная статья небольшого цикла о макросах. А учиться писать сами макросы мы будем уже во второй части.
[Создаем кнопку. Способ первый: кнопка на панели быстрого доступа]
Справа на панели быстрого доступа есть маленькая стрелка, нажмем на нее и выберем в выпадающем списке пункт Другие команды:
Другой способ сделать тоже самое, это перейти в ленте на вкладку Управление и нажать на кнопку Пользовательский интерфейс:
В любом случае откроется подобное окно:
Не забудьте нажать на стрелку внизу справа, чтобы оно приобрело более полный вид. Слева мы видим список всех команд. Когда видишь его в первый раз, приходит осознание, что команд в программе намного больше, чем выведено кнопок на панелях. Над списком расположена строка поиска, которая помогает не потеряться. Если поставить курсор на конкретную команду, мы увидим более подробную информацию о ней:
Если внимательно все рассмотреть, становиться понятно, что любая кнопка в ленте это просто ярлычок для соответствующего макроса. Теоретически, можно даже переопределить работу штатных кнопок. Но мы этого делать не будем. А создадим свою команду.
Для этого, нажмем на «звезду с солнышком», заполним поле имя команды и поле макроса. В качестве «теста», сделаем макрос, который запускает команду _audit (ПРОВЕРИТЬ) и сразу исправляет системные ошибки в документе. Название команде можете дать любое, а код макроса будет следующий:
^C^C_audit;_y;
Лучше скопировать его прямо отсюда. Во второй части мы подробно разберем данную строку и вам станет понятно, что именно там записано.
Также, можно сделать какую-то красивую (или не очень) иконку для нашей команды. За основу возьмите любую существующую иконку, затем нажмите Изменить. Откроется довольно примитивный редактор, в котором можно дорисовать что-то к выбранному изображению, или же очистить все и создать свой шедевр с нуля. Не забудьте его сохранить (вас спросят про имя файла, задайте любое). А затем закройте редактор. Картинка в помощь:
Наша команда готова, теперь находим ее в левой части окна адаптации и с зажатой левой клавишей мыши тащим ее на панель быстрого доступа:
Будьте внимательны, после этого в окне адаптации обязательно нужно нажать Ок или Применить. Если просто закрыть окно, изменения не сохранятся!
Кстати, так можно вытащить на панель абсолютно любую команду, которая изначально отсутствует на ленте. Например, здесь мы вытаскивали кнопку регенерации. В ролике по ссылке можно увидеть весь процесс вытаскивания кнопки (начиная с 1:42 по таймкоду). Посмотрите его, если данная статья вызывает затруднения.
Все, кнопка готова, можно пользоваться.
Для пробы откройте какой-нибудь старый (а лучше очень старый) dwg файл и проверьте его на ошибки. Их может 0, а может быть очень много — отчет будет выведен в командной строке.
От штатной команды наш макрос отличается тем, что сразу исправляет ошибки, без дополнительных запросов и действий со стороны пользователя. Советую регулярно выполнять данную команду — она поддерживает «здоровье» вашего файла и по моим наблюдениям снижает количество «глюков», «вылетов» и зависаний программы. Ошибки в процессе работы появляются сами по себе, обычно в процессе копирования больших объемов данных через буфер обмена. Отмечу, что речь идет именно о внутренних системных ошибках файла, а не об ошибках в том, что вы нарисовали =)
[Создаем кнопку. Способ второй: кнопка на палитре]
Инструментальные палитры используются для организации пользовательских панелей инструментов: на них можно размещать блоки, таблицы, выносить стандартные инструменты с дополнительными свойствами, создавать кнопки для вызова LISP приложений и макросов (это-то нам и нужно) и т.д. Вообще, палитры — очень обширная тема, заслуживающая отдельной статьи. Здесь же мы пройдемся по самым «верхам». Итак, открываются палитры сочетанием клавиш CTRL+3
Стандартные палитры нам не особо интересны, поэтому сразу создадим свою. Для этого щелкнем правой кнопкой мыши на левом «корешке» палитры и выберем пункт Создать палитру
Сразу зададим ей имя (например, «Моя первая палитра»).
По-хорошему, надо бы создать для нашей палитры свою группу и поместить ее туда, чтобы можно было скрыть остальные (стандартные) палитры, но в данном случае это необязательно. Если у меня дойдут руки до написания отельной статьи про палитры, там я расскажу об этом.
Теперь нужно добавить на палитру красок, т.е кнопок, на которых мы сможем размещать наши макросы. Для этого снова зайдем в адаптацию команд (как мы делали в начале статьи), но для разнообразия сделаем это другим (уже третьим по счету) способом. Нажмем правой кнопкой мыши в пустом месте нашей палитры, и выберем пункт Адаптация команд:
Откроется уже знакомое нам окно. В нем берем абсолютно любую команду, и удерживая левую кнопку мыши перетаскиваем ее на палитру, после чего отпускам кнопку, закрываем окно адаптации.
На палитру можно поместить любую команду, а потом «переделать» ее до неузнаваемости под собственные нужды. Нам просто была нужна донорская кнопка. Нажмем на ней правой кнопкой мыши и выберем пункт Свойства объекта:
В открывшемся окне изменим название команды, описание (это по желанию) и главное, вставим наш макрос ^C^C_audit;_y; в поле Командная строка:
Самое классное в способе с палитрами, это возможность копировать/вставлять инструменты через контекстное меню. Останется лишь изменить название инструмента, текст макроса и изображение
Это способ позволяет очень быстро создавать свои кнопки, формируя из них целые панели со своими инструментами. Например так выглядит одна из моих палитр с LISP приложениями (название инструментов можно скрывать, оставляя только картинки):
[Чему мы научились]
Мы познакомились с понятием макрокоманды, рассмотрели два способа создания пользовательских кнопок, и теперь полностью готовы к написанию своих макросов. О том, как это делается, читайте в следующей статье. В ней мы разбираем синтаксис макросов и рассматриваем несколько конкретных примеров. Главное, что теперь мы знаем куда помещать эти макросы.
AutoCAD LT
Не удалось извлечь оглавление
Макросы команд
Макросы команд могут содержать команды, специальные символы, выражения DIESEL, или программные коды AutoLISP.
Можно определить и затем назначить макросы команде, изменив свойство «Макрос» команды в редакторе адаптации пользовательского интерфейса (Windows) или диалоговом окне «Адаптация» (Mac OS).
Основные сведения о макросах
Макрос определяет действие, которое должно выполняться в том случае, если используется элемент интерфейса пользователя. Он может быть такой же простой, как команды (например, circle), и включать специальные символы (например, ^C^C).
Например, макрос ^C^C_.circle \1 строит окружность с радиусом, равным 1 единице. Компоненты, определяющие этот макрос, описаны в следующей таблице.
Компоненты макроса CIRCLE
Последовательность специальных управляющих символов
Эта последовательность аналогична двойному нажатию клавиши ESC.
Специальный управляющий символ
Указание того, что выполняемая команда будет использовать глобальное имя команды, а не локализованное.
Специальный управляющий символ
Указание того, что выполняемая команда будет использовать встроенное определение команды, а не повторное определение команды, которая уже существует.
Запуск команды КРУГ.
Оставляет столько же места, сколько при нажатии клавиши ПРОБЕЛ при использовании команды.
Специальный управляющий символ
Формирование паузы для ввода данных пользователем; в данном примере это пауза для центра окружности.
Ответ на запрос радиуса круга; в данном примере это значение 1.
Отмена активной команды
Проверка символов макроса
При написании макросов значимым является каждый символ, даже пробел. Размещение пространства в конце макроса интерпретируется как нажатие клавиши ПРОБЕЛ или ENTER для завершения команды.
Использование в макросах встроенных команд
Команды, которые являются частью AutoCAD или программ на ее основе, должны начинаться с точки (.). Пробел позволяет использовать стандартные команды даже в том случае, если определение команды аннулировано с помощью команды НЕТКОМ. Эти меры предосторожности позволяют избежать непредвиденных результатов при работе макроса, когда он используется на других компьютерах, задействующих тот же файл адаптации (CUI/CUIx).
Международная поддержка для макросов
При первом создании макроса обычно используются имена команд и значения параметров на знакомом языке пользователю. У каждой команды и параметра имеется локальное и глобальное имя, что позволяет использовать макросы на разных языках, поддерживаемых AutoCAD. Поддержка локализованных элементов не требует много дополнительной работы. Перед командой или параметром необходимо просто вставить знак подчеркивания (_). Знак подчеркивания сигнализирует AutoCAD, что имя команды или значение параметра должны быть преобразованы перед выполнением.
Использование режима выбора одного объекта
Метод выбора объектов «Единственный» отменяет повторение запроса о выборе объектов в командной строке. После выбора одного объекта и ответа на другие запросы команда завершается.
Рассмотрим следующий пример:
Этот макрос прерывает текущую команду и вызывает команду СТЕРЕТЬ в режиме выбора одного объекта. После запуска макроса, можно либо выбрать единичный объект, либо щелкнуть в пустой области чертежа и указать секущую рамку/рамку выбора. Все объекты, выбранные с помощью следующих методов стираются.
Повторение команд в макросах
Приведенный ниже пример иллюстрирует повторный вызов команд в макросе:
Завершение макроса
Для завершения некоторых макросов требуются специальные символы. Например, команда ТЕКСТ для завершения требует нажатия клавиши ENTER, а не ПРОБЕЛ, а некоторые другие команды требуют нескольких нажатий клавиши ПРОБЕЛ (или ENTER).
Для решения этих проблем приняты два специальных соглашения.
Сравним следующие макросы:
Первый пример начинается с команды ПСК, так как строка заканчивается пробелом, моделируется нажатие клавиши ПРОБЕЛ. В командной строке появится следующий запрос:
Начало ПСК или [Грань/Именованная/Объект/Предыдущая/Вид/Мир/X/Y/Z/Z ось] :
Второй пример начинается с команды ПСК, имитируется нажатие клавиши ПРОБЕЛ, а затем нажатие клавиши ВВОД, принимается значение по умолчанию («Мир»).
Подавление эхо-вывода и запросов в макросах
AutoCAD
Макросы команд могут содержать команды, специальные символы, выражения DIESEL, или программные коды AutoLISP.
Можно определить и затем назначить макрос для команды путем изменения свойства макроса в редакторе НПИ.
Основные сведения о макросах
Макрос определяет действие, которое должно выполняться в том случае, если используется элемент интерфейса пользователя. Он может быть такой же простой, как команды (например, круг) и включать специальные символы (например, ^ C ^ C).
Например, макрос ^C^C_.circle \1 строит окружность с радиусом, равным 1 единице. Компоненты, определяющие этот макрос, описаны в следующей таблице.
Компоненты макроса CIRCLE
Последовательность специальных управляющих символов
Эта последовательность аналогична двойному нажатию клавиши ESC.
Специальный управляющий символ
Указание того, что выполняемая команда будет использовать глобальное имя команды, а не локализованное.
Специальный управляющий символ
Указание того, что выполняемая команда будет использовать встроенное определение команды, а не повторное определение команды, которая уже существует.
Запуск команды КРУГ.
Оставляет столько же места, сколько при нажатии клавиши ПРОБЕЛ при использовании команды.
Специальный управляющий символ
Формирование паузы для ввода данных пользователем; в данном примере это пауза для центра окружности.
Специальный управляющий символ
Ответ на запрос радиуса круга; в данном примере это значение 1.
Отмена активной команды
Проверка символов макроса
При написании макросов значимым является каждый символ, даже пробел. Размещение пространства в конце макроса интерпретируется как нажатие клавиши ПРОБЕЛ или ENTER для завершения команды.
Использование в макросах встроенных команд
Команды, которые являются частью AutoCAD или программ на ее основе, должны начинаться с точки (.). Пробел позволяет использовать стандартные команды даже в том случае, если определение команды аннулировано с помощью команды НЕТКОМ. Эти меры предосторожности позволяют избежать непредвиденных результатов при работе макроса, когда он используется на других компьютерах, использующих тот же файл адаптации (CUIx).
Использование режима выбора одного объекта
Метод выбора объектов «Единственный» отменяет повторение запроса о выборе объектов в командной строке. После выбора одного объекта и ответа на другие запросы команда завершается.
Рассмотрим следующий пример:
Этот макрос прерывает текущую команду и вызывает команду СТЕРЕТЬ в режиме выбора одного объекта. После запуска макроса, можно либо выбрать единичный объект, либо щелкнуть в пустой области чертежа и указать секущую рамку/рамку выбора. Все объекты, выбранные с помощью следующих методов стираются.
Повторение команд в макросах
Приведенный ниже пример иллюстрирует повторный вызов команд в макросе:
Завершение макроса
Для завершения некоторых макросов требуются специальные символы. Например, команда ТЕКСТ для завершения требует нажатия клавиши ENTER, а не ПРОБЕЛ, а некоторые другие команды требуют нескольких нажатий клавиши ПРОБЕЛ (или ENTER).
Для решения этих проблем приняты два специальных соглашения.
Сравним следующие макросы:
Первый пример начинается с команды ПСК, так как строка заканчивается пробелом, моделируется нажатие клавиши ПРОБЕЛ. В командной строке появится следующий запрос:
Начало ПСК или [Грань/Именованная/Объект/Предыдущая/Вид/Мир/X/Y/Z/Z ось] :
Второй пример начинается с команды ПСК, имитируется нажатие клавиши ПРОБЕЛ, а затем нажатие клавиши ВВОД, принимается значение по умолчанию («Мир»).