Студопедия — Функции ввода данных
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Функции ввода данных






Функция initget

Задает ограничения последующего ввода данных.

(initget [< флаг> ] [< строка> ])

Вызов функции initget должен предшествовать в программе обращению к функциям getint, getreal, getdist, getangle, getorient, getpoint, getcorner, getkword, поскольку именно для них устанавливаются ограничения.

В частности, initget может сохранять за пользователем возможность нажатия клавиши < Enter> вместо ввода данных (например, для выбора значения по умолчанию), а может и не сохранять. Отсутствие вызова функции initget перед обращением к функциям getint, getreal и т. п. означает, что в этом обращении нет ограничений на ввод данных.

Аргумент < флаг> функции initget — это битовый флаг, который должен быть целым числом (от 0 до 255), являющимся суммой битов с соответствующими каждому из них весовыми значениями (нумеруются по степеням числа 2). Если бит не установлен, то его значение в битовом флаге считается равным нулю.

Бит Назначение
  Не разрешает пустой ввод (пустой ввод— это нажатие только клавиши < Enter>)
  Не разрешает ввод нуля
  Не разрешает ввод отрицательных чисел
  Разрешает указание точек за пределами лимитов, несмотря на значение сис­темной переменной LIMCHECK
  Данный бит не задействован
  Заставляет AutoCAD использовать штриховую линию вместо сплошной для ре­зиновой нити и резиновой рамки; если значение системной переменной POPUPS равно нулю, то AutoCAD игнорирует данный бит
  Запрещает ввод третьей координаты для точки в функции getdist
  Разрешает произвольный ввод в качестве ключевого слова; преобладает над другими битами и ключевыми словами; в частности, данный бит позволяет игно­рировать значение бита 1

 

 

(initget 1) — не разрешен пустой ввод

(initget 3) — не разрешены пустой ввод и ввод нуля (3 = 1+2)

(initget 7) — не разрешены пустой ввод, ввод нуля и ввод отрицательных чисел (7=1+2 + 4)

(initget 6) — разрешен пустой ввод, но не разрешены ввод нуля и ввод от-рицательных чисел (6 = 2 + 4)

Аргумент < строка> функции initget — это строка, ограниченная двойными кавычками, которая задает ключевые слова, являющиеся допустимыми вариантами ввода. В аргументе < строка> различные варианты ключевых слов разделяются одним или большим количеством пробелов, например: " А Б В Г Д". Если пользователю при выборе ключевого слова разрешаются сокращенные варианты, тогда обязательная часть ключевого слова в аргументе < строка> должна быть указана в верхнем регистре, например: " ПЕРесечение". В этом случае к допустимым относятся любые следующие варианты ввода: " ПЕР", " пер", " ПЕРЕ", " пере", " перес", " ПЕРЕСЕЧЕН", " ПЕРЕСЕЧЕНИЕ" (после трех обязательных букв может идти любое количество необязательных букв, вплоть до набора полного ключевого слова; при вводе букв верхний и нижний регистры равноправны); недопустимыми вариантами будут " П", " ПЕ", " п", " пе".

Возможны случаи, когда вариант сокращенного ввода начинается не с первой буквы ключевого слова, например:

(initget " выХод")

Здесь допустимыми вариантами ввода будут " х", " хо", " ход" или " выход", " вых'\ " выхо".

Если ключевое слово в аргументе < строка> указано только в верхнем или только в нижнем регистре, то рядом через запятую можно указать сокращенный вариант: " КРАСНЫЙ, КР" это равносильно записи " КРасный".

В локализованных (т. е. переведенных на другие языки) версиях систем AutoCAD в аргументе < строка> могут присутствовать варианты ввода как для локализованной, так и для английской версий. Тогда в начале должны идти локализованные ключевые слова, а затем их английские аналоги, причем первый английский аналог обязан начинаться с символа подчеркивания. Количество локализованных ключевых слов должно равняться количеству английских ключевых слов. Например: " Прямой Криволинейный _Straight Curved". В ЭТОМ случае даже при вводе русского варианта будет возвращаться английское значение

(" Straight" или " Curved").

Сама функция initget всегда возвращает nil. Однако за ней (не обязательно в следующей строке) должна идти функция, для которой функция initget установила ограничения ввода. В качестве возвращаемого значения эта функция (например, getreal) выдаст допустимое значение, указанное пользователем, причем в случае ввода сокращенного варианта ключевого слова – полный вариант ключевого слова.

Поскольку не все биты функции initget используются со всеми функциями ввода данных, то в табл. разбираются/варианты применения (в случае возможности использования ставится плюс).

Функция getkword

Дает возможность пользователю ввести допустимое ключевое слово.

(getkword [< запрос> ])

