Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
METHOD / Основы САПР / AutoLISP2006.doc
Скачиваний:
84
Добавлен:
05.03.2016
Размер:
1.04 Mб
Скачать

3. Функции присвоения

Переменные в языке AutoLISP не надо описывать - тип данных определяется автоматически при присвоении переменной значения.

Все переменные - динамические, т.е. присваивая значение симво­лу (группе символов - идентификатору имени переменной), мы автоматически создаем перемен­ную. Перед созданием переменной (а точнее, перед тем. как отвести ей место в памяти) AutoLISP автоматически определяет, какого она будет типа.

Само присвоение переменным значений осуществляется в языке AutoLISP не так как в других языках программирования. Для присвоения переменным значений установлена специальная функция SFTQ. Что такое "SET" - понятно: "положить", а что означает "setq"? Буква "q" в функции присвоения "setq" происходит от сокращения английского слова "quote" - буквально "цитировать". Функция SETQ является мнемоничес­ким сокращением английского словосочетания "SET by Quote" - "присвоить по ссылке".

(setq x 3.2) - переменной x присваивается значение 3.2

(setq z1 “Formula”) - переменной z1 присваивается значение строковой

константы “Formula”.

(setq zx z1) - переменной zx присваивается значение переменной z1

объявленной ранее.

Следует обратить внимание, что выражения языка всегда отделяются друг от друга не менее чем одним ПРОБЕЛОМ.

В языке AutoLisp также есть специальная функция (quote) которая возвращает само выражение фактически не выполняя его. Эта функция имеет сокращенную запись: выражение. Например, если переменные x1 и x2 не определены ранее, то выполнение функции

(setq x12 (+ x1 x2))

вызовет сообщение о ошибке: error: bad argument type . . . . . . . . . .*Cancel*.

Однако функция

(setq x12 (+ x1 x2))

присвоит (копирует) в переменную x12 набор символов (+ x1 x2).

ВНИМАНИЕ! Стандарт языка AutoLisp обязывает заключать все программные функции (в данном случае функция присвоения SETQ) в скобки. Поэтому все выражения языка, все программные файлы должны содержать парное число скобок.

После того как вы присвоили некоторой переменной значение, вы можете в любое время посмотреть ее значение с командной строки п. AutoCAD. Восклица­тельный знак перед именем переменнойй (например:!X1), введенный с командной строки, сообщает интерпретатору языка что следующий за ним идентификатор X1 является име­нем переменной AutoLISP.

4. Обзор функций языка AutoLISP

Следующим шагом в освоении языка AutoLISP является ознакомление с набором стандартных (их ещё иногда называют встроенными) функциями. Перечень функций с краткой характеристикой, приведен в Приложении А Дадим их обзор группируя их по функциональному признаку.

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

AutoLISP включает в себя достаточно широкий набор встроенных функций, позволяющих производить математические вычисления. Аргументами математических функций являются числа, которые могут быть как целыми, так и вещественными. Если все аргументы - целые числа, то результат операции также будет целым числом. Если хотя бы один аргумент вещественное число, то результат будет вещественным числом. Следует отметить, что число 2.0 например, считается вещественным, поскольку к нем присутствует десятичная точка. К математическим функциям относятся:

(+ число1 число2 . . . )

Возвращает СУММУ всех аргументов число1 число2 . . . (аргументы записываются через пробел).

(- число1 число2 . . . )

Вычитает число2 из числа1 и возвращает разность. Если задано более ДВУХ аргументов, то из первого аргумента вычитается сумма всех остальных. Если задан один аргумент, то он вычитается из нуля (инвертируется его знак).

(* число1 число2 . . .)

Возвращает произведение всех чисел.

(/ число1 число2 . . .)

Делит число1 на число2 и возвращает частное. Если задано более двух аргументов, то первое число делится на произведение всех остальных.

Следует учитывать одну особенность.

(setq a1 (/ 20 3)) - переменной a1 будет присвоено значение целого числа 6 т.к. 20 и 3 - целые числа.

(setq a1 (/ 20 3.0)) - переменной a1 будет присвоено значение действительного числа 6.6667 т.к. 3.0 - действительное число.

(atan число1 [число2])

Если не задано число2, то возвращает арктангенс переменной числа1 в радианах, область допустимых значений -{ pi, -pi} Если заданы оба числа, то возвращается арктангенс переменной число1/число2 в радианах. Если число2 - нуль то в зависимости от знака переменной число1 + или -1.5707 радиан.

(abs число)

Вычисление абсолютного значения действительного или целого числа.

(cos число)

Возвращает значение косинуса угла, заданного числом в радианах.

(ехр число)

Вычисляет значение экcпотенциальной функции с основанием е и аргументом равным числу.

(gcd число1 число2 . . .)

Возвращает наибольший общий делитель (Greatest Common Denominator) указанных аргументов - числа1 и числа2.

(log число)

Возвращает натуральный логарифм числа.

(max число1 число2 . . .)

Возвращает наибольшее из чисел.

(min число1 число2 . . .)

Возвращает наименьшее из чисел.

(rеm число l числом 2)

Возвращает остаток от деления переменной число 1 на переменную число2.

(sin число)

Возвращает значение синуса угла, заданного числом в радианах.

(sqrt число)

Извлекает квадратный корень из числа. Возвращаемый результат всегда вещественный.

Соседние файлы в папке Основы САПР