Размещено на сайте пользователей САПР, здесь вы также можете скачать документацию по Автокад и Автолисп, а так же бесплатные Лисп программы для Автокад

Список основных функций Автолисп версии 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 )

AND

B1 B2

B

Возвращает T, если и B1=T, и B2=T, иначе NIL.

( AND ( = 5 a ) flag )

OR

B1 B2

B

Возвращает NIL, если B1=NIL и B2=NIL, иначе T.

( OR ( = ans "Н" ) ( = ans "н" ) )

NOT

B1

B

Инвертирует логическое значение (меняет NIL на T, T на NIL).

( NOT flag )

ANGLE

P1 P2

N

Вычисляет угол в радианах между вектором P1P2 и положительным направлением оси OX.

( ANGLE a ( LIST 0 0 ) )

COS

N1

N

Возвращает косинус угла N1, заданного в радианах

( COS ( / PI 2 ) )

DISTANCE

P1 P2

N

Вычисляет расстояние между точками P1 и P2

( DISTANCE ( LIST 10 y) a )

 

POLAR

P1 N1 N2

P

Возвращает координаты точки, отстоящей от P1 на расстояние N1 под углом N2

( POLAR ( LIST x y ) 10

PI )

SETQ

V1 AL1 [… VN ALN ]

ALN

Присваивает переменной V1 значение AL1, переменной V2 - значение AL2 и т.д. Возвращает последнее присвоенное значение

( SETQ a ( + b 4 ) )

SQRT

N1

N

Вычисляет квадратный корень числа N1.

( SQRT ( * a a ) ( * b b ))

ABS

N1

N

Возвращает модуль числа N1.

( ABS -5 )

FIX

N1

N

Возвращает целую часть числа N1.

( FIX 5.25 )

SIN

N1

N

Возвращает синус угла N1, заданного в радианах

( SIN 0 )

УПРАВЛЯЮЩИЕ КОНСТРУКЦИИ

DEFUN

 

 

 

 

 

S [AL1 … ALN] [/ V1 … VM]

AL

Создание пользовательской функции с именем S, аргументами AL1 … ALN (могут отсутствовать) и локальными переменными V1 … VM(также могут отсутствовать, тогда знак "/" не ставится)

( DEFUN myfunc ( a / n )

( SETQ a ( + a 10 ) )

)

IF

E1 E2 [E3]

NIL

Вычисляется выражение E1. Если оно истинно (не NIL), то выполняется выражение E2, иначе - E3

( IF ( = a b )

( PRINT "\nA=B" )

( PRINT "\nA<>B" )

)

PROGN

E1 .. EN

EN

Объединяет несколько выражений в одно для использования в функции IF, если в ветвях "то" или "иначе" нужно выполнить более одной функции..

( IF ( = a 0 )

( PROGN

( SETQ a 1 )

( PROMPT "\nA=0" )

)

)

REPEAT

N E1 [... EN]

EN

Выражения E1 .. EN циклически выполняются N раз

( REPEAT 10 ( PRINT "\n" )

)

WHILE

E1 E2 [... EN]

EN

Выражения E2 .. EN (тело цикла) выполняются до тех пор, пока E1 не NIL.

( WHILE ( <= i 10 )

( SETQ i ( + i 1 ) )

)

ФУНКЦИИ СВЯЗИ С АВТОКАДОМ

COMMAND

S1 […SN]

NIL

Выполняет команду Автокада с именем S1 и параметрами S2..SN. Параметрами могут быть имена переменных и выражения Автолиспа

( COMMAND "ПЛИНИЯ" ( LIST 10 10 ) a "ЗАМКНИ" )

GETVAR

S

AL или S или B

Возвращает значение системной переменной Автокада с именем S.

( GETVAR "DIMTXT" )

SETVAR

S AL или S или B

AL или S или B

Устанавливает новое значение системной переменной Автокада с именем S.

( SETVAR "dimext" 3.5 )

ФУНКЦИИ ОБРАБОТКИ СПИСКОВ

CADR

L1

AL

Возвращает второй элемент списка L (например, координату Y точки)

( CADR ( LIST 10 20 ) )

CAR

L1

AL

Возвращает первый элемент списка L (например, координату X точки)

( CAR a )

LIST

AL1 AL2 [… ALN*]

L

Объединяет все свои аргументы в один список

( LIST x y )

NTH

N L

AL

Возвращает элемент списка L с порядковым номером N (первый элемент имеет номер ноль!)

( NTH 1 a )

ФУНКЦИИ ВВОДА-ВЫВОДА

GETINT

S

N

Ввод целого числа с клавиатуры. S - текст подсказки.

( SETQ n ( GETINT "\nВведите число точек: " ) )

GETPOINT

[P1] S

P

Ввод координат точки при помощи мышки. S - текст подсказки. Если задана точка P1, то от нее к текущей точке отображается "резиновая линия".

( SETQ p ( GETPOINT ( LIST 0 0 ) "\nУкажите начальную точку: " ) )

GETREAL

S

N

Ввод вещественного числа с клавиатуры. S - текст подсказки.

( SETQ x ( GETREAL "\nВведите координату Х: " ) )

GETSTRING

[N] S

S

Ввод текстовой строки с клавиатуры. S - текст подсказки. Если B указан и не равен нулю, то вводимая строка может содержать пробелы, иначе пробел рассматривается как признак конца ввода.

( SETQ s( GETSTRING "\nEnter your name: " ) )

GRAPHSCR

-

NIL

Включает графический экран Автокада.

( GRAPHSCR )

INITGET

N

NIL

Устанавливает защиту от неправильного ввода на одну следующую GET-функцию. N - сумма следующих значений: 1 - запрет пустого ввода; 2 - запрет ввода нуля;

4 - запрет ввода отрицательных чисел.

( INITGET 1 )

( SETQ a ( GETREAL "?" ) )

PRIN1

[A или E]

-

Если вызывается без параметров, не возвращает ничего. Особенно удобна для "тихого" завершения программы.

....

( PRIN1 )

) ; КОНЕЦ ПРОГРАММЫ

PRINT

A или E

A или E

Выводит на текстовый экран выражение A.

( PRIN1 ( + 2 2 ) )

PROMPT

S

NIL

Выводит на текстовый экран строку S.

( PROMPT "\nHello, world!")

TEXTSCR

-

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" )

Содержание

Список функций

Тесты

Предметный указатель