Аргумент < запрос> — произвольная текстовая строка.

Возвращаемое значение (ключевое слово или nil) зависит от допустимых ключе- вых слов и битов, установленных соответствующим предварительным вызовом

(initget 1 " Да Нет")

(setq reply (getkword " Преобразовать линию? [Да/Нет]: "))

В этом примере функция getkword ВЫВОДИТ запрос " Преобразовать линию [Да/нет]: " и ожидает ответа пользователя. По окончании ввода пользователей допустимого ответа LISP присваивает переменной reply значение " Да" или " Нет" Если введен недопустимый ответ, то генерируется сообщение об ошибке, и сново повторяется предыдущий запрос.

Пустой ввод не допускается (хотя, изменив значение битового флага, можно было бы разрешить пустой ввод и далее использовать этот вариант для выбора значения по умолчанию).

Функция getint

Дает возможность пользователю ввести целое число (в диапазоне от -32 768 до +32 767) или допустимое ключевое слово.

(getint [< запрос> ])

Аргумент < запрос> — произвольная текстовая строка.

Возвращаемое значение — целое число, ключевое слово или nil. Зависит от допустимых ключевых слов и битов, установленных соответствующим предварительным вызовом функции initget.

(initget 6)

(setq num (getint " Введите номер детали < 1>: "))

 

В этом примере сначала устанавливаются ограничения на будущий ввод целого числа (не допускаются нуль и отрицательные числа). Разрешен пустой ввод Функция getint выводит на экран запрос " Введите номер детали < 1>: Ее вовращаемым значением будет nil, если пользователь ответит простым нажатие клавиши < Enter>, или введенное пользователем допустимое целое число (напрмер, 21). В случае ввода пользователем недопустимого целого числа (например -5) функция getint выдаст сообщение об ошибочном значении и будет ожидать допустимого варианта ввода.

(initget 6 " Левый Правый Нижний Верхний")

