Володимир Світло У AutoCAD LT можна програмувати

AutoCAD LT призначений для виконання плоских двовимірних креслень і в цій галузі мало чим відрізняється від свого старшого брата – повної версії AutoCAD. Але це правильно тільки якщо порівнювати "голий" AutoCAD, не навантажений додатковими програмами. І ось тут повна версія має незаперечну перевагу, оскільки вона підтримує деякі мови програмування, основною з яких є LISP. Можна не бути програмістом, але використовувати у своїй роботі численні платні та безкоштовні програми, які значно прискорюють та спрощують креслярську роботу.

Але і AutoCAD LT не такий безнадійний, як здається на перший погляд. У ньому також можна програмувати! Можна створити собі купу корисних саморобних інструментів, кожен з яких видасть комбінацію команд, що найчастіше зустрічається у вашій роботі. Можна навіть змусити AutoCAD викреслити цілу деталь у напівавтоматичному режимі. У Help AutoCAD є таке поняття – Menu Macros. "Macro defines the action to be executed when a user chooses the menu item" "Макрос визначає дію, яке виконується, коли користувач вибирає пункт меню". І користувач може сам поставити макрос.

Це і є макрос. На малюнку показано діалогове вікно Customize з цим макросом.

світло

Для цього напишіть рядок будь-якого тексту, візьміть нову команду і вкажіть текст. Далі можна редагувати копію цього тексту на новому місці та таким чином швидко отримувати нові тексти з готовими налаштуваннями.

Можна написати безліч макросів, які значно полегшать та прискорять рутинну роботу. Ось кілька прикладів:

    Макрос, що дозволяє один за одним збільшити (або зменшити) величину об'єктів при запиті об'єкта требадвічі клацнути по ньому або захопити рамкою, і об'єкт збільшиться вдвічі. Вихід з команди з Esc. Якщо треба змінити величину масштабування, цифра 2 оперативно замінюється іншу, це справа 3-5 секунд.

Макрос, що дозволяє повертати об'єкти на заданий кут один за одним Кут тут 90град, він замінюється на потрібний

Макрос, що змінює колір атрибута блоку Тут показаний колір №2 тобто жовтий, він змінюється потрібний.

Макрос змінює кут повороту атрибута. Втім спробуйте створити його самостійно, за аналогією з попереднім.

Ви вже, мабуть, здогадалися, що знак (;) – це еквівалент Enter, а знак (\) означає ручне введення даних. Знак (_) перед ім'ям команди дозволяє вводити команду англійською мовою в локалізованій (українській) версії, а знак (*) повторює команду до нескінченності, доки не буде натиснуто клавішу Esc. Знаки ^C^C мають стояти майже завжди, вони відчищають командний рядок від залишків попередніх дій. Регістр, тобто які літери використовуються - великі або великі, значення не має.

Можна вставляти блоки з даного креслення, так і з бібліотеки блоків, для цього використовується команда _-Insert (з мінусом). Комбінуючи вставки блоків та різні команди малювання та редагування, можна створити досить складні макроси для напівавтоматичного креслення окремих фігур.

Все, що показано вище, можна назвати міні-програмами, написаними мовою Menu Macros. Але AutoCAD LT розуміє й іншу, цілком справжню мову програмування, вона називається DIESEL. Вираз DIESEL можна дізнатися за характерним знаком американського долара $. У повній версії AutoCAD є меню Express, а в ньому команда Laycur, що переводить об'єкти в поточний шар (Layer). Ось аналог цієї команди дляAutoCAD LT:

Вираз витягує ім'я поточного Layer, яке зберігається в системній змінній Clayer. А отже, таким чином можна дістати ім'я будь-якої системної змінної та підставити її – програмно! - У потрібне місце макросу. Є такі системні змінні, які можуть бути призначені користувачем. Це Useri1-Useri5, Userr1-Userr5 та Users1-Users5. У перших п'яти можна призначити та зберегти цілі числа, у других п'яти – речові числа, і в останній п'ятірці – текстові рядки. Якщо створити серію кнопок, і на одній написати на іншій, а на третій, то їх можна використовувати як кнопки завдання масштабу 1:100, 1:50, 1:20 і так далі. Натискання на таку кнопку призначить системної змінної Useri1 значення, наприклад, 100, яке далі функцією Getvar можна вивести, наприклад, при вставці блоку, коли AutoCAD запросить масштаб по осі Х. При цьому блок, що вставляється, збільшиться в 100 разів відносно його бібліотечної величини. Отже, у бібліотеці блоків замість серії блоків, призначених для різних масштабів, достатньо мати лише один, розрахований на масштаб 1:1. За допомогою команди Modemacro та виразу DIESEL можна розмістити у статусному рядку відомості про стан деяких системних змінних, наприклад, відстежувати ім'я поточного текстового або розмірного стилю. Крім згаданої вище функції Getvar, у DIESEL є ще 26 функцій, за допомогою яких можна створювати різні програми.

