Вступ до програмування на мові AutoLISP

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Не вказано

Інформація про роботу

Рік:
2024
Тип роботи:
Лекція
Предмет:
Інші

Частина тексту файла (без зображень, графіків і формул):

Лекція Вступ до програмування на мові AutoLISP. 1. Загальна характеристика AutoLISP. 2. Приклад програми на AutoLISP та її виконання. 3. Загальна характеристика Visual LISP. 4. Завантаження і виконання програм на AutoLISP’і. 1. Загальна характеристика AutoLISP. Мова програмування AutoLISP розвинулася як підмножина мови LISP. Мова LISP була створена на початку 60-х років і спочатку призначалася для використання в системах штучного інтелекту (Artificial Intelligence - AI). На сьогодні існує декілька десятків діалектів мови LISP. Її назва походить від LISt Processor – мова обробки списків, і дійсно – саме списки є основною формою зберігання всіх LISP-даних. Мова AutoLISP пристосована для використання в Автокаді та є власною розробкою компанії Autodesk. Для AutoLISP характерним є широке використання пар дужок ( ) та так званої префіксної форми запису виразів, коли завжди спочатку записується назва функції (операції), а потім аргументи. Наприклад, вираз 1+2 на AutoLISP записується так: (+ 1 2). 2. Приклад програми на AutoLISP та її виконанняДля рисування рівностороннього трикутника зі стороною 95 у довільному заданому користувачем місці рисунка можна використати таку програму: (defun C:TRIAN() (command "LINE" pause "@0,95" "@95<210" "c")) Якщо таку програму записати у командному рядку, то побачимо такий ділог: Command: (defun C:TRIAN() (command "LINE" pause "@0,95" "@95<210" "c"))( C:TRIAN Command: Після цього стане доступною нова додаткова команда Автокада з назвою TRIAN, яка буде будувати вказаний трикутник у вказаному місці. Виконаємо аналіз коду програми і розглянемо її елементи: ( – початок програми; defun – назва функції AutoLISP’а, що походить від слів define function і означає, що далі буде записане означення нової функції на мові AutoLISP; C: – цей префікс перед іменем функції означає, що цю програму можна буде викликати з командного рядка Автокада; набирається для того, щоби макрос можна було викликати безпосередньо з командного рядка – у даному разі набираючи у командному рядку TRIAN(. Якщо C: відсутнє, то функцію TRIAN можна використати, викликаючи її з інших функцій. TRIAN – ім’я функції (назначається програмістом); () – пара дужок, що охоплюють список формальних параметрів та локальних змінних функції (у даному разі цей список є пустим); ( – початок виконуваної частини (“тіла”) функції; command – назва функції AutoLISP’а, що виконує далі описані аргументи як команду AutoCAD’а; "LINE" – ім’я команди, що буде виконуватися; pause – службове зарезервоване слово мови, яке означає, що відповідь на підказку команди LINE дасть користувач Автокада у процесі виконання команди TRIAN; "@0,95" "@95<210" "c" – відповіді на наступні підказки команди LINE; )) – кінець програми. Діалог при виконанні команди TRIAN: Command: trian( LINE Specify first point:(точка вказується користувачем) Specify next point or [Undo]: @0,95 Specify next point or [Undo]: @95<210 Specify next point or [Close/Undo]: c Command: nil Command: Програми, що введені у командному рядку Автокаду, зберігаються тільки до виходу з Автокаду. Тому доцільно записати програму на диск у файл з розширенням *.lsp – наприклад, tr.lsp (). Записану у файл програму можна завантажити, використовуючи меню Tools > Load Application… ( подається команда APPLOAD і появиться вікно з назвою Load/Unload Application для завантаження або вивантаження програм:  Після вибору файла tr.lsp і натиснення кнопки Load у командному рядку появиться повідомлення про результати завантаження програми (у даному разі – про успішне завантаження): Command: _appload tr.lsp successfully loaded. Далі можна подавати нову команду Автокада з назвою TRIAN. 3. Загальна характеристика Visual LISP. Починаючи з ACAD 2000, в ACAD вбудовано модуль інтегрованого середовища розробки (Integrated Development Environment - IDE) з назвою Visual LISP, яке спрощує та прискорює створення та налагоджування програм на AutoLISP (аналогія: Delphi ↔ Object Pascal). Виклик Visual LISP: меню Tools ( AutoLISP ( Visual LISP Editor. В результаті викликається команда VLIDE (Visual LISP IDE) і появляється вікно середовища Visual LISP: . Середовище Visual LISP надає такі основні переваги: кольорове відображення тексту програм, що полегшує читання та налагоджування коду; перевірку синтаксису тексту програми для зменшення кількості помилок; забезпечення переходу по програмній структурі з пошуком відповідних пар дужок, що полегшує редагування коду програми. 4. Завантаження і виконання програм на AutoLISP’і Маючи відкритий файл програми на AutoLISP’і у текстовому редакторі VLISP, ви можете її завантажити (load) і виконати (run). Завантаження (loading) – це процес, яким функції з програмного файла робляться доступними для командного інтерпретатора VLISP’а. Ви можете спробувати це з прикладом програми drawline.lsp. Для завантпаження та виконання програм у вікні текстового редактора Visual LISP треба: Переконатися, що активним є сáме вікно текстового редактора з програмою drawline.lsp. Щоби впевнитися, що це вікно є активним, треба клацнути де-небудь у ньому, щоб активізувати його. Натиснути кнопку  (“Load Active Edit Window”) на панелі інструментів Run , або вибрати Tools ( Load Text in Editor у меню середовища VLISP. VLISP відповість, відображаючи повідомлення у вікні Консолі , яке вказує, що програма завантажена. Виконати функцію drawline введенням у вікні консолі біля підказки _$ імені функції у круглих дужках і натисненням ENTER: _$ (drawline)( Функція drawline вимагає вказання двох точок і потім рисує відрізок прямої між тими почками. Коли drawline очікує на дії користувача Автокада, VLISP передає контроль до AutoCAD для виконання цих дій. Те, що ви побачите далі, залежить від того чи вікно AutoCAD зараз відображається на робочому столі комп’ютера. Якщо AutoCAD уже є на робочому столі, то ви побачите вікно AutoCAD. Але якщо AutoCAD в даний момент є мінімізованим (minimized) на вашому робочому столі, то вікно не може бути відновлене і показане автоматично. Натомість, VLISP залишається видимим і покажчик миші на ньому змінюється на позначення VLISP: . Цей символ показує, що вікно VLISP більше не активне. У цьому разі треба вручну активувати вікно AutoCAD, клацаючи на іконці AutoCAD на панелі задач Windows (task bar). Якщо не виконати п.2, то у відповідь на $ (TR)( у вікні Консолі появиться повідомлення про помилку: ; error: no function definition: TR _$ 4. Відповісти на підказки за допомогою вказання точок у графічному вікні або у командному рядку. Після відповідей на підказки, управління повертається до VLISP і знову видно вікно VLISP. Коли ви вводите команди у вікні Консоль VLISP (VLISP Console window) або урухомлюєте програму, завантажену з текстового редактора, ви можете часто перемикати туди і сюди між VLISP і вікнами AutoCAD. Крім використання стандартних методів Windows перемикання між вікнами, можна активізувати вікно AutoCAD за допомогою вибору Window ( Activate AutoCAD з меню VLISP, або за допомогою клацання на кнопці Activate AutoCAD на панелі інструментів Run. Щоб повернутися до середовища VLISP з AUTOCAD’а, можна ввести vlisp у командному рядку, або вибрати Tools ( AutoLISP (Visual LISP Editor з меню AutoCAD. AutoLISP Developer's Guide > Appendixes > AutoLISP Function Synopsis > Basic Functions > Arithmetic Functions Арифметичні функції AutoLISP Таблиця Опис арифметичних функцій AutoLISP Функція Опис  1 (+ [number number] ...) Додавання. Повертає суму всіх чисел  2 (- [number number] ...) Віднімання. Віднімає друге і наступні числа від першого і повертає різницю  3 (* [number number] ...) Множення. Повертає добуток всіх чисел  4 (/ [number number] ...) Ділення. Ділить перше число на добуток інших чисел і повертає частку  5 (~ (bitwise NOT) int) Returns the bitwise NOT (1's complement) of the argument  6 (1+ (increment) number) Returns the argument increased by 1 (incremented)  7 (1- (decrement) number) Returns the argument reduced by 1 (decremented)  8 (abs number) Повертає абсолютне значення аргумента  9 (atan num1 [num2]) Returns the arctangent of a number in radians  10 (cos ang) Returns the cosine of an angle expressed in radians  11 (exp number) Повертає константу e (real) у степені number (натуральний антилогарифм)  12 (expt base power) Returns a number raised to a specified power  13 (fix number) Returns the conversion of a real into the nearest smaller integer  14 (float number) Returns the conversion of a number into a real  15 (gcd int1 int2) Returns the greatest common denominator of two integers  16 (log number) Повертає натуральний логарифм числа як real  17 (logand [int int ...]) Returns the result of the logical bitwise AND of a list of integers  18 (logior [int int ...])  Returns the result of the logical bitwise inclusive OR of a list of integers  19 (lsh [intnumbits])  Returns the logical bitwise shift of an integer by a specified number of bits  20 (max [number number ...]) Returns the largest of the numbers given  21 (min [number number ...]) Returns the smallest of the numbers given  22 (minusp number) Verifies that a number is negative  23 (rem [num1 num2 ...]) Divides the first number by the second, and returns the remainder  24 (sin ang) Returns the sine of an angle as a real expressed in radians  25 (sqrt number) Повертає квадратний корінь з number як real  26 (zerop number) Verifies that a number evaluates to zero   Примітка. З основної логарифмічної тотожності випливає, що . При a=e (де e-основа натурального логарифма) маємо . Отже , тобто для обчислення можна застосувати такий вираз на AutoLISP: (exp (* (/ 1.0 3) (log x))). У цьому виразі враховано, що результати виразів (/ 1 3) та (/ 1.0 3) відрізняються, наприклад: Command:(/ 1 3) 0 Command:(/ 1.0 3) 0.333333 Command: Приклади визначення  на AutoLISP в Автокаді: а) : Command:(exp (* (/ 1.0 3) (log 8))) 2.0 б) : Command:(exp (* (/ 1.0 3) (log 27))) 3.0 Command: Виклик декількох команд Автокада в одній функції AutoLISP: (defun C:TEST() (command "Line" pause pause "") (command "circle" pause pause))
Антиботан аватар за замовчуванням

01.01.1970 03:01-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!