Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ГГМ / AutoLISP / Программирование на AutoLISP в AutoCAD.ppt
Скачиваний:
35
Добавлен:
03.03.2016
Размер:
115.2 Кб
Скачать

Программирование на AutoLISP в

AutoCAD.

Основным средством разработки приложений в AutoCAD является язык программирования AutoLISP — вариант языка LISP, в который добавлены функции доступа к объектам и таблицам AutoCAD. Основой языка LISP является работа со списками, которые могут иметь произвольную длину и включать элементы разной природы (числа, текстовые строки и т. д.). В то же время в языке пользователю доступны обычные арифметические вычисления, логические операции, работа с файлами и т. д.

LISP

Присваивание

(setq <символ> <выражение> …..< символ > < выражение >)

Создание списка

(list <элемент> < элемент > …..< элемент >) Список констант

‘(<константа> < константа > …< константа >) Создание точечной пары

(cons <первый элемент > <второй элемент >)

Извлечение из списков (setq a ‘(5 3 8 4 9))

(car a) возвратит 5 (cadr a) возвратит 3 (caddr a) возвратит 8 (nth 3 a) возвратит 4 (nth 4 a) возвратит 9

(cdr a) возвратит (3 8 4 9)

(setq b (cons 1 2)) возвратит (1 . 2) (car b) возвратит 1

(cdr b) возвратит 2

Поиск подсписка

(setq a (list (cons 0 10) (cons 1 20))) (assoc 0 a) возвратит (0 . 10) Подстановка

(subst <что> <вместо чего> <куда>) (subst (cons 1 50) (assoc 1 a) a) возвратит ((0 . 10) (1 . 50))

Математические функции

(+ n1 n2 …) n1+n2+… (- n1 n2 …) n1-n2-… (* n1 n2 …) n1*n2*… (/ n1 n2 …) n1/(n2*…) (max n1 n2 …)

(min n1 n2 …) (1+ n) n+1 (1- n) n-1

(exp x) e в степени x (expt x y) x в степени y

И еще

abs sqrt log sin cos tan atan …..

Управление вычислениями (if <условие> <выражения>)

(if < условие > < выражение 1> < выражение 2>) (progn < выражение 1 > < выражение 2 > …)

(while < условие > … выражения …)

(repeat <число повторений> …выражения…) Условия (возвращают T или nil)

(= a1 a2) (/= a1 a2) (< a1 a2)

(<= a1 a2) (> a1 a2) (>= a1 a2)

Логические операции (and a1 a2)

(or a1 a2) (not a1)

(and (> a b) (= c 6))

В AutoCAD входит интерпретатор AutoLISP,

начинающий работать, если в командной строке в ответ на стандартную подсказку Команда: (Command:) ввести открывающую скобку "(". В этот момент AutoCAD настраивается на приём и вычисление выражения AutoLISP, которое должно иметь форму списка, т. е. начинаться открывающей скобкой и заканчиваться закрывающей скобкой — ")", а элементы списка должны отделяться друг от друга пробелами.

Например, для получения суммы трех чисел можно ввести:

1.Сommand: (+ 223.75 16.002 89.899) 329.651

2. Command: Line first point 5,5

next point (list (* x 2) (* x 5))

3.Command: (setq T1(list 28 (* m n )))

4.Command: Line

fisrt point !T1

next point (list ( - (car T1) S) (+ (cadr T1) m))

Соседние файлы в папке AutoLISP