Тема 2.3 Специальные функции AutoLISP
ЛЕКЦИЯ №21
Функция type позволяет определять тип символа AutoLISP:
(type <символ>)
Тип аргумента: <символ> (имя функции или переменной).
Если аргумент <символ> не является именем функции или переменной с присвоенным значением, то возвращается nil. Другие варианты возвращаемого значения:
· ENAME — имя примитива AutoCAD;
· EXRXSUBR — имя приложения ObjectARX;
· FILE — указатель (дескриптор) файла;
· INT — целое число;
· LIST — список;
· PAGETB — таблица диспетчера страничной организации памяти;
· PICKSET — набор выбора;
· REAL — вещественное число;
· SAFEARRAY — безопасный массив;
· STR — строка;
· SUBR — встроенная функция AutoLISP;
· SYM — символ;
· VARIANT — вариант;
· USUBR — пользовательская функция AutoLISP;
· VLA-объект — объект Visual LISP, использующий технологию ActiveX.
К функциям преобразовании относятся следующие:
· (float <число>) — преобразование целого числа в вещественное;
· (itoa <целое>) — преобразование целого числа в строку;
· (rtos <число> [<режим> [<точность>]]) — преобразование вещественного числа в строку;
|
|
· (atoi <строка>) — преобразование строки в целое число;
· (atof <строка>) — преобразование строки в вещественное число;
· (angtof <строка> [<представление>]) —преобразование строки, представляющей значение угла в различных форматах, в вещественное число, являющееся величиной угла в радианах;
· (angtos <угол> [<представление> [<точность>]]) —преобразование значения угла в радианах в строку, в соответствии с форматом;
· (distof <строка> [<режим>]) — преобразование строки, представляющей вещественное значение в одном из форматов линейных единиц, в вещественное число;
· (trans <точка> <СК-из> <СК-в> [<признак>]) — преобразование координат точки из одной системы координат (СК) в другую.
Пример: (float 15) — возвращает 15.0;
К функциям, работающим со строками, относятся следующие:
· (chr <целое>) — получает буквенно-цифровой символ (строку из одного буквенно-цифрового символа) по коду действующей таблицы символов;
· (ascii <строка>) — получает код первого символа строки текста по действующей таблице символов;
· (read <строка>) — читает строку-аргумент до первого пробела (или до конца, если пробелов нет) и возвращает прочитанное значение как символ AutoLISP (т. е. имя функции или переменной);
· (strcase <строка> [<признак>]) — преобразует строку в верхний или нижний регистр (если аргумент <признак> опущен или равен nil, то функция strcase выполняет преобразование всех буквенно-цифровых символов строки в верхний регистр; если аргумент <признак> задан, и его значение отлично от nil, то выполняется преобразование строки в нижний регистр);
|
|
· (strcat [<строка1> [<строка2>... [<строкаN>]... ]]) —конкатенация (сцепление)строк;
· (strlen [<строка1> [<строка2>... [<строкаN>]... ]]) — вычисляет суммарную длину всех строк-аргументов;
· (substr <строка> <начало> [<количество>]) —выделяет подстроку, начиная с заданной позиции; если количество аргументом <количество> не задано или задано больше, чем осталось в строке, определяемой аргументом <строка>, начиная с позиции, определяемой аргументом <начало>, то возвращается полный остаток строки от заданного места.
Примеры:
(chr 192) — возвращает "А" (русская буква);
(ascii "A") — возвращает 65 (латинская буква);