Программирование в AutoCAD 1

Содержание

Слайд 2

Предметные области Электрические схемы Машиностроительные детали и узлы Схемы трубопроводов и

Предметные области

Электрические схемы
Машиностроительные детали и узлы
Схемы трубопроводов и сантехнических коммуникаций
Архитектурные чертежи
Карты

и планы
Лекала выкроек
Слайд 3

Преимущества библиотек блоков Возможность масштабирования и поворота при вставке Возможность редактирования

Преимущества библиотек блоков

Возможность масштабирования и поворота при вставке
Возможность редактирования блоков
Возможность дополнения

блоков текстовыми пояснениями
Экономия времени
Уменьшение размеров файлов чертежей
Слайд 4

Недостатки библиотек блоков Громоздкость при больших элементных базах (крепёжные изделия) Невозможность параметрического изменения геометрии блоков

Недостатки библиотек блоков

Громоздкость при больших элементных базах (крепёжные изделия)
Невозможность параметрического изменения

геометрии блоков
Слайд 5

AutoLisp позволяет: Использовать переменные и выражения при ответах на запросы AutoCAD

AutoLisp позволяет:

Использовать переменные и выражения при ответах на запросы AutoCAD
Создавать функции

и новые команды AutoCAD
Осуществлять программный доступ к информации о чертеже
Программно управлять графическим экраном AutoCAD
Слайд 6

Особенности функциональных алгоритмических языков Все вычисления, преобразования и управление в программе

Особенности функциональных алгоритмических языков

Все вычисления, преобразования и управление в программе осуществляются

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

Примеры выражений LISP (+ 4 7.8) (setq a b) (command “rectang” pause “@15,25”)

Примеры выражений LISP

(+ 4 7.8)
(setq a b)
(command “rectang” pause “@15,25”)

Слайд 8

Морфология алгоритмического языка LISP

Морфология алгоритмического языка LISP

Слайд 9

Переменные Объекты, имеющие уникальное имя и способные в себе хранить некоторые значения

Переменные

Объекты, имеющие уникальное имя и способные в себе хранить некоторые значения

Слайд 10

Имя переменной Набор любых алфавитно-цифровых символов кроме: . , « ;

Имя переменной

Набор любых алфавитно-цифровых символов кроме: . , « ; ( )

пробел - = + * / < > ? ‘ ! \ ^
Нельзя использовать в качестве имени переменной зарезервированное имя
Большие и малые буквы не различаются
Не следует начинать имя с цифры
Слайд 11

Тип переменной В программе на LISP нет блока описания переменных Операции,

Тип переменной

В программе на LISP нет блока описания переменных
Операции, производимые с

переменной, определяются её типом
Тип переменной зависит от данного, которое в ней хранится
Переменной отводится место в момент присвоения первого значения
(type имя) – функция для определения типа
Слайд 12

Строковый - STR Ряд алфавитно-цифровых символов, заключенный в двойные кавычки “From

Строковый - STR

Ряд алфавитно-цифровых символов, заключенный в двойные кавычки “From point” “Radius

<12.7>” “105”
Строковое данное может содержать управляющие символы, например: \n – перевод строки \t – табуляция \\ - \
Слайд 13

Тип переменной Целый (INT) – положительные и отрицательные целые числа Действительный

Тип переменной

Целый (INT) – положительные и отрицательные целые числа
Действительный (REAL) –

положительные и отрицательные числа с точкой
Дескрипторы файлов (FILE) – имена открытых файлов, например: “acad.lsp” “drawing.dwg”
Слайд 14

Тип переменной Встроенные функции (SUBR) – внутренние адреса встроенных функций Символы

Тип переменной

Встроенные функции (SUBR) – внутренние адреса встроенных функций
Символы (SYM) –

адреса, указатели, ссылки. Символами часто называют переменные

имя

адрес

значение

Слайд 15

Тип переменной Имя примитива (ENAME) – восьмизначное шестнадцатеричное число, используемое для

Тип переменной

Имя примитива (ENAME) – восьмизначное шестнадцатеричное число, используемое для получения

информации о примитиве
Наборы выбора AutoCAD (PICKSET) – группа из одного или нескольких примитивов
Слайд 16

Константы Числовые 1.2 356 28.34Е-14 Строковые “From point” Логические NIL T

Константы

Числовые 1.2 356 28.34Е-14
Строковые “From point”
Логические NIL T

Слайд 17

Атомы Константы и переменные простых типов (перечисленные выше) являются неделимыми элементами

Атомы

Константы и переменные простых типов (перечисленные выше) являются неделимыми элементами языка

LISP и называются атомами
(atom имя) (setq a 2) (atom nil) (atom a) T T
Слайд 18

Тип переменной Список (LIST) – набор разделенных пробелами атомов или/и списков,

Тип переменной

Список (LIST) – набор разделенных пробелами атомов или/и списков, заключённый

в круглые скобки
() или nil – пустой список
(12.6 45.7 77.8)
(“cat” “mouse”)
(1 (12 6 18) “cat” (“mouse”))
(* 2 5) nil (nil) (()) ((0)) ()
Слайд 19

