Список основных функций Автолисп версии 10.0
Условные обозначения
:|
N - число; |
S - текстовая строка; |
A - любой атом; |
L - любой список; |
|
|
AL - атом или список;
|
P - список из двух чисел (координаты точки); |
[…] - необязательный параметр;
|
* - функция может иметь произвольное число аргументов. |
|
|
V - имя переменной; |
E - выражение Автолиспа; |
B - логическое значение (T или NIL). |
|
|
|
Функция |
Параметры |
Возвращаемое значение |
Описание |
Пример |
|
МАТЕМАТИЧЕСКИЕ, ЛОГИЧЕСКИЕ И ГЕОМЕТРИЧЕСКИЕ ФУНКЦИИ |
||||
|
N1 N2 [… NM*] |
N1+N2+…+NM |
Сумма |
( + 5 8 ) |
|
|
N1 N2 [… NM*] |
N1-N2-…-NM |
Разность |
( - a 5 ) |
|
|
N1 N2 [… NM*] |
N1*N2*…*NM |
Произведение |
( * 2 4 r ) |
|
|
N1 N2 [… NM*] |
N1/N2/…/NM |
Частное |
( / ( + 2 2 ) d ) |
|
|
N1 N2 или S1 S2 |
B |
Проверка равенства двух чисел или строк |
( = x 0.5 ) |
|
|
N1 N2 или S1 S2 |
B |
Проверка неравенства двух чисел или строк |
( /= a "ABC" ) |
|
|
N1 N2 или S1 S2 |
B |
Проверка "N1 больше N2" или "S1 больше S2"? |
( > c ( + 3 d ) ) |
|
|
N1 N2 или S1 S2 |
B |
Проверка "N1 меньше N2" или "S1 меньше S2"? |
( < e 1 ) |
|
|
N1 N2 или S1 S2 |
B |
Проверка "N1 больше или равно N2" или "S1 больше или равно S2"? |
( >= f 4.0 ) |
|
|
N1 N2 или S1 S2 |
B |
Проверка "N1 меньше или равно N2" или "S1 меньше или равно S2"? |
( <= 5 a1 ) |
|
|
B1 B2 |
B |
Возвращает T, если и B1=T, и B2=T, иначе NIL. |
( AND ( = 5 a ) flag ) |
|
|
B1 B2 |
B |
Возвращает NIL, если B1=NIL и B2=NIL, иначе T. |
( OR ( = ans "Н" ) ( = ans "н" ) ) |
|
|
B1 |
B |
Инвертирует логическое значение (меняет NIL на T, T на NIL). |
( NOT flag ) |
|
|
P1 P2 |
N |
Вычисляет угол в радианах между вектором P1P2 и положительным направлением оси OX. |
( ANGLE a ( LIST 0 0 ) ) |
|
|
N1 |
N |
Возвращает косинус угла N1, заданного в радианах |
( COS ( / PI 2 ) ) |
|
|
P1 P2 |
N |
Вычисляет расстояние между точками P1 и P2 |
( DISTANCE ( LIST 10 y) a )
|
|
|
P1 N1 N2 |
P |
Возвращает координаты точки, отстоящей от P1 на расстояние N1 под углом N2 |
( POLAR ( LIST x y ) 10 PI ) |
|
|
V1 AL1 [… VN ALN ] |
ALN |
Присваивает переменной V1 значение AL1, переменной V2 - значение AL2 и т.д. Возвращает последнее присвоенное значение |
( SETQ a ( + b 4 ) ) |
|
|
N1 |
N |
Вычисляет квадратный корень числа N1. |
( SQRT ( * a a ) ( * b b )) |
|
|
N1 |
N |
Возвращает модуль числа N1. |
( ABS -5 ) |
|
|
N1 |
N |
Возвращает целую часть числа N1. |
( FIX 5.25 ) |
|
|
N1 |
N |
Возвращает синус угла N1, заданного в радианах |
( SIN 0 ) |
|
|
УПРАВЛЯЮЩИЕ КОНСТРУКЦИИ |
||||
|
|
S [AL1 … ALN] [/ V1 … VM] |
AL |
Создание пользовательской функции с именем S, аргументами AL1 … ALN (могут отсутствовать) и локальными переменными V1 … VM(также могут отсутствовать, тогда знак "/" не ставится) |
( DEFUN myfunc ( a / n ) ( SETQ a ( + a 10 ) ) ) |
|
E1 E2 [E3] |
NIL |
Вычисляется выражение E1. Если оно истинно (не NIL), то выполняется выражение E2, иначе - E3 |
( IF ( = a b ) ( PRINT "\nA=B" ) ( PRINT "\nA<>B" ) ) |
|
|
E1 .. EN |
EN |
Объединяет несколько выражений в одно для использования в функции IF, если в ветвях "то" или "иначе" нужно выполнить более одной функции.. |
( IF ( = a 0 ) ( PROGN ( SETQ a 1 ) ( PROMPT "\nA=0" ) ) ) |
|
|
N E1 [... EN] |
EN |
Выражения E1 .. EN циклически выполняются N раз |
( REPEAT 10 ( PRINT "\n" ) ) |
|
|
E1 E2 [... EN] |
EN |
Выражения E2 .. EN (тело цикла) выполняются до тех пор, пока E1 не NIL. |
( WHILE ( <= i 10 ) ( SETQ i ( + i 1 ) ) ) |
|
|
ФУНКЦИИ СВЯЗИ С АВТОКАДОМ |
||||
|
S1 […SN] |
NIL |
Выполняет команду Автокада с именем S1 и параметрами S2..SN. Параметрами могут быть имена переменных и выражения Автолиспа |
( COMMAND "ПЛИНИЯ" ( LIST 10 10 ) a "ЗАМКНИ" ) |
|
|
S |
AL или S или B |
Возвращает значение системной переменной Автокада с именем S. |
( GETVAR "DIMTXT" ) |
|
|
S AL или S или B |
AL или S или B |
Устанавливает новое значение системной переменной Автокада с именем S. |
( SETVAR "dimext" 3.5 ) |
|
|
ФУНКЦИИ ОБРАБОТКИ СПИСКОВ |
||||
|
L1 |
AL |
Возвращает второй элемент списка L (например, координату Y точки) |
( CADR ( LIST 10 20 ) ) |
|
|
L1 |
AL |
Возвращает первый элемент списка L (например, координату X точки) |
( CAR a ) |
|
|
AL1 AL2 [… ALN*] |
L |
Объединяет все свои аргументы в один список |
( LIST x y ) |
|
|
N L |
AL |
Возвращает элемент списка L с порядковым номером N (первый элемент имеет номер ноль!) |
( NTH 1 a ) |
|
|
ФУНКЦИИ ВВОДА-ВЫВОДА |
||||
|
S |
N |
Ввод целого числа с клавиатуры. S - текст подсказки. |
( SETQ n ( GETINT "\nВведите число точек: " ) ) |
|
|
GETPOINT |
[P1] S |
P |
Ввод координат точки при помощи мышки. S - текст подсказки. Если задана точка P1, то от нее к текущей точке отображается "резиновая линия". |
( SETQ p ( GETPOINT ( LIST 0 0 ) "\nУкажите начальную точку: " ) ) |
|
S |
N |
Ввод вещественного числа с клавиатуры. S - текст подсказки. |
( SETQ x ( GETREAL "\nВведите координату Х: " ) ) |
|
|
[N] S |
S |
Ввод текстовой строки с клавиатуры. S - текст подсказки. Если B указан и не равен нулю, то вводимая строка может содержать пробелы, иначе пробел рассматривается как признак конца ввода. |
( SETQ s( GETSTRING "\nEnter your name: " ) ) |
|
|
- |
NIL |
Включает графический экран Автокада. |
( GRAPHSCR ) |
|
|
N |
NIL |
Устанавливает защиту от неправильного ввода на одну следующую GET-функцию. N - сумма следующих значений: 1 - запрет пустого ввода; 2 - запрет ввода нуля; 4 - запрет ввода отрицательных чисел. |
( INITGET 1 ) ( SETQ a ( GETREAL "?" ) ) |
|
|
[A или E] |
- |
Если вызывается без параметров, не возвращает ничего. Особенно удобна для "тихого" завершения программы. |
.... ( PRIN1 ) ) ; КОНЕЦ ПРОГРАММЫ |
|
|
A или E |
A или E |
Выводит на текстовый экран выражение A. |
( PRIN1 ( + 2 2 ) ) |
|
|
S |
NIL |
Выводит на текстовый экран строку S. |
( PROMPT "\nHello, world!") |
|
|
- |
NIL |
Включает текстовый экран Автокада. |
( TEXTSCR ) |
|
|
СТРОКОВЫЕ ФУНКЦИИ |
||||
|
STRCASE |
S B |
S |
Переводит все буквы в строке S в верхний (при B=NIL) или в нижний (при B=T) регистр (только для английских букв).
|
( STRCASE s1 T ) |
|
SUBSTR |
S N1 N2 |
S |
Возвращает часть строки S, начинающуюся с N1-го символа и имеющую длину N2 символа. |
( SUBSTR "M16x20" 4 2 ) |
|
STRCAT |
S1 S2 [... SN ] |
S |
Объединяет несколько символьных срок в одну. |
( STRCAT "\nA=" a ) |
|
СHR |
N |
S |
Возвращает символ с ASCII-кодом N. |
( CHR 7 ) |
|
STRLEN |
S |
L |
Возвращает число символов в строке S. |
( STRLEN "abc" ) |
|
ASCII |
S |
N |
Возвращает ASCII-код первого символа в строке S. |
( ASCII "Z" ) |
|
ФУНКЦИИ ПРЕОБРАЗОВАНИЯ ТИПОВ |
||||
|
ITOA |
N |
S |
Преобразует целое число N в его текстовое представление S. |
( PROMPT ( ITOA 5 ) ) |
|
ATOI |
S |
N |
Преобразует текстовую строку S в целое число N. |
( ATOI "4" ) |
|
RTOS |
N1 N2 N3 |
S |
Преобразует вещественное число N1 в текстовую сроку S. N2 - код формата числа (1 - научный; 2 - десятичный), N3 - точность (число знаков после запятой). |
( RTOS 5.255467 1 3 ) |
|
ATOF |
S |
N |
Преобразует текстовую строку S в действительное число N. |
( ATOF "3.141459" ) |