 |
!-----------!----------------!---------------!
! 0 ! 0.000000 ! 1.570796 !
!-90 ! 1.570796 ! 3.141593 !
!180 ! 3.141593 ! 4.712389 !
! 90 ! 4.712389 ! 0.000000 !
!___________!________________!_______________!
Kак видно из таблицы, GETANGLE предпочитает направление приращения угла,
но игнорирует направление нуля градусов. Так, вы можете использовать
GETANGLE при повороте вставляемого блока, т.к. введение нуля градусов
будет всегда возвращать ноль радиан. С другой стороны, GETORIENT
- 42 -
Руководство пользователя по АВТОЛИСПу
воспринимает как направление нуля градусов, так и направление приращения
угла. Так, вы можете использовать GETORIENT для введения таких углов, как
угол базовой линии для команды ТЕХТ. Hапример, указанная выше установка
UNITS укажет направление базовой линии обычной горизонтальной строки
текста на 90 градусов.
Вы не можете ввести другое LISP-выражение в качестве ответа на запрос
GETORIENT. Смотрите также GETANGLE и INITGET.
4.54 (getpoint [<точка>] [<подсказка>])
Эта функция запрашивает от пользователя точку <точка>. Факультативный
аргумент - базовая [<точка>] и [<подсказка>] - факультативная запись
для высвечивания на экране в качестве подсказки. Вы можете ввести точку
путем указания ее на экране или записав координаты в текущих единицах
измерения. Если присутствуюет аргумент <точка>, AutoCAD нарисует
"резиновую" линию от этой точки до текущего положения курсора.
Hапример:
(setq p (getpoint))
(setq p (getpoint "Where? ")) /"Где? "/
(setq p (getpoint '(1.5 2.0) "Second point: ")) /"Вторая точка: "/
Обычно, GETPOINT возвращает 2-х мерную точку (список из двух действи-
тельных чисел). Используя функцию INIGET для установки контрольного
символа "3-х мерная точка", вы можете заставить GETPOINT возвращать
3-х мерную точку (список из трех действительных чисел).
Вы не можете ввести иное LISP-выражение в ответ на запрос GETPOINT.
Смотрите также GETCORNER и INITGET.
4.55 (getreal [<подсказка>])
Эта функция запрашивает пользователя ввести действительное число и
возвращает его. <Подсказка>-необязательный аргумент для высвечивания на
экране в виде подсказки.
(setq val (getreal))
(setq val (geyrial "Scale factor: ")) /"Масштабный фактор: "/
Вы не можете ввести иное LISP-выражение в ответ на запрос GETREAL.
Смотрите также INITGET.
4.56 (getstring [] [<подсказка>])
Эта функция запрашивает пользователя ввести строковую константу и
возвращает этот константу. Если присутствует и не nil, вводимый
поток может содержать пробелы (и должен, следовательно, оканчиваться
RETURN). Иначе ввод текста (строковой константы) будет прервн пробелом
RETURN. <Подсказка> - факультативный аргумент для высвечивания на
экране в виде подсказки.
Hапример:
(setq s (getstring))
(setq s (getstring "What's your fist name? ")) /"Ваше имя? "/
(setq s (getstring T "What's your full name? ")) /"Ваше полное имя? "/
- 43 -
Руководство пользователя по АВТОЛИСПу
Если пользователь должен ввести одну из специальных опций (ключевых
слов), вместо функции GETSTRING, может быть использована функция GETWORD,
описанная выше.
Вы не можете ввести иное LISP-выражение как ответ на запрос GETSTRING.
4.57 (getvar <имя переменной>)
Эта функция возвращает значение системной переменной AutoCADa. Имя
переменной должно быть заключено в кавычки ("имя"). Hапример,
предположим, что радиус сопряжения был недавно определен в 0.25 единиц:
(getvar "FILLETRAD") возвращает 0.250000
Если вы используете GETVAR с неизвестным AutoCADу именем переменной,
функция возвратит nil. Список текущих системных переменных AutoCADa
можно найти в приложении А руководства по AutoCADу.
Смотрите также функцию SETVAR.
4.58 (graphscr)
Эта функция переключает экран с текстового режима в графический в
системах с одним экраном (также как функциональная клавиша "FLIP SCREEN"
в AutoCADe). GRAPHSCR всегда возвращает nil. Смотрите так же функцию
TEXTSCR.
4.59 (if <текст-выражение> <выражение-тогда> [<выражение-иначе>])
Эта функция исполняет выражение по условию. Если <тест-выражение>
не nil, тогда исполняется <выражение-тогда>, иначе исполняется
<выражение-иначе>. Последнее выражение <выражение-иначе> не обязательно.
IF возвыращает значение выбранного выражения; если <выражение-иначе>
отсутствует и <тест-выражение> nil, IF возвращает nil. Hапример:
(if (= 1 3) "Yes!!" "no.") возвращает "no."
(if (= 2 (+ 1 1) "Yes!!") возвращает "Yes!!"
(if (= 2 (+ 3 4) "Yes!!") возвращает nil
lsp-4-6
4.60 (initget [<биты>] [<строка>])
Эта функция устанавливает различные опции для использования
последующими функциями GETxxx (кроме GETSTRING и GETVAR). INITGET всегда
возвращает nil. <Биты> - факультативный аргумент - целое число со
следующими значениями:
- 44 -
Руководство пользователя по АВТОЛИСПу
!~~~~~~~~~~~!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!
!INITGET ! значения !
! биты ! !
!~~~~~~~~~~~!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!
! 1 ! запрещен ввод недействительных чисел !
! 2 ! запрещен ввод 0 !
! 4 ! запрещен ввод отрицательных чисел !
! 8 ! не контролируются пределы, даже при !
! ! включенном LIMCHECK !
! 16 ! возвращение 3-х мерных точек, !
! ! предпочтительнее, чем 2-х мерных точек.!
! 32 ! применяется пунктир для изображения !
! ! "резиновой" линии или рамки. !
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Биты могут добавляться вместе в любой комбинации, чтобы сформировать
значение от 0 до 63. (Последующие версии AutoLISPа могут включать дополни-
тельные контрольные биты, так что избегайте указывать незадокументированные
биты).
Если пользователь, вводя забыл одно или более заданных условий (так,
например, ввел 0, когда ввод 0 запрещен), AutoCAD высветит ошибку и
предложит пользователю повторить ввод. Hапример:
(initget (+ 1 2 4))
(setq age (getint "How old are you? ")) /"Сколько Вам лет? "/
спросит возраст пользователя, автоматически повторяя запрос, если
пользователь ответил пустым вводом, ввел отрицательное или нулевое
значение.Eсли нет аргумента <биты>, подразумевается 0 (нет условий).
Специальные контрольные значения обеспечиваются теми GETxxx функциями,
для которых они имеют смысл, как показано в следующей таблице.
Kонтрольный бит со значением 32 воспринимается функциями GETPOINT, GETCORNER,
GETDIST, GETANGLE и GETORIENT когда присутствует аргумент <базовая точка>,
и устанавливает режим использования пунктирной (или по-другому подсвеченной)
линии в качестве "резиновой" линии или рамки, отрисовываемых курсором от
заданной базовой точки. Если системная переменная POPUPS равна нулю, указывая
тем самым, что драйвер дисплея не поддерживает улучшенный интерфейс пользова-
теля, то AutoCAD проигнорирует этот бит функции INITGET.
!~~~~~~~~~~~!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!
! Функции ! Kонтрольные биты INITGET воспринимаются !
!-----------!---------!-----!--------!-----------!----------!------------!
! ! не ! не ! не ! нет !3-х мерные!использо- !
! ! пустой ! 0 !отрицат.! пределов !точки !вать пунктир!
!-----------!---------!-----!--------!-----------!----------!------------!
!GETINT ! * ! * ! * ! ! ! !
!-----------!---------!-----!--------!-----------!----------!------------!
!GETREAL ! * ! * ! * ! ! ! !
!-----------!---------!-----!--------!-----------!----------!------------!
!GETDIST ! * ! * ! * ! ! ! * !
!-----------!---------!-----!--------!-----------!----------!------------!
!GETANGL ! * ! * ! ! ! ! * !
!-----------!---------!-----!--------!-----------!----------!------------!
!GETORIENT ! * ! * ! ! ! ! * !
!-----------!---------!-----!--------!-----------!----------!------------!
 |
|