АвтоЛИСП - реализация языка программированияРефераты >> Программирование и компьютеры >> АвтоЛИСП - реализация языка программирования
4.92.(prompt <msg>)
Эта функция высвечивает на экране в зоне подсказок <msg>/сообщение и вводит ноль. <msg> - строка. В двухэкранной конфигурации АвтоКАДа, функция PROMPT высвечивает <msg> на обоих экранах и поэтому предпочтительна для PRINC. Например:
(prompt "New value:")
на экранах появится "New value:" и вводится ноль.
4.93.(quote <expr>)
Вводит невычисляемое <выражение>. Она также может быть записана следующим образом:
'expr
Например:
(quote a) вводит A
(quote cat) вводит CAT
(quote (a b)) вводит (A B)
'a вводит A
'cat вводит CAT
'(a b) вводит (A B)
4.94. (read <string>)
Эта функция вводит первый перечень или атом, полученные из <строки>. <строка> не должна содержать пробелов. Например:
(read "hello") вводит HELLO
(read "hi") вводит HI
(read "(a)") вводит (A)
4.95.(read-char [<file-desc>])
Эта функция читает единичный символ из буфера ввода клавиатуры или из открытого файла, описанного в <file-desc>. Она вводит (целое число) ASCII код, представляющий возможность прочесть символ.
Если <file-desc> не определен, а в буфере ввода клавиатуры нет символов, READ-CHAR ждет, пока вы что-либо напечатаете с клавиатуры (сопроводжая запись клавишей RETURN !). Например, предположим, что буфер ввода клавиатуры пуст:
(read-char)
будет ждать, чтобы что-то было введено. Если вы напечатаете "A B C", а затем нажмете RETURN, READ-CHAR введет 65 (код ASCII для буквы "A"). На следующие вызовы READ-CHAR введет 66, 67 и 10 (новая линия) соответственно. Если затем будут произведены следующие вызовы READ-CHAR, она опять будет ждать ввод.
4.96. (read-line [<file-desc>])
Эта функция читает строку с клавиатуры или из открытого файла, описанного в <file-desc>. Если конец файла не вычисляется, READ-LINE вводит ноль, в противном случае она вводит строку, которая была прочитана. Предположим, что F - действительный поинтер открытого файла:
(read-line f)
введет следующую входную линию из файла, или ноль, если был достигнут конец файла.
4.97 (redraw [<ename>[<mode>]])
Эффект функции зависит от количества заданных параметров. Если вызов без параметров,
(redraw)
он перерисует весь чертеж, как команда АвтоКАДа REDRAW. Если вызов с параметром имени объекта,
(redraw <ename>)
перечерчен будет выбранный объект. Это полезно при определении объекта на экране после применения GRCLEAR для очистки экрана.
Завершение контроля над перечерчиванием объекта осуществляется вызовом REDRAW с двумя параметрами:
(<ename><mode>)
где <ename> - имя объекта, который будет перечерчен, а <mode> - целое число с одним из следующих значений:
Redraw Mode |
Action/действие |
1 |
Перечертить объект на экране |
2 |
Уничтожить объект (внести пробелы) |
3 |
Высвечивание объекта (если позволяет дисплей) |
4 |
Отмена высвечивания объекта (если позволяет дисплей) |
Если <ename> - заголовок или комплексный объект (Полилиния или Блок с дополнениями), главный объект и все его подобъекты будут отрабатываться, если параметр <mode> положительный. Если параметр <mode> отрицательный, управляемый функцией REDRAW будет только один заголовок. Если ошибок нет, REDRAW всегда вводит ноль.
4.98.(rem <num1><num2> .)
Эта функция делит <num1> на <num2> и вводит остаток (<num1> вычисляет остаток <num2>). <num1> mod <num2> mod - модуль операция вычисления остатка.
REM может применяться с действительными и целыми числами со стандартными правилами перевода. Например:
(rem 42 12) вводит 6
(rem 12.0 16) вводит 12.000000
(rem 60 3) вводит 0
4.99.(repeat <number><expr> .)
В этой функции <число> представляет любое из положительных целых чисел. Функция вычисляет каждое <expr> <number> количество раз и вводит значение последнего выражения. Например, заданы назначения:
(setq a 10)
(setq b 100)
тогда:
(repeat 4
(setq a(+ a 10)))
(setq b(+ b 10)))
) вводит 140
4.100.(reverse <list>)
Эта функция вводит <список> с зарезервированными элементами. Например:
(reverse '((a)b c)) вводит (C B (A))
4.101. (rtos <number>[<precision>])
Эта функция вводит строку, которая является представлением <числа> (действительного) согласно с установками <mode>/ режим и <precision>/точность и переменной, задающей размеры АвтоКАДа DIMZIN. <режим> и <точность> - целые числа, которые выбирают линейные элементы режима и точности. Ниже перечислены обеспеченные значения <режима>:
RTOS Режим |
Редактируемый формат |
1 |
Научный |
2 |
Десятичный |
3 |
Прикладной (футы и десятичные дюймы) |
4 |
Архитектурный (футы и дробные дюймы) |
5 |
Производные дробные элементы |
Параметры <mode> и <precision> соответствуют системе переменных LUNITS и LUPREC АвтоКАДа. Если вы пропускаете параметры, будут применяться текущие установки LUPREC и LUNITS. Примеры RTOS:
(rtos 17.5 1 4) вводит "1.7500E+01"
(rtos 17.5 2 2) вводит "17.50"
(rtos 17.5 3 2) вводит "1'-5.50""
(rtos 17.5 4 2) вводит "1'-5 1/2""
(rtos 17.5 5 2) вводит "17 1/2"
Глава 5. Разработка интерфейсов пользователя
5.1. Меню пользователя
Меню пользователя служит для расширения и дополнения существующего и разработки собственного меню. Меню пользователя задается в файле меню.Файлы меню представляют собой текстовые файлы.