(setq num (getint " Номер или

[Левый/Правый/Нижний/Верхний] < 2>: "))

(if (not num) (setq num 1))

В этом примере устанавливаются ограничения на будущий ввод целого числа (не допускаются нуль и отрицательные числа), однако разрешены пустой ввод и ввод одного из четырех ключевых слов. Далее в программе должен идти анализ значения переменной num на nil, на положительное целое число и на ключевые слова (" Левый", " Правый", " Нижний", " Верхний").

 

Функция getreal

Дает возможность пользователю ввести вещественное число или допустимое ключевое слово.

(getreal [< запрос> ])

Аргумент < запрос> — произвольная текстовая строка.

Возвращаемое значение — вещественное число, ключевое слово или nil. Зависит от допустимых ключевых слов и битов, установленных соответствующим предварительным вызовом функции initget. Пример:

(setq х2 (getreal " Вторая координата: "))

Функция getdist

Получает в интерактивном режиме расстояние или просто вещественное число 0 помощью ввода этого числа (на клавиатуре в текущих линейных единицах) или с помощью двух точек (указанных мышью или в координатах на клавиатуре). выбор варианта ввода (числом или точками) предоставляется пользователю.

(getdist [< точка1> ] [< запрос> ])

Типы аргументов: < точка1> — список из двух или трех чисел (координаты двумерной или трехмерной точки), < запрос> — произвольная текстовая строка.

Вариант ввода числа в ответ на запрос функции getdist доступен пользователю независимо от наличия аргумента < точка1>.

Если аргумент < точка1> задан, то расстояние вычисляется либо с помощью ввода числа (на клавиатуре), либо указанием одной точки, до которой будет рассчитано расстояние от точки, заданной аргументом < точка1>.

Если аргумент < точка1> не задан, то расстояние вычисляется либо с помощью ввода числа (на клавиатуре), либо с помощью указания двух точек.

Возвращаемое значение— вещественное число (в текущей форме линейных единиц), ключевое слово или nil. Зависит от допустимых ключевых слов и битов, установленных соответствующим предварительным вызовом функции initget.

Пример:

(setq dse (getdist '(15.0 27.2) " Новое расстояние: "))

 

 

Функция getangle

Получает в интерактивном режиме угол (как вещественное число в радианах) с помощью ввода числа (на клавиатуре в текущих угловых единицах) или с помощью двух точек (уазанных мышью или в координатах на клавиатуре). Выбор варианта ввода (числом или точками) предоставляется пользователю.

(getangle [< точка1> ] [< запрос> ])

Типы аргументов: < точка1> — список из двух или трех чисел (координаты двумерной или трехмерной точки), < запрос> — произвольная текстовая строка.

Возвращаемое значение — вещественное число, ключевое слово или nil. Зависит от допустимых ключевых слов и битов, установленных соответствующим предварительным вызовом функции initget.

Вариант ввода числа в ответ на запрос функции getangle доступен пользователю независимо от наличия аргумента < точка1>.

Если аргумент < точка1> задан, то угол вычисляется либо с помощью ввода числа (на клавиатуре в радианах), либо с помощью указания одной точки (мышью или на клавиатуре). В последнем случае рассчитывается угол, который относительно нулевого направления (обычно это положительное направление оси X) образуе отрезок, идущий из точки < точка1> до точки, указанной пользователем.

Если аргумент < точка1> не задан, то угол вычисляется либо с помощью ввода числа (на клавиатуре в радианах), либо с помощью указания двух точек. В последнем случае рассчитывается угол, который образует отрезок, идущий из первой указанной пользователем точки во вторую.

При вводе угла с помощью числа он принимается с учетом значения системны переменных ANGBASE и ANGDIR; возвращаемое значение учитывает значена ANGBASE и игнорирует значение ANGDIR.

Пример:

(setq ange (getangle '(15.0 27.2) " Угол между ними: "))

 

Функция getpoint

Дает возможность пользователю ввести точку с помощью клавиатуры или мыши. Если задан аргумент < точка1>, то при вводе точки с помощью мыши рисуется резиновая нить, начинающаяся в точке, заданной аргументом < точка1>.

(getpoint [< точка1> ] [< запрос> ])

Типы аргументов: < точка1> — список из двух или трех чисел (координаты двумерной или трехмерной точки), < запрос> — текстовая строка.

Возвращаемое значение— список (координаты трехмерной точки в текущей системе координат), ключевое слово или nil. Зависит от допустимых ключевых слов и битов, установленных соответствующим предварительным вызовом функции initget.

Пример:

(setq pt0 (getpoint '(15.0 27.2) " Следующая точка: "))

Функция getstring

Дает возможность пользователю ввести строку с клавиатуры. Если задан аргумент < флаг> и он отличен от nil, то в строке, вводимой пользователем, допускаются пробелы (признаком конца является нажатие клавиши < Enter>). Если аргумент < флаг> отсутствует или задан равным nil, то признаком конца строки является пробел или нажатие клавиши < Enter>.

(getstring [< флаг> ] [< запрос> ])

Типы аргументов: < флаг> — любое значение (рекомендуется использовать только т или nil), < запрос> — текстовая строка.

Возвращаемое значение— строка (в случае пустого ввода возвращается строка нулевой длины, т. е. " "). Работа функции getstring не связана с предварительным вызовом функции initget.

Пример:

(setq str1 (getstring Т

" Назови объект (пробелы допускаются): "))

 

Функция getcname

Получает имя команды в локализованной или английской версии AutoCAD.

(getcname < имя>)

Тип аргумента: строковый, возвращаемое значение — строка или nil. Примеры (для русской версии):

(getcname " _LINE") возвращает " ОТРЕЗОК"

(getcname " ОТРЕЗОК") возвращает " _LINE"

 

 







Дата добавления: 2014-12-06; просмотров: 955. Нарушение авторских прав; Мы поможем в написании вашей работы!



Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...

Композиция из абстрактных геометрических фигур Данная композиция состоит из линий, штриховки, абстрактных геометрических форм...

Важнейшие способы обработки и анализа рядов динамики Не во всех случаях эмпирические данные рядов динамики позволяют определить тенденцию изменения явления во времени...

ТЕОРЕТИЧЕСКАЯ МЕХАНИКА Статика является частью теоретической механики, изучающей условия, при ко­торых тело находится под действием заданной системы сил...

Понятие метода в психологии. Классификация методов психологии и их характеристика Метод – это путь, способ познания, посредством которого познается предмет науки (С...

ЛЕКАРСТВЕННЫЕ ФОРМЫ ДЛЯ ИНЪЕКЦИЙ К лекарственным формам для инъекций относятся водные, спиртовые и масляные растворы, суспензии, эмульсии, ново­галеновые препараты, жидкие органопрепараты и жидкие экс­тракты, а также порошки и таблетки для имплантации...

Тема 5. Организационная структура управления гостиницей 1. Виды организационно – управленческих структур. 2. Организационно – управленческая структура современного ТГК...

Алгоритм выполнения манипуляции Приемы наружного акушерского исследования. Приемы Леопольда – Левицкого. Цель...

ИГРЫ НА ТАКТИЛЬНОЕ ВЗАИМОДЕЙСТВИЕ Методические рекомендации по проведению игр на тактильное взаимодействие...

Реформы П.А.Столыпина Сегодня уже никто не сомневается в том, что экономическая политика П...

Studopedia.info - Студопедия - 2014-2024 год . (0.008 сек.) русская версия | украинская версия