Мы принимаем к оплате:

«Подарочный сертификат» от нашего Учебного Центра – это лучший подарок для тех, кто Вам дорог! Оплате обучение и подарите Вашим родным и близким обучение по любому из курсов!!!

«Сертификат на повторное обучение» дает возможность повторно пройти обучение в нашем Учебном Центре со скидкой 1000 рублей!

А также:


Макросы в автокаде


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; в поле Командная  строка:

Нажимаем Ок, и макросом можно пользоваться! Для удобства можно нажать правой кнопкой на картинку инструмента и выбрать другое изображение. Я заранее нарисовал в графическом редакторе .png картинку размером 64×64 пикселя с крестиком. Но можно поставить туда все что угодно, хоть свое фото.

Самое классное в способе с палитрами, это возможность копировать/вставлять инструменты через контекстное меню. Останется лишь изменить название инструмента, текст макроса и изображение

Это способ позволяет очень быстро создавать свои кнопки, формируя из них целые панели со своими инструментами. Например так выглядит одна из моих палитр с LISP приложениями (название инструментов можно скрывать, оставляя только картинки):

[Чему мы научились]

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

Простые макросы в AutoCAD

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

Предлагаю научиться создавать макросы, при этом не сильно вникая в их структуру и синтаксис.

Задача — сделать собственную панель инструментов, на панель поместить кнопки и назначить кнопкам макросы. На самом деле все это делается достаточно просто и быстро, давайте попробуем.

  • Запускаем команду настройки пользовательского интерфейса НПИ (_CUI) на ленте Управление

  • В левой верхней части окна адаптации ищем дерево Панели и щелкаем правой кнопкой, выбираем команду Новая панель инструментов

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

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

  • Назначаем макрос на кнопку в строке Макросы. Для примера пишем строку

^C^C-слой;создать;Стены;цвет;Красный;;;

Данный макрос создает в файле новый слой с именем Стены и назначает ему красный цвет

  • Выходим из окна адаптации и видим появившуюся панель на рабочем пространстве (если панель не появилась, то воспользуйтесь командой -ПАНЕЛЬ для её отображения). Тестируем созданную кнопку — при нажатии в чертеже должен создаться слой.
  • Аналогичным способом можно добавить сколько угодно панелей и кнопок

Какие еще макросы можно создать. Несколько примеров:

  • Создание отрезка с одновременным созданием нового слоя

^C^C-слой;создать;Трубы;цвет;синий;;;отрезок;endpoint;

Макрос создает новый слой Трубы, назначает ему синий цвет и запускает команду создания отрезка на этом слое

  • Вставка конкретного блока

^C^C_-вставить;рамка.dwg;

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

  • Установка радиуса сопряжения

^C^Cсопряжение;Д;0;

Макрос устанавливает радиус сопряжения равным нулю

AutoCAD. Макросы команд. Часть 2: Синтаксис макросов

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

[Синтаксис макросов]

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

^C^C Имитирует двойное нажатие на клавишу ESC (т.к. перед выполнением команды желательно убедиться, что в данный момент не выполняется другая команда) – это стандартное начало любого макроса. Символы С вводятся строго в англ. раскладке!
^Q Подавление всех запросов и подсказок в командной строке — «тихий» режим работы макроса.
* Звездочка перед началом макроса запускает его циклический повтор. Макрос будет выполняться снова и снова до тех пор, пока не будет вызвана другая команда или не будет нажат Esc.
Дефис перед именем команды подавляет открытие диалоговых окон. Например, команда СЛОЙ открывает палитру Диспетчера свойств слоев, а запись -СЛОЙ запустит команду в текстовом режиме с возможностью выбора опций в командной строке.
_ Нижнее подчеркивание указывает на то, что будет использоваться глобальное, а не локализованное имя команды. Подчеркивание необходимо использовать перед названием любой команды и опции на английском языке, если вы работаете в локализованной версии AutoCAD. Имя команды на русском языке, например: КРУГ (вместо _circle), подчеркивания не требует.
. Точка — это указание того, что выполняемая команда будет использовать встроенное определение команды, а не повторное определение команды. Применяется для вызова именно «родной» команды AutoCAD в ситуациях, когда есть риск, что пользователь создал свою команду (обычно через LISP) с тем же именем, т.е. переопределил команду.
; Точка с запятой имитирует нажатие клавиши Enter (Ввод). «Пробел» в тексте макроса делает тоже самое (поэтому не ставьте пробелы в тексте макроса просто так), но точка с запятой нагляднее, когда требуется имитировать несколько нажатий Enter подряд — эти символы видны и легче посчитать.
\ Обратная косая черта — это символ, который формирует в макросе паузу для ввода данных пользователем (например, указание точки на экране или ввод числа в командной строке)
@ Данный символ вставляется, если нужно ввести относительные координаты точки. Координаты вводят в последовательности X,Y,Z через запятую, например @10,20 — это смещение на 10 по оси X и на 20 по оси Y относительно предыдущей указанной точки (если Z=0, его не указывают). Тогда как абсолютные координаты, например: 10,20 отсчитываются от нуля системы координат.
_p Используется внутри какой-либо команды для выбора предыдущей группы выделения.
_l Используется внтури какой-либо команды для выбора последнего созданного объекта.
 _single  Переключает команду в режим выбора одного объекта: после указания объекта на экране с помощью клика мыши или рамки выделения, команда переходит к исполнению, не требуя подтверждения выбора.