Є ще одна мова програмування. Це Script. З його допомогою можна створити слайд-фільм, можна запускати AutoCAD із заздалегідь заданими налаштуваннями, зі своїм Prifile, наприклад. Script може завантажити в AutoCAD серію розмірних стилів, що є альтернативою шаблонів.

Крім програмних шляхів прискорення роботи є й інші способи, що чисто креслярські, абокомбіновані: макрос+спеціальний блок. Наприклад, можна зробити так, щоб блок, що вставляється, розривав під собою лінію. Або навпаки, не розрізаючи її, приховував ділянку лінії своїм тілом. Подібні могли б у деяких випадках значно прискорити креслення.

У AutoCAD LT можна програмувати! (ІІ частина)

Багатьом користувачам хотілося б, щоб текст розміщувався у спеціалізованому шарі без перемикання до нього. Інакше кажучи, поточним має залишатися той робочий шар, у якому зараз малюються об'єкти. Але якщо знадобилося ввести текст, то останній автоматично потрапляв би в призначений для нього шар. Будемо рахувати; що шар з ім'ям "Текст" у вашому кресленні вже створено. Таким чином, напрошуються два шляхи вирішення задачі.

Перший шлях:

  • 1. Тимчасово викликати та зробити поточним шар "Текст"
  • 2. Друкувати потрібний текст
  • 3. Повернути колишній шар як поточний
Другий шлях:

  • 1. Надрукувати текст у поточному (робочому) шарі
  • 2. Перекласти готовий текст на шар із ім'ям "Текст"
Перший шлях пов'язаний із запам'ятовуванням імені того (робочого) шару, який був поточним на момент, що передує виклику шару "Текст". Це завдання легко вирішується у повній версії AutoCAD за допомогою функції LISP Setq, яка може бути введена у макро. У AutoCAD LT, як відомо; LISP не працює. Тому ми використовуємо другий шлях, і результат буде таким самим. Що таке шар? Це одна з властивостей об'єкта; таке ж, як колір або тип лінії. Потрібно знайти команду; яка б змінювала властивості об'єкта з командного рядка без виклику діалогового вікна. Ім'я потрібної нам команди – CHANGE. (Змінити)

Примітка: У AutoCAD багато команд. Не всі з них виведені на кнопки або в меню, що падають. Навіть у здавалося б, повномуСписок команд, який можна побачити в діалоговому вікні Customize (див. вкладку Commands, пункт All Commands), перераховані далеко не всі команди. Складаючи макроси, ви часто будете заглядати в HELP. Поступово ви дізнаєтеся багато нових, раніше невідомих команд та системних змінних.

Чи не так, це не здається важким? Потрібно спочатку відпрацювати послідовність виконання команд вручну, з командного рядка, водночас ведучи запис на папері, а потім точно переписати цю послідовність у відповідне поле вікна Customize. Але не все виходить одразу. Спробуйте створити аналогічну команду для однорядкового тексту, і відразу виникнуть труднощі. Для самостійної роботи підкажу: замість команди Dtext слід використовувати команду -ТЕХТ (з мінусом). Знову рідкісна команда і працює незвично. Зате кожен рядок при цьому є самостійним, не пов'язаним внутрішніми узами з іншими рядками об'єктом, і його можна перевести в потрібний шар, перш ніж буде написано наступний рядок. І ще, не забудьте про зірочку на початку макросу, яка дозволить працювати команді рядок за рядком.

Однією з найпривабливіших команд була б така, яка зможе створювати розміри в спеціалізованому шарі. Давайте її зробимо. Скопіюйте на нову кнопку створений вище макрос для багаторядкового тексту. Замініть _Мтехт на _Dimlinear і додайте ще одну зворотну косу межу (адже для проставлення лінійного розміру потрібно тричі клацнути лівою кнопкою мишки). Замініть ім'я шару на "Розміри"

Кнопка готова. Залишається намалювати на ній красиву картинку і визначити потрібну панель.