АвтоЛИСП - реализация языка программированияРефераты >> Программирование и компьютеры >> АвтоЛИСП - реализация языка программирования
Для пользователя эта функция приостанавливает ввод строки и вводит эту строку. Если <cr> задан и он не равен нулю, вводимая строка может содержать пробелы (и должна поэтому быть завершена нажатием RETURN). В других случаях ввод строки завершается пробелом или RETURN. <Подсказка> - произвольная строка, появляющаяся на экране в качестве подсказки. Например:
(setq s (getstring))
(setq s (getstring "What's your first name?"))
(setq s (getstring T "What's your full name?"))
Если ввод пользователя должен быть одной из нескольких опций (ключевых слов), вместо GETSTRING может применяться описанная ранее функция GETKWORD.
Вы не можете ввести другое выражение ЛИСПа в качестве ответа на требование GETSTRING.
4.57.(getvar <varname>)
Эта функция отыскивает значения системных переменных АвтоКАДа. Имя переменной дожно быть заключено в двойные кавычки "". Например, предположим, что самый последний из определенных нами радиус округления был 0.25 единиц:
(getvar "FILLETRAD") введет 0.250000
Список текущих системных переменных АвтоКАДа можно найти в приложениях А книги пользователя АвтоКАДа. См. также функцию SETVAR.
4.58.(graphscr)
Функция GRAPHSCR переключается с текстового экрана на графический в одно-экранных системах (типа функциональной клавиши "Flip screen" в АвтоКАДе). GRAPHSCR всегда вводит ноль. См. также функцию TEXTSCR.
4.59.(if <testexpr><thenexpr><elseexpr>)
Эта функция условно вычисляет выражения. Если <testexpr> не ноль, тогда она вычисляет <thenexpr>, в противном случае она вычисляет <elseexpr>. Последнее выражение (<elseexpr>) - необязательное. IF вводит значение выбранного выражения; если <elseexpr> пропущено, а <testexpr> равно нулю, IF вводит ноль. Например:
(if (=1 3)"Yes!!" "No") вводит "No"
(if (=2 (+1 1)) "Yes!!") вводит "Yes!!"
(if (=2 (+3 4)) "Yes!!") вводит nil
4.60.(initget [<bits>][<string>])
Эта функция создает различные опции для дальнейшего использования их функцией GETxxx (кроме GETSTRING и GETVAR). INTGET всегда вводит ноль. Необязательный параметр <bits> - целое число со следующими значениями:
INITGET Bits |
Значение |
1 |
не допускает нулевой ввод |
2 |
не допускает нулевые значения |
4 |
не допускает отрицательных значений |
8 |
не проверяет границы,даже если действует limcheck |
16 |
вводит точки 3D раньше,чем точки 2D |
Биты могут складываться вместе в любой комбинации для создания значений от 0 до 31. Если пользователь при вводе определенных режимов ошибается (например, вводит нулевое значение, когда оно не допускается), АвтоКАД выдаст на экран сообщение и попросит пользователя повторить попытку. Например:
(initget (+ 1 2 4))
(setq age (getint "How old are you?") : возраст "Сколько вам лет?"
получит возраст пользователя, автоматически повторив попытку, если пользователь введет ноль, отрицательное число или нулевое значение. Если параметр <int> не задан, предполагается ноль (нет режимов). Специальные контрольные значения принимаются на обработку только теми функциями GETxxx, для которых они имеют смысл (как показано в таблице):
Функция |
INITGET control bits honored (принимаемые на обработку контрольные байты функции INITGET) | ||||
No null |
No zerro |
No neg. |
No limits |
3D hoints | |
GETINT |
· |
· |
· | ||
GETREAL |
· |
· |
· | ||
GETDIST |
· |
· |
· | ||
GETANGLE |
· |
· |
· | ||
GETORIENT |
· |
· |
· | ||
GETPOINT |
· |
· |
· | ||
GETCORNER |
· |
· |
· | ||
GETKWORD |
· | ||||
GETSTRING | |||||
GETVAR |