Этот список далеко не полный. Более подробную информацию вы можете найти в старой, но неустаревающей и очень интересной книге В. Света «AutoCAD. Язык макрокоманд и создание кнопок»,  а также в справке по программе. 

[Общий принцип создания макросов]

Нажатие на любую иконку, расположенную в ленте или на панели инструментов, запускает ту или иную команду. У каждой команды AutoCAD есть имя (оно выводится в командной строке), и вместо нажатия на иконку в графическом интерфейсе можно запустить команду, введя ее имя с клавиатуры, после чего следует нажать Enter. После запуска команда последовательно выдает запросы, отвечая на которые (с помощью мыши и/или клавиатуры) пользователь добивается от программы нужного поведения. Также, почти у всех команд есть опции. Они выводятся рядом с запросами и позволяют запустить альтернативные сценарии поведения команды. Более подробно я рассказывал об этом в видеоуроке про командную строку - посмотрите его, если не до конца понимаете о чем идет речь.

По сути, опытный пользователь программы отличается от новичка именно тем, что наизусть знает основные опции (ветвления) команд, с которыми работает, и пробегается по тем или иным «маршрутам» не задумываясь.

Нажмем на иконку прямоугольника в ленте и перенесем свой взгляд в командную строку:

Глобальное имя команды _rectang отображается сверху, а в строке ниже отображается локализованное ПРЯМОУГОЛЬНИК. Дальше идет запрос на указание точки первого угла и доступные опции — они отображаются в квадратных скобках [ ].

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

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

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

[Несколько примеров]

Как мы выяснили выше, работа с любой командой в Автокаде — это своего рода маршрут из точки A (запуск команды) в точку Б (получение результата), с развилками в виде опций команды. Давайте разберем несколько примеров, чтобы лучше прочувствовать эту концепцию.

ПОСТРОЕНИЕ ПРЯМОУГОЛЬНИКА ПО РАЗМЕРАМ

Например, для команды прямоугольник последовательности могут быть следующие:

Мы вызвали команду, сделали первый шаг, а дальше пошло ветвление. Запишем «нижний маршрут» в виде макроса. Для наглядности и лучшего понимания сделаем это двумя способами: с использованием глобальных имен (первая строка) и локализованных (вторая):

^C^C_.rectang;\_d;\\@1,1; ^C^Cпрямоугольник;\р;\\@1,1;

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

А теперь давайте разберемся, что здесь к чему, на примере англоязычного макроса:

^C^C Стандартное начало любого макроса, которое прерывает выполнение любой другой команды, что эквивалентно двойному нажатию ESC
_.rectang Вызываем глобальное не переопределенное имя команды. В русской версии макроса тут просто указано имя команды прямоугольник
; Имитируем нажатие Enter после ввода имени команды
\ Ставим макрос на паузу, чтобы пользователь указал точку для первого угла прямоугольника
_d Ключ для выбора опции _d на английском (т.к опция называется Dimensions) или р (опция Размеры) на русском
\\ Два пользовательских ввода подряд, т.к. команда запросит сначала длину, а затем ширину нашего прямоугольника
@1,1 Указание точки в относительных координатах. Добавлено для того, чтобы прямоугольник строился вверх и вправо относительно первого угла; по аналогии @-1, -1 — ориентация прямоугольника вниз и влево
; Подтверждение завершения ввода координат

Данный макрос здорово экономит время при создании прямоугольников — нам не нужно заходить в опцию Размеры вначале и выбирать ориентацию прямоугольника в конце.

ПРОВЕРКА ФАЙЛА НА ОШИБКИ

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

