АвтоЛИСП - реализация языка программирования
Рефераты >> Программирование и компьютеры >> АвтоЛИСП - реализация языка программирования

Для пользователя эта функция приостанавливает ввод строки и вводит эту строку. Если <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

         


Страница: