Выбрать главу

T - переменная определена как константа T и имеет тот смысл, что ее значение - не nil.

Целые числа. Автолисп обменивается с Автокадом целыми числами, не превышающими 16 бит. Таким образом, могут быть введены целые числа в интервале от -32768 до +32767.

Вещественные числа. К вещественным относятся числа, содержащие символ десятичной точки. Числа, лежащие в интервале -1...+1 должны обязательно сопровождаться предваряющим нулем. Вещественные числа, не имеющие десятичных долей, должны содержать ноль после десятичной точки. Вследствие этого правильным является представление 0.245 и 34.0, а записи .245 и 34. не всегда будут приняты Автолиспом. Точность вычислений Автолиспа - 14 значащих цифр, хотя в поле командной строки выводится не более 6 знаков.

Строки. Любая последовательность символов, заключенная в кавычки, рассматривается Автолиспом как строковая переменная. Длина одной строки не должна превышать 132 символов, однако использование функции strcat позволяет объединить несколько строк в одну.

Списки. Для идентификации переменных Автолисп широко использует параметры, представленные в виде списков. Координаты точки в предыдущем примере являются списком, определяющим положение точки на плоскости. Соответственно список, определяющий точку в пространстве, выглядит подобно следующему:

(3.62 4.12 2.85).

В одном списке могут содержаться самые различные типы данных - целые и вещественные числа, строки, списки, имена и наборы примитивов, дескрипторы файлов.

Дескрипторы файлов являются строковыми метками, присваиваемыми файлам, открываемым Автолиспом. В следующем примере открывается файл mycalc.res, он становится доступным для чтения функциями Автолиспа, и значение дескриптора файла присваивается переменной file1:

(setq file1 (open “mycalc.res” “r”)).

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

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

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

(setq e1 (entlast)).

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

<Entityname: 23c0508>.

Наборы (группы) примитивов. Средства Автолиспа позволяют аналогично идентифицировать группу примитивов для дальнейшей обработки их программными средствами Выбранной группе присваивается метка. В приводимом ниже примере идентификатор ss2 присваивается группе примитивов, определенных предпоследним выбором:

(setq ss2 (ssget “р”)).

Встроенные и внешние функции - это функции, посредством которых осуществляется обработка данных. Встроенные функции являются средствами самого Автолиспа, внешние представляют собой программы, определенные приложениями.

1.2. Лексические соглашения

Ввод данных в Автолиспе может осуществляться различными способами: с клавиатуры в строку запроса, непосредственным указанием точек на экране, чтением файла ASCII или строковой переменной. В любых случаях должны, выдерживаться следующие соглашения.

• Имена переменных могут содержать любые символы, за исключением (, ) - левой и правой скобок, . - точки, ' - апострофа, “ - кавычек, ; - точки с запятой.

• Следующие символы заканчивают имя переменной или цифровую константу: (, ), ‘, ; , space (cимвoл пpoбeлa), end of file (символ конца файла).

• Выражение может занимать несколько строк.

• Множество пробелов между символами эквивалентно одному пробелу. Пустые строки не обрабатываются Автолиспом, но иногда их целесообразно вставлять для облегчения чтения программ. Табуляция рассматривается Автолиспом как пробел.

• В Автолиспе не имеет значения регистр символов. Для англоязычной версии Автокада имена функций, переменных и параметров можно записывать как в верхнем, так и в нижнем регистре.

• Целочисленные константы могут начинаться со знаков плюс или минус. Автолисп оперирует 32-битовыми числами, т.е. ему доступны целые числа от -2 147 483 648 до +2 147 483 647. Однако, как упоминалось выше, обмен с Автокадом возможен лишь на 16-битовом уровне.