^C^C_.audit;_y;

  • сначала мы вызываем команду _.audit
  • подтверждаем ее вызов ;
  • после чего на запрос «Исправить все обнаруженные ошибки?» отвечаем ключом _y (от английского yes — «да»)
  • подтверждаем ключ, поставив после него ;

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

Русская версия данного макроса выглядит так: ^C^Спроверить;д;

СОЗДАНИЕ НОВОГО СЛОЯ

Для создания слоя нам нужно воспользоваться командой СЛОЙ, но если просто ввести имя данной команды в командную строку, откроется окно Диспетчера свойств слоев. А это нам не подходит, т.к. нажимать какие-либо кнопки в окнах через макросы не получится. Нам нужны опции команд и их ключи. Для этого поставим перед именем команды дефис, получится -СЛОЙ и нажмем Enter, теперь команда запустится в текстовом режиме:

Макрос создания слоя с именем Примечание будет таким:

^C^C-слой;с;Примечание;;

  • вызываем команду в текстовом режиме -слой
  • далее нас интересует опция Создать - пишем с;
  • после чего программа предложит ввести имя нового слоя, которое придется подтвердить точкой с запятой, в макросе это будет выглядеть так Примечание; 
  • затем все вернется к состоянию как на картинке выше, ставим еще одну ; чтобы завершить команду.

Мы просто создали слой, не указывая каких-либо его параметров, кроме имени. Теперь давайте немного усложним данный макрос: укажем цвет слоя и сделаем макрос «тихим», чтобы в процессе работы макроса в командой строке не выводилась никакая информация:

^C^C^Q-слой;с;Примечание;ц;30;;;

Начало у макроса точно такое же, мы разобрали его выше. Но появилось одно отличие: перед вызовом команды стоит префикс ^Q  — так мы отключаем вывод запросов в командной строке. Советую сначала отладить макрос, а уже потом переводить его в тихий режим, т.к оповещения командной строки помогают отлавливать свои ошибки.

  • далее мы выбираем опцию Цвет — ц;
  • указываем номер цвета — 30;
  • после чего еще раз ставим ; (чтобы согласиться с тем, что это будет цвет именно нашего слоя, т.к. для запроса «Список имен слоев для присвоения цвета» имя нашего слоя предлагается в треугольных скобках как значение по умолчанию)
  • чтобы завершить работу команды, добавляем еще одну ;

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

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

А пока попрактикуйтесь с этими примерами и попробуйте написать что-то свое. Успехов!

AutoCAD. Макросы команд. Часть 3: Примеры полезных макросов

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

[Выноска с фиксированным содержимым]

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

*^C^C_mleader;\\Ваш текст; *^C^Cмвыноска;\\Ваш текст;

Сначала мы вызвали команду, после чего идут два пользовательских ввода — первый для указания положения стрелки и второй для указания положения текста, а далее написан сам текст. Как обычно — вы сами вольны выбирать какой из вариантов из вариантов использовать: русско- или англо- язычный. Вместо Ваш текст можно поместить любое нужное слово или фразу. Можно создать любое количество таких макросов с разным содержимым в виде кнопок на палитре. У меня таких сделано 6.

Обратите внимание на звездочку * в начале кода — ее наличие заставляется макрос работать в цикле, то есть повторяться до тех пор, пока пользователь не нажмет Esc. Выглядит это вот так:

Если циклическое воспроизведение не требуется, просто сотрите звездочку * в начале. Внешний вид выноски будет определяться текущим стилем мультивыносок и текущим слоем.

Подробности для энтузиастов:

Слой созданной выноски можно было бы задать в свойствах инструмента палитры. Но тут в Автокаде обнаружилась недоработка: если макрос работает в цикле, то первый объект будет создаваться в слое, указанном в свойствах инструмента палитры, а вот последующие уже в текущем слое, что довольно странно и неудобно. Возможно, такой баг есть именно в моей версии и в будущем его исправят. При желании, обойти это можно немного усложнив наш макрос. Для этого используем команду _change (ИЗМЕНИТЬ), и с ее помощью будем изменять слой последнего созданного объекта (это как раз наша выноска) на нужный. В примере целевой слой — это Примечание. Вот что получилось:

*^C^C_mleader;\\Ваш текст;_change;_l;;_p;_la;Примечание;;

