Page 22 - AutoLISP и Visual LISP в среде AutoCAD
P. 22
2.8. СОЗДАНИЕ СОБСТВЕННЫХ ФУНКЦИЙ
2.8.1. ИСПОЛЬЗОВАНИЕ ФУНКЦИИ DEFUN
Функция пользователя может быть создана при помощи функции defun
(define function). В общем, виде она записывается следующим образом:
(defun имя_функции (a a a … a / v v v … v )
n
3
n
3
2
1
1
2
(выражение_1 )
(выражение_2 )
………………..
(выражение_n )
),
где a 1 a 2 a … a n – аргументы функции; v 1 v 2 v … v n – локальные
3
3
переменные.
Правила наименования функций те же, что и наименования переменных.
Если имя функции пользователя совпадает с именем встроенной функции
AutoLisp, то это приводит к переопределению последней.
Пользовательские функции не могут иметь произвольное число
аргументов, как встроенные функции "+", "-" и др. Вызов пользовательской
функции с неверным числом аргументов приводит к ошибке «слишком мало
аргументов» или «слишком много аргументов».
Пользовательская функция возвращает результат вычисления последнего
списка, находящегося внутри defun.
Не имеет значения, в какой последовательности в тексте lsp-файла идут
описания функций defun. AutoLisp перед выполнением программы
загружает в память все функции.
Пример:
(defun tan (x) ; Определим функцию вычисления тангенса
( / (sin x) (cos x) ) ; Функция tan возвращает результат
) ; вычисления последнего списка
21