Точка (X Y Z) (12 34) (10 12.5 36) Отрезок (P1

Точка (X Y Z) (12 34) (10 12.5 36)
Отрезок
(P1 P2) ((X1 Y1

Z1) (X2 Y2 Z2))
Сколько элементов в списке?
((1 2 3))
((a b) c (d (e)))
(a ((())) nil nil)
((((a (b (c d) e) f) h ((i (j) k) l) m) n))
Слайд 20

Структура языка LISP

Структура языка LISP

Слайд 21

Выражения LISP (S – выражения) Любая конструкция является символьным выражением (S

Выражения LISP (S – выражения)

Любая конструкция является символьным выражением (S

– выражением) и записывается в виде списка
Первый элемент списка – имя функции. Исключение – список-данное, например, координата точки: (x y z)
Следующие элементы списка – вычисляемые аргументы функции
Слайд 22

Результат вычисления S-выражения Результат вычисления константы – она сама Результат вычисления

Результат вычисления S-выражения

Результат вычисления константы – она сама
Результат вычисления переменной –

её текущее значение
Результат вычисления списка определяется функцией
Тип S-выражения определяется типом результата его вычисления
Слайд 23

Для правильного использования функции надо знать: Назначение функции Имя функции Количество

Для правильного использования функции надо знать:

Назначение функции
Имя функции
Количество аргументов
Тип каждого аргумента
Тип

получаемого результата
Слайд 24

Вложенность (* 4 (- 3 (* 2 5 )) (+ (- 4 1) (* 5 2))

Вложенность

(* 4 (- 3 (* 2 5 ))
(+ (- 4 1)

(* 5 2))
Слайд 25

Ввод S-выражения в AutoCAD: Command: (+ 5 3) 8 Command: (setq

Ввод S-выражения в AutoCAD:

Command: (+ 5 3)
8
Command: (setq a 9

b 9.0)
9.0
Command: (type a)
INT
Command: (type b)
REAL
Слайд 26

Универсальная функция QUOTE Не вычисляя, возвращает аргумент в качестве результата Используется,

Универсальная функция QUOTE

Не вычисляя, возвращает аргумент в качестве результата
Используется, когда аргументом

является список-данное
(quote (10 15 31)) → (10 15 31)
(quote 15) → 15
(quote b) → b
(quote (+ 2 3)) → (+ 2 3)
Слайд 27

Универсальная функция QUOTE ‘ – сокращенная запись функции ‘ (+ 2

Универсальная функция QUOTE

‘ – сокращенная запись функции
‘ (+ 2 3) →

(+ 2 3)
‘(a b ‘(c d)) → (a b ‘(c d))
(quote ‘b) → (quote b)
(quote quote) → quote
Слайд 28

Универсальная функция EVAL Обращение к вычислителю (eval (quote (quote quote))) →quote

Универсальная функция EVAL

Обращение к вычислителю
(eval (quote (quote quote))) →quote
(quote (eval (quote

(quote quote))))

(eval (quote (quote quote)))
Слайд 29

Псевдофункция SETQ Служит для связывания переменной с её значением и типом

Псевдофункция SETQ

Служит для связывания переменной с её значением и типом
(setq имя_пер1

S-выр1
[имя_пер2 S-выр2…
имя_перN S-вырN]) → S-вырN
Переменная остаётся связанной до следующей связи или до конца сеанса работы в AutoCAD
Слайд 30

Псевдофункция SETQ (setq a 5.0) → 5.0 (setq b 123 c

Псевдофункция SETQ

(setq a 5.0) → 5.0
(setq b 123
c 4.7)

→ 4.7
!a → 5.0 !b → 123 !c → 4.7 !d → nil
(setq a 5.0 b 12 c 2) → 2
(/ (+ a b) c) → 8.5
(setq a 5) → 5
(/ (+ a b) c) → 8
Слайд 31

Псевдофункция SET Служит для связывания переменной с её значением и типом

Псевдофункция SET

Служит для связывания переменной с её значением и типом
(set S-выр_имя1

S-выр1
[S-выр_имя2 S-выр2…
S-выр_имяN S-вырN]) → S-вырN
Переменная остаётся связанной до следующей связи или до конца сеанса работы в AutoCAD
Слайд 32

Переопределение базовых функций (setq angle S-выр) (setq t S-выр) Функция вывода

Переопределение базовых функций

(setq angle S-выр) (setq t S-выр)
Функция вывода списка зарезервированных

имён
(atoms-family 0) – вывод полного списка
(atoms-family 0 (список имен)) – проверка
(atoms-family 0 (“setq” “+” “xy”)) →
(setq + nil)
Слайд 33

Косвенная связь переменных (setq b 123 INT c 4.7 REAL d

Косвенная связь переменных

(setq b 123 INT
c 4.7 REAL
d (quote

a)) SYM
Появляется переменная с именем a, но не связанная со значением
!d → a !a → nil
(set d (+ b c)) → 127.7
!d → a !a → 127.7
Слайд 34

AutoLISP - калькулятор Command: _circle Specify center point for circle or

AutoLISP - калькулятор

Command: _circle Specify center point for circle or [3P/2P/Ttr

(tan tan radius)]:
Specify radius of circle or [Diameter]:
(/ 84.56 2.74)
30.8613
(setq rad (/ 25.6 3.4))
Specify radius of circle or [Diameter]: !rad
Слайд 35

Функция связи с AutoCAD Функция выполняет команды AutoCAD (command [аргум1]… [аргумN])

Функция связи с AutoCAD

Функция выполняет команды AutoCAD
(command [аргум1]… [аргумN]) → nil
Аргументы
Имена

команд и опций – STR
Координаты точек – LIST
Длины, расстояния – REAL
“” -
PAUSE