Вне зависимости от того, какой слой выбран текущим, выноска сразу после создания будет перенесена в слой Примечание. Разберемся как это работает:

  • сначала создается выноска (она создается в текущем слое)
  • вызываем команду Изменить _change;
  • команда запрашивает объекты для изменения, мы указываем ключ _l; (от слова last — «последний») — будет выбран последний созданный объект и завершаем запрос выбора еще одной точкой с запятой ;
  • дальше мы указываем, что хотим работать со свойствами объекта - ключ _p; (от слова properties — «свойства»)
  • изменить нужно слой - ключ _la; (от layer — «слой»)
  • указываем имя нужного слоя и подтверждаем его Примечание; (для корректной работы макроса, указанный слой должен существовать в вашем чертеже)
  • ставим еще одну точку с запятой, чтобы завершить работу команды ;

Русский вариант я писать не буду. Если хотите, попробуйте сделать это самостоятельно. Запустите команду Изменить и внимательно отвечайте на запросы, записывая в блокноте нужные ключи команд и ответы — так пишется любой макрос.

Единственное, что у меня так и не получилось сделать, это поместить в такой макрос двухстрочный текст для выноски. Если у вас такое получится, дайте знать, как вы этого добились? Управляющие коды \p или \n (которые работают в Мтексте) здесь просто прерывают макрос. Для себя я подобную задачу решил через LISP. 

[Текст вперед - штриховки назад]

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

Обычно этот способ применяют для одиночных объектов — например, если нужно перенести на передний план Маскировку.

Но если объектов сотни, то вручную оправлять все штриховки на задний план, а тексты на передний — дело хлопотное. Более опытные пользователи используют для этой цели Быстрый выбор, но есть более удобный способ: разработчики позаботились о нас и добавили 2 специальные команды! Итак, встречайте:

_TEXTTOFRONT (ТЕКСТПЕРПЛАН) — команда позволяет перенести на передний план объекты определенного типа (тексты, размеры или выноски), либо вообще все текстовые объекты, о чем выводится соответствующий запрос:

Обратите внимание, что опция расположена в треугольных скобках — это значит, что она является значением по умолчанию. Поэтому в макросе ключ с нам не пригодится, мы просто добавим еще одну ; (ввод) после вызова команды. Получится _texttofront;;

_HATCHTOBACK (русского аналога я не нашел) — команда переносит все штриховки в документе на задний план. Опций у данной команды нет.

Из этих команд можно «состряпать» замечательный макрос:

^C^C_hatchtoback;_texttofront;;_regenall

Обычно я запускаю его по завершении работы над проектом. Регенерация в конце добавлена на всякий случай. В командной строке выводится отчет о работе макроса (если он вам не нужен, добавьте в начало макроса ключ ^Q):

Напомню, что порядок прорисовки никак не связан со списком слоев — слои автоматически сортируются в алфавитном порядке.

[Горизонтальная и вертикальная прямая]

Ну и под конец, совсем простенький макрос для быстрого рисования прямых — горизонтальной и вертикальной. Команда _xline (ПРЯМАЯ) обычно запрашивает первую точку, после чего проводит через эту точку бесконечную прямую, которая будет вращаться до тех пор, пока не указана вторая точка. Кнопка вызова данной команды находится здесь:

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

^C^C_xline;_h; ^C^C_xline;_v;

Макрос с ключом _h запускает отрисовку горизонтальной прямой, а макрос с ключом _v — вертикальной. Русский вариант макроса будет таким:

^C^Cпрямая;г; ^C^Cпрямая;в;

Кстати, вот так выглядит моя основная рабочая палитра:

На ней размещены макросы, динамические блоки и кнопки запуска LISP-приложений. Все «авторские» иконки — это .png изображения размером 64×64 пикселя (их можно нарисовать в Paint или в Фотошопе).

Пожалуй, это все, что я хотел рассказать про макрокоманды в AutoCAD! Надеюсь, что проработав материал данного цикла статей, вы научились писать макросы под свои нужды. Сложного в этом ничего нет, требуется лишь терпение, внимательность и понимание основных принципов, которые я (хочется верить) изложил довольно подробно.

P.S. Как обычно, распространение ссылки на данный материал очень приветствуется. Буду очень рад вашим комментариям!


Смотрите также



Компьютерные курсы по направлениям:

Для начинающих


A

Компьютер для начинающих: Word, Excel, Access и другие программы!

Графические пакеты


B

Популярные пакеты Adobe Photoshop, CorelDraw, ArchiCAD, AutoCAD и другие!

WEB + анимация


C

Курсы по созданию сайтов, WEB-дизайну и крутой анимации в Adobe Flash!

Бухгалтерия + делопроизводство

Сетевые технологии


E

Курсы сборки ПК, системных администраторов и защиты информации!