Введение в Автолисп | страница 18
, выполняет операцию, в противном случае выполняет альтернативную операцию. Если альтернативная операция опущена или условие есть nil, функция возвращает nil.
В тех случаях, когда программируемой операции предшествуют некоторые предварительные выкладки, внутри функции if используется функция progn, позволяющая совершить последовательно несколько операций и подчиняющаяся формату (progn [выражение]...).
4.3. Использование ключевых слов
Ключевые слова в Автолиспе обычно используются для указания пути при ветвлении программ или подтверждения сделанного выбора. Осуществляются эти операции функцией getkword, записываемой в формате
(getkword [запрос])
и обязательно сопровождаемой функцией initget.
(initget [биты] [строка]). Функция устанавливает ключевые слова и режимы, в которых работают функции группы getxxx, кроме getstring и getvar. В практике часто используется конструкция:
(initget 1 “Yes No”).
Режимы работы функций определяются битовыми значениями, которые накладывают определенные ограничения на ввод данных. В частности, использованный в примере бит 1 запрещает пустой ввод, бит 2 - ввод нулевого значения, бит 4 - ввод отрицательных чисел.
Аргумент строка содержит ключевые слова, подчиняющиеся определенным правилам. Каждое ключевое слово должно отделяться от других одним или несколькими пробелами, из доступных символов содержать только буквы, цифры и дефис, при ответах на запрос можно использовать аббревиатуры, если ключевые слова записаны одним из двух следующих способов:
• подобно тому, как это осуществляется при вводе в командную строку опций Автокада, часть ключевого слова записывается прописными буквами, которые и используются в качестве аббревиатуры, а остальная часть - строчными буквами (например: “LType”, “eXit”, “toP”);
• ключевое слово записывается прописными буквами, а сразу следом за ним через запятую записывается аббревиатура (например: “LTYPE,LT” ). Некоторое неудобство этого способа заключается в том, что аббревиатура обязательно должна включать первую букву слова. Поэтому запись “EXIT,X” не будет восприниматься.
Если ключевые слова записаны целиком прописными или строчными буквами, они должны вводиться полностью.
Функция initget в некоторых случаях может использоваться и без ключевых слов, ограничивая возможности ошибочного ввода данных. Подобные ситуации нередко возникают как следствие невнимательности или усталости оператора. В следующем примере запрещен пустой ввод, ввод нулевого или отрицательного значения: