Использование переменных
Если используются переменная, то ее значение м.б. число, NIL, строка текста, список и т.п. Для этой цели при множестве псевдофункций, которые помимо того, что имеют значения, обладают эффектом образования связи между символом и его значением. К псевдофункциям относятся SET, SETQ, (SETQ <символ_1> <S выражение> [<символ_2> <S выражение>]) символы – это переменные, S_выражения — символьные выражения.
Действия: выполняются действие заданное S_выражением и результатом, возвращаемый им, становится текущим значением символа. Функция возвращает на экран результат последнего выражения.
(SETQ A 2.5)
(SETQ A 2 B 5 C 6) на экран выводится только 6, а заносится значение и в А и в В.
Если в функции SETQ, какой либо переменной присваивается значение, то его можно использовать из командной строки графического редактора системы AtuCad.
(SET <символ> <S-выражение>)
Если перед сиволом поставить апостроф (равносильно quote), то переменной будет занесно выражение, а не результат его.
(SET `A (+ 2 3))-(+ 2 3)
Использование SET позволить проверить более сложные операции, связанные с косвенным присвоением символа.
(SET A 10)
(SET `B `A)-> B<>10, B=A.
Для ввода значений переменных используются функции семейства GET.
(GETINT [<подсказка>])
Создают паузу в программе и ждет ввода целого числа.
(GETINT “n введите базовую точку:”)
(GETREAL [<подсказка>])
Для ввода действительного числа
(GETSRING [<элемент>][<подсказка>])
функция делает паузу и ожидает ввода строки символов, определенной параметром элемента. Если он присутствует и не обращен в NIL, то окончание операции будет при нажатии ENTER. Если же элемент отсутствует, то окончание операции – первый пробел после строки символов.
(GETPOINT [<точка>][<подсказка>]) функция ввода точки.
Создает паузу и ожидает ввода точки, которая может быть введена путем указания на экране или с клавиатуры. Если аргумент <точка> задан, то при перемещении курсора на экране будет тянуться «резиновая» нить:
(GETDIST [<точка>][<точка>]) создает паузу и ожидает ввода расстояния, которое может быть задано тремя способами:
1. как действительное число с клавиатуры
2. путем задания 2-х точек
3. путем указания 2-ой точки при наличии аргумента <точка>
Возвращает результат – действительное число.
Пример: функция построения окружности
(DEFUN ORR () ; функция построения окружности
(SETQ C (GETPOINT “n Enter center”)) ; задание центра
(SETQ R (GETDIST “n Radius”)) ; задание радиуса
(COMMAND “CIRCLE” C R “ ”) ; построение окружности
)
(GETANGLE [<точка>][<текст>])
ожидает ввода точки или 2-х точек (если задан аргумент <точка>. Результат – действительное число, равное углу)
(SETQ P1 `(12 15) P2 `(13 40))
(SETQ A (GETANGLE P1 P2))
(GETCORNER [<точка>][<подсказка>])
действие аналогично, но на экране будет высвечен прямоугольник:
(GETORIENT) функция определяет направление оси начала отсчета угла (горизонталь или вертикаль).