Справочник AutoLISP функций. По назначению.

Справочник по стандартным AutoLISP функциям, которые используются в примерах на этом сайте.

Функция присвоения:

(setq <переменная1> <выражение1> [<переменная2> < выражение2>] … [<переменнаяN> < выражениеN>])

Арифметические функции:

(+ <число1> <число2> … [<числоN>])

(- <число1> <число2> … [<числоN>])

(* <число1> <число2> … [<числоN>])

(/ <число1> <число2> … [<числоN>])

 Логические функции:

(= <аргумент1> [<аргумент2>] … [<аргументN>])

(/= <аргумент1> [<аргумент2>] … [<аргументN>])

(< <аргумент1> [<аргумент2>] … [<аргументN>])

(<= <аргумент1> [<аргумент2>] … [<аргументN>])

(> <аргумент1> [<аргумент2>] … [<аргументN>])

(>= <аргумент1> [<аргумент2>] … [<аргументN>])

(not <аргумент>)

(if <условие>  <выражение1> [<выражение2>])

(prong выражение1> [<выражение2>] … [<выражениеN>])

(while <условие>  <выражение1> [<выражение2>] … [<выражениеN>])

Функции загрузки файлов.

(load <файл> [<сообщение>])

(vl-load-all <файл>)

Функции выполнения стандартных команд AutoCAD из AutoLISP.

(command [<параметр1>] … [<параметрN>])

(vl-cmdf  [<параметр1>] … [<параметрN>])

Функции вычислений:

(distance <точка1> < точка2>)

(polar <точка> <угол> <расстояние>)

Функции преобразования данных:

(itoa <число>)

(rtos <число> [<режим> [<точность>]])

(atoi <строка>)

(atof <строка>)

Функции обработки строк:

(strcat [<строка1>] [<строка2>] … [<строкаN>])

Функции обработки списков  и точечных пар:

(list <элемент1> [<элемент2>] … [<элементN>])

(car <список>)

(cdr <список>)

(assoc <код> <список>)

(mapcar ‘<функция> <список1> [<список2> … <списокN>])

(member <элемент> <список>)

(nth <номер> <список>)

(append <список1> [<список2> … <списокN>])

Функции ввода данных и указания объектов:

(getpoint [<точка1>] [<запрос>])

(getvar <имя>)

(setvar <имя> <значение>)

Функции печати, вывода сообщений и доступа к файлам:

(princ [<аргумент>] [<дескриптор>])

(alert <сообщение>)

Функции доступа к примитивам AutoCAD:

(entlast)

(entsel [<запрос>])

(entget <примитив>)

Функции, работающие с набором примитивов:

(ssget [<метод>] [<точка1>] [<точка2>] [<список>] [<фильтр>])

(ssadd [<примитив> [<набор>]])

(sslength <набор>)

(ssname <набор> <номер>)

(sssetfirst <набор1> [<набор2>])

Функции пользователя:

(defun <имя> ([<аргументы>] / [<временные>]) <выражения>)

Функции для работы с диалоговыми окнами:

(load_dialog <файл>)

(unload_dialog <номер>)

(new_dialog <диалог> <номер> [<действие>] [<положение>])

(done_dialog  <число>)

(start_dialog)

Функции, работающие с полями диалогового окна:

(action_tile <код> <выражение>)

(get_tile <код>)

(set_tile <код> <значение>)

(exit)

 

Функция setq

(setq <переменная1> <выражение1> [<переменная2> < выражение2>] ... [<переменнаяN> <выражениеN>])

Сохраняет значение <выражения> в <переменной>. Функция setq может использоваться с любым количеством аргументов, которое должно быть обязательно четным.

Типы аргументов:

<переменная> - любые символы, не занятые в стандартных функциях;
<выражение> - любые выражения AutoLISP и имена переменных.

Возвращаемое значение:

Значение сохраненное в переменной.

Примеры:

(setq sum (+ 1 2)) – сохраняет в переменной sum значение суммы (+ 1 2), т.е. 3.
(setq p1 (getpoint "\ Укажите базовую точку : "p2 (polar p1 0 200))

Сохраняет в переменной p1 значение функции getpoint.

Затем сохраняет в переменной p2 значение функции polar.

Вернутся к началу справочника…

Арифметические функции:

Функция +.

Вычисляет сумму чисел.

(+ <число1> <число2> … [<числоN>])

Типы аргументов:

целые и вещественные числа.

Тип возвращаемого значения:

целое, если все аргументы целые; вещественное, если хотя бы один аргумент является вещественным.

Если аргументы не заданы, то возвращается 0 (целое). Если количество аргументов равно 1, то возвращается значение равное значению аргумента.

Примеры:

(+ 1 2) возвращает 3
(+ -5 3) возвращает 2
(+ 1 2 3,5) возвращает 6,5

Вернутся к началу справочника…

Функция -.

Вычисляет разность чисел.

(- <число1> <число2> … [<числоN>])

Типы аргументов:

целые и вещественные числа.

Тип возвращаемого значения:

целое, если все аргументы целые; вещественное, если хотя бы один аргумент является вещественным.

Если аргументы не заданы, то возвращается 0 (целое). Если количество аргументов равно 1, то возвращается значение, вычитаемое из 0 (т.е. <число1> с противоположным знаком). Если количество аргументов равно 2 и более, то из первого числа вычитается сумма всех остальных.

Примеры:

(- 5) возвращает -5
(- -5 3) возвращает -8
(- 10 2 3,5) возвращает 4,5

Вернутся к началу справочника…

Функция *.

Вычисляет проиведение чисел.

(* <число1> <число2> … [<числоN>])

Типы аргументов:

целые и вещественные числа.

Тип возвращаемого значения:

целое, если все аргументы целые; вещественное, если хотя бы один аргумент является вещественным.

Если аргументы не заданы, то возвращается 0 (целое). Если количество аргументов равно 1, то возвращается значение аргумента. Если количество аргументов равно 2 и более, то выполняется перемножение всех аргументов.

Примеры:

(* 5) возвращает 5
(* -5 3) возвращает -15
(* 10 2 3,5) возвращает 70.0

Вернутся к началу справочника…

Функция /.

Вычисляет проиведение чисел.

(/ <число1> <число2> … [<числоN>])

Типы аргументов:

целые и вещественные числа.

Тип возвращаемого значения:

целое, если все аргументы целые; вещественное, если хотя бы один аргумент является вещественным.

Если аргументы не заданы, то возвращается 0 (целое). Если количество аргументов равно 1, то возвращается значение аргумента. Если количество аргументов равно 2 и более, то выполняется деление первого аргумента на произведение всех остальных.

Примеры:

(/ 5) возвращает 5
(/ -15 5) возвращает -3
(/ 5 10) возвращает 0
(/ 5 10.0) возвращает 0.5

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

Вернутся к началу справочника…

Логические функции:

Функция =.

Проверяет равенство аргументов (рекомендуется использовать для чисел или строк).

(= <аргумент1> [<аргумент2>] … [<аргументN>])

Типы аргументов:

любые.

Тип возвращаемого значения:

логическое (Т, если значения аргументов совпали, и nil, если не совпали).

Если задан только один аргумент, то возвращается Т. Если количество аргументов 2 или больше, то при совпадении значений всех аргументов возвращается Т, в противном случаи – nil. При сравнении строк Т выдается только в случае, когда длины всех строк равны и все строки посимвольно совпадают. При сравнении чисел Т выдается также в том случае, когда одни аргументы целые, а другие вещественные, но их значения совпадают.

Примеры:

(= 5)  возвращает Т.
(= 5.00 5 5.0) возвращает Т.
(= 7 “7”) возвращает nil
(= “abc” “abc”) возвращает Т.
(= “ABC” “abc” “abc”) возвращает nil.

Вернутся к началу справочника…

Функция /=.

Проверяет неравенство аргументов (рекомендуется использовать для чисел или строк).

(/= <аргумент1> [<аргумент2>] … [<аргументN>])

Типы аргументов:

любые.

Тип возвращаемого значения: логическое (Т, если значения каких либо аргументов не совпали, и nil, если совпали). Если задан только один аргумент, то возвращается Т.

Примеры:

(/= 5 возвращает Т.
(/= 5.00 5 5.0) возвращает nil.
(/= 7 “7”) возвращает Т
(/= “abc” “abc”) возвращает nil.
(/= “ABC” “abc” “abc”) возвращает Т.

Вернутся к началу справочника…

Функция <.

Проверяет расположение аргументов по возрастанию, слева на право

(< <аргумент1> [<аргумент2>] … [<аргументN>])

Типы аргументов:

числа (целые, вещественные) или строки.

Тип возвращаемого значения:

логическое (Т, если значения аргументов расположены по возрастанию, и nil – в противном случае).

Для текстовых строк производится посимвольное сравнение, по возрастанию кодов символов. Если задан только один аргумент, то возвращается Т.

Примеры:

(< 5)  возвращает Т.
(< 1.0 5 7) возвращает Т.
(< 3 3 7) возвращает nil.

Вернутся к началу справочника…

Функция <=.

Проверяет расположение аргументов по не убыванию, слева на право

(<= <аргумент1> [<аргумент2>] … [<аргументN>])

Типы аргументов:

числа (целые, вещественные) или строки.

Тип возвращаемого значения:

логическое (Т, если значения аргументов расположены по не убыванию, и nil – в противном случае).

Для текстовых строк производится посимвольное сравнение, по не убыванию кодов символов. Если задан только один аргумент, то возвращается Т.

Примеры:

(<= 5 возвращает Т.
(<= 1.0 5 7) возвращает Т.
(<= 3 3 7) возвращает Т.
(<= 3 7 5) возвращает nil.

Вернутся к началу справочника…

Функция >.

Проверяет расположение аргументов по убыванию, слева на право

(> <аргумент1> [<аргумент2>] … [<аргументN>])

Типы аргументов:

числа (целые, вещественные) или строки.

Тип возвращаемого значения:

логическое (Т, если значения аргументов расположены по убыванию, и nil – в противном случае).

Для текстовых строк производится посимвольное сравнение, по убыванию кодов символов. Если задан только один аргумент, то возвращается Т.

Примеры:

(> 5 возвращает Т.
(> 7 5 3.0) возвращает Т.
(3 7) возвращает nil.
(>3 1 1) возвращает nil.

Вернутся к началу справочника…

Функция >=.

Проверяет расположение аргументов по не возрастанию, слева направо

(>= <аргумент1> [<аргумент2>] … [<аргументN>])

Типы аргументов:

числа (целые, вещественные) или строки.

Тип возвращаемого значения:

логическое (Т, если значения аргументов расположены по не возрастанию, и nil – в противном случае).

Для текстовых строк производится посимвольное сравнение, не возрастанию кодов символов. Если задан только один аргумент, то возвращается Т.

Примеры:

(>= 5)  возвращает Т.
(>= 7 5 3.0) возвращает Т.
(>= 3 7) возвращает nil.
(>= 3 1 1) возвращает Т.

Вернутся к началу справочника…

Функция not.

Выполняет операцию логического отрицания

(not <аргумент>)

Типы аргументов:

любые.

Тип возвращаемого значения:

логическое (Т, если значение аргумента равно nil, и nil – в противном случае).

Примеры:

(not T возвращает nil.
(not nil)  возвращает Т.
(not 7)  возвращает nil.
(not “abc”)  возвращает nil.

Вернутся к началу справочника…

Функция if.

Выполняет условную операцию типа if-then-else (если-то-иначе)

(if <условие>  <выражение1> [<выражение2>])

Типы аргументов:

любые.

Тип возвращаемого значения:

Вычисленное значение аргумента <выражение1>, если значение <условие> равно Т (истина).
Или вычисленное значение аргумента <выражение2>, если значение <условие> равно nil (ложь).

Примеры:

(if (b) 100 7)  возвращает 100, если a>b, и 7 – в остальных случаях.
(if (= b) (+ a b) (- a b)) возвращает результат вычисления выражения (+ a b), если a=b, иначе результат выражения (- a b)
(if (a b) (+ a b)) возвращает результат вычисления выражения (+ a b), если a=b, иначе nil (т.к. <выражение2> опущено).

Если функция if использует для обработки по условию не одно выражение, а несколько, то эти выражения следует объединить с помощью функции prong.

Вернутся к началу справочника…

Функция prong.

Объединяет несколько выражений в одно, когда по синтаксису AutoLISP может использоваться только одно (как в функции if).

(prong выражение1> [<выражение2>] … [<выражениеN>])

Типы аргументов:

любые.

Вернутся к началу справочника…

Функция while.

Выполняет операцию цикла по многократно проверяемому условию

(while <условие>  <выражение1> [<выражение2>] … [<выражениеN>])

Типы аргументов:

любые.

Функция while прекратит свою работу, когда на некотором шаге аргумент <условие>  получит значение nil. При неудачном задании цикл может оказаться бесконечным.

Возвращаемое значение:

значение аргумента <выражениеN>.

Если уже на первом шаге <условие>  имеет значение nil, то функция  while возвращает nil.

Пример:

(while (> n 10)
  (setq a (+ a 10))
  (setq n (+ n 1))
)

Будут несколько раз выполняться строки:
(setq a (+ a 10))
(setq n (+ n 1))
Пока n не станет больше 10

Вернутся к началу справочника…

Функции загрузки файлов.

Функция load

Функция load выполняет загрузку файла программы в текущий документ.

(load <файл> [<сообщение>])

Типы аргументов:

<файл> - текстовая строка с именем загружаемого файла;
<сообщение> - строка с текстом сообщения об ошибке, которая появится, если загружаемый файл будет не найден.

Аргумент <сообщение> может быть опущен, в этом случаи при ошибке загрузки выдается стандартное сообщение AutoCAD.

Возвращаемое значение

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

Пример:

(load “prog.lsp” “Файл не найден”)

Если файла “prog.lsp” не в папках поддержки AutoCAD, в качестве аргумента <файл> нужно указывать полный путь к файлу. Например “d:/MyLisp/ prog.lsp” или “d:\\MyLisp\\ prog.lsp”

Если расширение в имени файла опущено “prog”, то AutoCAD пытается выполнить загрузку, поочередно добавляя следующие расширения:

vlx – файлы vlx-приложений;

fas – файлы fas-приложений;

lsp – Lisp-файлы.

Вернутся к началу справочника…

Функция vl-load-all

Функция vl-load-all выполняет загрузку файла программы во все открытые документы и открываемые в данном сеансе AutoCAD.

(vl-load-all <файл>)

Типы аргумента:

<файл> - текстовая строка с именем загружаемого файла.

Возвращаемое значение –

В случаи удачной загрузки: Т
В случаи неудачной загрузки: Возвращаемого значения нет.

Пример:

(vl-load-all “prog.lsp”)

Если файла “prog.lsp” не в папках поддержки AutoCAD, в качестве аргумента <файл> нужно указывать полный путь к файлу. Например “d:/MyLisp/ prog.lsp” или “d:\\MyLisp\\ prog.lsp”

Если расширение в имени файла опущено “prog”, то AutoCAD пытается выполнить загрузку, поочередно добавляя следующие расширения:

vlx – файлы vlx-приложений;

fas – файлы fas-приложений;

lsp – Lisp-файлы.

Вернутся к началу справочника…

Функции выполнения стандартных команд AutoCAD из AutoLISP.

Функция command (похожа на функцию vl-cmdf).

Функция command имитирует ввод пользователя в командной строке AutoCAD.

(command [<параметр1>] … [<параметрN>])

Типы аргументов:

<параметр1>]… <параметрN> - любые выражения, которые нужно передать в командную строку (в качестве аргументов нельзя использовать функции интерактивного ввода (getint, getpoint и т. п.).

Возвращаемое значение –  nil

Пример:

(command "_line" '(300 300) '(700 300) '(700 700) "")

— построить отрезки с координатами первой точки (X=300, Y=300)  координатами второй точки (X=700, Y=300) и координатами третий точки (X=700, Y=700).

Если аргументы отсутствую (command) – это равносильно нажатию пользователем клавиши <Esc>.

Применение функции command смотрите в уроке: AutoLISP. Стандартные команды Автокад.

Вернутся к началу справочника…

Функция vl-cmdf (похожа на функцию command).

Функция vl-cmdf имитирует ввод пользователя в командной строке AutoCAD.

(vl-cmdf  [<параметр1>] … [<параметрN>])

Типы аргументов:

<параметр1>]… <параметрN> - любые выражения, которые нужно передать в командную строку.

Возвращаемое значение –  nil

Пример:

(vl-cmdf  "_line" '(300 300) '(700 300) '(700 700) "")

— построить отрезки с координатами первой точки (X=300, Y=300)  координатами второй точки (X=700, Y=300) и координатами третий точки (X=700, Y=700).

Если аргументы отсутствую (vl-cmdf ) – это равносильно нажатию пользователем клавиши <Esc>.

Отличие функции vl-cmdf от функции command.

Функция vl-cmdf в качестве аргументов может содержать функции интерактивного ввода (getint, getpoint и т. п.)

Функция command в качестве аргументов не может содержать функции интерактивного ввода (getint, getpoint и т. п.)

Функция vl-cmdf проверяет выполнимость команд AutoCAD с заданными параметрами, до реального начала их исполнения. Если обнаруживается какая-то ошибка, то ни один из параметров функции vl-cmdf не выполняется. Это исключает возможность частичной работы любых команд AutoCAD.

Функция command передает в командную строку по одному параметру, и AutoCAD по одному пытается их выполнить (Удобно использовать при отладке – видно на каком параметре было прервано выполнение).

Вернутся к началу справочника…

Функции вычислений:

Функция distance.

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

(distance <точка1> < точка2>)

Типы аргументов:

списки из двух или из трех чисел. (двухмерные или трехмерные координаты точек)

Возвращаемое значение:

вещественное число

Примеры:

(distance(0 0)(170.0 0.0)) возвращает 170.0.
(distance(0 0 0)(0.0 270.0 0.0)) возвращает 270.0.

Вернутся к началу справочника…

Функция polar.

(polar <точка> <угол> <расстояние>)

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

в направлении луча образующим с ось Х угол в радианах, заданный аргументом <угол>.

Типы аргументов:

<точка> - списки из двух или трех чисел (двухмерные или трехмерные координаты точек).
<угол> - вещественное число, представляющее собой угол, в радианах, от положительного направления оси Х.
<расстояние> - число (целое, вещественное).

Возвращаемое значение:

списки из двух или из трех чисел.

Примеры:

(polar(0 0 0) (/ pi 2) 200)) возвращает (0.0 200.0 0.0).
(polar(0.0 200.0 0.0) pi  200)) возвращает (-200.0 200.0 0.0).

Вернутся к началу справочника…

Функции преобразования данных:

Функция itoa.

Преобразует целое число в строку.

(itoa <число>)

Тип аргумента:

целое число.

Тип возвращаемого значения:

строка.

Примеры:

(itoa 127) возвращает “127”.
(itoa 77) возвращает “77”.

Вернутся к началу справочника…

Функция rtos.

Преобразует вещественное число в строку.

(rtos <число> [<режим> [<точность>]])

Типы аргументов:

<число> - вещественное или целое число.
<режим> - целое (номер режима).

Допустимые значения аргумента <режим>:

1 – научный

2 – десятичный

3 – инженерный (футы и дюймы)

4 – архитектурный (футы и дюймы)

5 – дробный

Чаще всего применяется десятичный режим.

<точность> — количество десятичных знаков в представлении вещественных чисел.

Если аргументы <режим> и <точность> опущены, то в качестве их значений принимаются текущие значения системных переменных LUNITS и LUPREC.

Тип возвращаемого значения:

строка.

Примеры:

(rtos 127.7) возвращает “127.7”.
(rtos 5.4321 2 1) возвращает “5.4”.

Вернутся к началу справочника…

Функция atoi.

Преобразует строку в целое число.

(atoi <строка>)

Тип аргумента:

строка.

Тип возвращаемого значения:

целое число.

Примеры:

(atoi  “127”) возвращает 127.
(atoi “-77.8”) возвращает -77 (дробная часть отбрасывается).

Число символов в строке не должно превышать 10. Если их больше, функция atoi вернет последние 10:

(atoi “771234567890”) возвращает 1234567890

Вернутся к началу справочника…

Функция atof.

Преобразует строку в вещественное число.

(atof <строка>)

Тип аргумента:

строка.

Тип возвращаемого значения:

вещественное число

Примеры:

(atof  “127.78”) возвращает 127.78
(atof “-77.8”) возвращает -77.8
(atof “771234567890”) возвращает 771234567890

Вернутся к началу справочника…

Функции обработки строк:

Функция strcat.

Сцепление строк.

(strcat [<строка1>] [<строка2>] … [<строкаN>])

Типы аргументов:

строковый.

Тип возвращаемого значения:

строковый.

Если аргументы не заданы, то возвращается пустая строка (“”).

Примеры:

(strcat) возвращает “”.
(strcat “С но”  “вым”  “годом”) возвращает “С новым годом”.
(strcat “дом ” (itoa 2) “ кв.”  (itoa 33)) возвращает “дом 2 кв.33”.

Вернутся к началу справочника…

Функции обработки списков  и точечных пар:

Функция list.

Объединяет элементы в список.

(list <элемент1> [<элемент2>] … [<элементN>])

В качестве аргументов, образующих список, могут выступать любые объекты, которыми оперирует AutoLISP. Самый распространенный список из двух или трех вещественных чисел, которые представляют собой координаты точки.

Тип возвращаемого значения:

список.

Примеры:

(list 15.5 10.7 25.7) возвращает (15.5 10.7 25.7)
(list 15.5 nil T) возвращает (15.5 nil T)
(list 2 “abc” (list 1 2 3)) возвращает (2 “abc” (1 2 3))
(list 2 ‘(0 . "LINE")) возвращает (2 (0 . "LINE")) – второй элемент списка точечная пара (0 . "LINE")

Вернутся к началу справочника…

Функция car.

Извлекает первый элемент из списка или DXF-код точечной пары.

(car <список>)

Типы аргументов:

список или точечная пара.

Примеры:

(car(2 3 4 5)) возвращает 2
(car(0 . "LINE")) возвращает 0

Вернутся к началу справочника…

Функция cdr.

Извлекает подсписок без первого элемента или данные точечной пары.

(cdr <список>)

Типы аргументов:

список или точечная пара.

Примеры:

(cdr(2 3 4 5)) возвращает (3 4 5)
(cdr(0 . "LINE")) возвращает "LINE"

Вернутся к началу справочника…

Функция assoc.

Функция assoc применяется к сложному списку, каждый элемент которого начинается с DXF-кода. Именно по этому коду функция assoc и извлекает элемент из списка.

(assoc <код> <список>)

Типы аргументов:

<код>  - целое число (DXF-код).
<список> - список с данными примитива.

Примеры:

(assoc 0 ((0 . "LINE") (410 . "Model") (8 . "Слой1")) возвращает (0 . "LINE")
(assoc 410 ((0 . "LINE") (410 . "Model") (8 . "Слой1")) возвращает (410 . "Model")
(assoc 8 ((0 . "LINE") (410 . "Model") (8 . "Слой1")) возвращает (8 . "Слой1")

Вернутся к началу справочника…

Функция mapcar 

(mapcar '<функция> <список1> [<список2> … <списокN>])

 Типы аргументов:

'<функция> — функция применяемая к элементам списка;
<список1> <список2> <списокN>  — списки значений.

Функция mapcar поочередно применяет <функцию> сначала к первым элементам списков, затем ко втором и так далее. В результате образуется новый список, который и является возвращаемым значением.

Возвращаемое значение:

Новый список.

Примеры:

(mapcar* (5  7)  ‘(3  4))  –  возвращает  (15 28)
(mapcar-(5  4(3  7))  –  возвращает  (2 -3)
(mapcar+(10 10 0)  ‘(0  0  15))  –  возвращает  (10 10 15)

Вернутся к началу справочника…

Функция member

Функцию member  проверяет принадлежность элемента списку

(member <элемент> <список>)

Типы аргументов:

<элемент> — любой;
<список> — список.

Возвращаемое значение:

–  Если < элемент > есть в аргументе <список>, то возвращается остаток списка, начиная с этого элемента.
–  Если < элемента > нет в аргументе <список>, то возвращается nil

Примеры:

(member 7 ‘(3 5 7 9))  –  возвращает  (7 9)
(member 4 ‘(3 5 7 9))  –  возвращает  nil
(member 3 ‘(3 5 7 9))  –  возвращает  (3 5 7 9)

Вернутся к началу справочника…

Функция nth

Функция nth извлекает из списка элемент по порядковому номеру (нумерация элементов списка начинается с нуля).

(nth <номер> <список>)

Типы аргументов:

<номер> — целое не отрицательное число;
<список> — список.

Возвращаемое значение:

Возвращает значение элемента расположенного на соответствующем номере.

Если номер превышает количество элементов списка, то возвращается nil.

Примеры:

(nth 0 ‘ (3 5 7 9))  –  возвращает  3
(nth 1 ‘ (3 5 7 9))  –  возвращает  5
(nth 2 ‘ (3 5 7 9))  –  возвращает  7
(nth 3 ‘ (3 5 7 9))  –  возвращает  9
(nth 4 ‘ (3 5 7 9))  –  возвращает  nil

Вернутся к началу справочника…

Функция append

Функция append выполняет слияние списков в один.

(append <список1> [<список2> … <списокN>])

Типы аргументов:

<список1> <список2> <списокN>  — списки.

Возвращаемое значение:

Новый список включающий в себя элементы <список1> , к которому добавлены элементы второго и последующих списков.

Примеры:

(append(5  7)  ‘(3  4))  –  возращает  (5 7 3 4)
(append nil  ‘(3  4))  –  возращает  (3 4)
(append(nil  T)  ‘(3  4))  –  возращает  (nil T 3 4)

Вернутся к началу справочника…

Функции ввода данных и указания объектов:

Функция getpoint.

Позволяет пользователю задать координаты точки при помощи мыши или клавиатуры.

(getpoint [<точка1>] [<запрос>])

Типы аргументов:

<точка1> - списки из двух или трех чисел (двухмерные или трехмерные координаты точек).
<запрос> - текстовая строка, которая подсказывает пользователю, что нужно сделать.

Если указан аргумент <точка1>, то от координат этой точки, при указании точки с помощью мыши, рисуется резиновая нить. И мы задаем свою точку ориентируясь на координаты точки заданные в аргументе <точка1>.

Тип возвращаемого значения:

список из двух или трех чисел (двухмерные или трехмерные координаты точки).

Вернутся к началу справочника…

Функция getvar.

Читает текущее значение системной переменной с наименованием, заданным аргументом <имя>

(getvar <имя>)

Тип аргумента:

текстовая строка с наименование системной переменной.

Возвращаемое значение

текущее значение указанной системной переменной.

Примеры:

(getvar “osmode”) возвращает значение системной переменной OSMODE. (Текущие значение объективных привязок)
(getvar “CLAYER”) возвращает значение системной переменной CLAYER. (Имя текущего слоя)

Вернутся к началу справочника…

Функция setvar.

Присваивает новое текущее значение системной переменной с наименованием, заданным аргументом <имя>.

(setvar <имя> <значение>)

Типы аргументов:

<имя> - текстовая строка с наименование системной переменной.
<значение> - число, список или строка. (тип определяется именем системной переменной)

Возвращаемое значение:

новой значение указанной системной переменной.

Примеры:

(setvar “osmode” 1) возвращает 1 (объективная привязка конечная точка)
(setvar “CLAYER” “Слой1”) возвращает “Слой1” - Имя нового текущего слоя.

Вернутся к началу справочника…

Функции печати, вывода сообщений и доступа к файлам:

Функция princ.

Записывает значение аргумента <аргумент>, который может быть любым выражением AutoLISP, в виде текстовой строки в файл с заданным дескриптором.

(princ [<аргумент>] [<дескриптор>])

Если аргумент <дескриптор> опущен, то  <аргумент> выводится в командной строке

Возвращаемое значение:

вычисленное значение аргумента <аргумент>.

Если <аргумент> — строка, то текст выводится без кавычек.

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

Примеры:

(princ ‘(5.0 7.5 0.0)) возвращает (5.0 7.5 0.0)
(princ “Привет”) возвращает Привет
(princ) не возвращает ничего

Вернутся к началу справочника…

Функция alert.

Позволяет вывести на экран диалоговое окно с сообщением.

(alert <сообщение>)

Аргумент – текстовая строка.

Возвращаемое значение nil.

Вернутся к началу справочника…

Функции доступа к примитивам AutoCAD:

Функция  entlast.

Функция entlast извлекает имя последнего нарисованного основного  примитива.

Возвращаемое значение:

имя последнего основного примитива.

Пример:

(entlast)

Возвращает: <Имя объекта: 7ec9f5f0>

Вернутся к началу справочника…

Функция  entsel.

Функция entsel предлагает пользователю указать объект, выдавая запрос, текст которого задан в качестве аргумента.

(entsel [<запрос>])

Тип аргумента:

<запрос> - строка (текст запроса).

Возвращаемое значение6

имя объекта и координаты точки, указанной при выборе объекта.

Пример:

(entsel “Выберите отрезок:»: ")

Возвращает: (<Имя объекта: 7ec9f5f0> (1401.43 1292.2 0.0))

Вернутся к началу справочника…

Функция  entget.

Функция entget получает список с характеристиками примитива и является основным средством извлечения информации о геометрии и свойствах.

(entget <примитив>)

<примитив> — имя примитива

Возвращаемое значение:

список с характеристиками примитива.

Пример:

(entget (entlast))

Возвращает: ((-1 . <Имя объекта: 7ec9f5f0>) (0 . «LINE») (330 . <Имя объекта: 7ec9dcf8>) (5 . «236») (100 . «AcDbEntity») (67 . 0) (410 . «Model») (8 . «Слой1″) (100 . «AcDbLine») (10 1132.85 1117.63 0.0) (11 1591.69 1412.34 0.0) (210 0.0 0.0 1.0))

Вернутся к началу справочника…

Функции, работающие с набором примитивов:

Функция  ssget.

Функция  ssget формирует набор по запросу или признаку:

(ssget [<метод>] [<точка1>] [<точка2>] [<список>] [<фильтр>])

Если все аргументы опущены:

(ssget) выдает стандартный запрос: «Выберите объекты:» и затем создает набор в соответствии с действиями пользователя. Пользователь может выбирать объекты по одному, рамкой или секущей рамкой. По окончанию выбора нужно нажать клавишу <Enter>.

Аргумент <метод> — это текстовая строка, принимающая одно из следующих значений, характеризующих метод выбора примитивов:

“_C” – выбор секущей рамкой;

“_CP” – выбор секущим многоугольником;

“_F” – выбор секущей линией;

“_I” – текущий выбор с помощью ручек;

“_L” – выбор последнего видимого примитива;

“_P” – последний сформированный ранее набор;

“_W” – выбор рамкой;

“_WP” – выбор многоугольником;

“_X” – вся база примитивов рисунка, включая объекты на замороженных слоях и вне видимой части экрана, с учетом аргумента <фильтр> (в этом случаи аргумент <фильтр> не должен быть опущен);

“_A” – вся база примитивов рисунка, включая объекты на замороженных слоях и вне видимой части экрана;

“_:E” – все примитивы, попадающие в прицел устройства указания;

“_:N” – выбор основных примитивов с помощью подпримитивов (вершин полилинии или компонентов блока); используется только при графическом варианте выбора и только для указания рамкой, секущей рамкой и точкой;

“_:S” – допускается выбор только одного объекта;

Аргумент <точка1> при отсутствии аргумента <точка2> определяет дополнительное условие для добавления в набор: включаемый примитив должен проходить через точку, заданную аргументом <точка1>. Если заданы оба аргумента <точка1> и <точка2>, то определяемые ими точки являются углами простой или секущей рамки (когда в качестве метода выбора применяются рамки, т.е. “_W” или “_C”.

Аргумент <список> представляет собой список, элементами которого являются точки, используемые в методах “_F”, “_WP”, “_CP”.

Аргумент <фильтр> — это список со структурой, аналогичной структуре списка, возвращаемого функцией entget, что позволяет оставить только те примитивы, которые удовлетворяют дополнительным признакам (определенному цвету, слою, весу и т.д.).

Возвращаемое значение:

Имя созданного набора (или nil если создать набор не возможно).

Имя набора возвращается в следующем виде: <Selection set: 4>

Примеры:

(ssget ‘(0 0 0)) создает набор из примитивов, проходящих через точку (0 0 0).
(ssget “_c” ‘(0 0 0) ‘(100.5 210.34 0)) создает набор из примитивов, выбираемых секущей рамкой с углами в точках  (0 0 0) и (100.5 210.34 0).
(ssget "_x" (list '(0 . "LINE"))) создает набор из всех отрезков рисунка.

В рисунке одновременно может быть открыто не более 128 наборов.

Вернутся к началу справочника…

Функция  ssadd.

Функция ssadd добавляет примитив в набор.

(ssadd [<примитив> [<набор>]])

<примитив> — имя примитива.

<набор> — имя набора.

Возвращаемое значение:

Имя набора.

Пример:

(ssadd) – создает пустой набор
(ssadd  (entlast)  ssnab) – добавляет последний нарисованный примитив в набор ssnab.

Возвращает: <Selection set: 4>

Вернутся к началу справочника…

Функция  sslength.

Вычисляет длину набора, т.е. количество содержащихся в нем примитивов.

(sslength <набор>)

Аргумент <набор> — имя набора.

Возвращаемое значение:

целое число.

Вернутся к началу справочника…

Функция  ssname.

Извлекает примитив из набора по порядковому номеру.

(ssname <набор> <номер>)

Аргументы:

<набор> - имя набора;
<номер> - целое число, номер элемента в наборе. Нумерация примитивов в наборе начинается с нуля.

Возвращаемое значение:

Имя примитива или nil, если примитива с данным номером в наборе нет.

Пример:

(ssname ssnab 0) возвращает имя первого примитива в наборе ssnab (<Имя объекта: 7ec9f5f0>)

Вернутся к началу справочника…

Функция  sssetfirst.

(sssetfirst <набор1> [<набор2>])

Функция sssetfirst включает ручки у примитивов, входящих в <набор1>.

А у примитивов входящих в <набор2> включает ручки и подсвечивает их пунктиром.

Возвращаемое значение:

список с именами наборов.

Пример:

(sssetfirst  ssnab1 ssnab2)

Возвращает: (<Selection set: 4> <Selection set: 8>)

ssnab1 – у набора будут включены только ручки.

ssnab2 – у набора будут включены ручки и включено подсвечивание.

Вернутся к началу справочника…

Функции пользователя:

Функция  defun

Позволяет пользователю, создать свою функцию.

(defun <имя> ([<аргументы>] / [<временные>])
  <выражения>
)

Аргументы:

<имя> -  любой набор символов, имя новой функции

Если перед именем добавить префикс «с:», то эту функцию можно будет использовать как стандартную команду AutoCAD.

<аргументы> – символы, разделенные пробелами и используемые в качестве аргументов новой функции.
<временные> – временные переменные, которые используются в выражениях.
<выражения> - любая последовательность выражений, которые используют аргументы, временные переменные, глобальные переменные (сохраняют свое значение после завершения функции) и другие функции.

Возвращаемое значение:

Результат последнего вычисляемого выражения.

Пример:

(defun Rasch (a b / с)
  (setq с (* a b))
  (+ с a)
)

Создана новая функция Rasch. У функции два аргумента (a и b) и одна временная переменная (с). В функции два выражения: первое вычисляет произведение a и b, и сохраняет его в переменной с, второе рассчитывает сумму с и а.

Если функция загружена, ее можно вызвать:

Пример вызова функции Rasch:

(Rasch 2 3) возвратит 8.
(Rasch 1 3) возвратит 4.

Вернутся к началу справочника…

Функции для работы с диалоговыми окнами:

Функция load_dialog.

Загружает DCL-файл в память.

(load_dialog <файл>)

Аргумент <файл> — текстовая строка с именем загружаемого DCL-файла.

Возвращаемое значение:

целое число:
положительное – номер загруженного файла;
отрицательное – если загрузка не произошла.

Пример:

(load_dialog "mp_paral.dcl") возвращает 2.

Вернутся к началу справочника…

Функция unload_dialog.

Выгружает DCL-файл из память.

(unload_dialog <номер>)

Аргумент <номер> — положительное число с номером загруженного DCL-файла.

Возвращаемое значение – nil

Пример:

(unload_dialog 2) возвращает nil.

Вернутся к началу справочника…

Функция new_dialog.

Открывает на экране диалоговое окно, если его диалог уже загружен в память.

(new_dialog <диалог> <номер> [<действие>] [<положение>])

Аргументы:

<диалог> - текстовая строка с именем диалога;
<номер> - положительное число с номером загруженного DCL-файла, в котором описан диалог;
<действие> - строка с LISP-выражением, выполняемым по умолчанию;
<положение> - список из двух чисел, задающих в пикселях положение левого верхнего угла диалогового окна. Если аргумент опущен, диалоговое окно располагается в центре экрана.

Пример:

(new_dialog "mp_paral" dcl_id)

Открывает диалоговое окно mp_paral из DCL-файла с номером dcl_id.

Вернутся к началу справочника…

Функция done_dialog.

Закрывает диалоговое окно и передает значение, которое можно прочитать функцией start_ dialog.

(done_dialog  <число>)

Аргумент < число > — это положительное число, которое станет возвращаемым значение функции start_ dialog.

Возвращаемое значение:

Список из двух целых чисел с координатами левого верхнего угла диалогового окна в момент его закрытия.

Пример:

(done_dialog  7) может вернуть (200 200)

Функция start_dialog в этом случаи вернет 7.

Вернутся к началу справочника…

Функция start_dialog.

(start_dialog)

Возвращает целое число, которое было передано в качестве аргумента функции done_dialog.

Вернутся к началу справочника…

Функции, работающие с полями диалогового окна:

Функция action_tile.

Задает при помощи LISP-выражение действие, которое нужно выполнить при выборе поля или редактировании его содержимого

(action_tile <код> <выражение>)

Аргументы

< код > - строка с кодом поля;
< выражение > - строка с LISP-выражением.

Возвращаемое значение – Т.

Пример:

(action_tile "accept" "(raz_paral) (done_dialog 1)") мы можем прочитать так:

При нажатии на кнопку «ОК» («accept» – код кнопки ОК) выполнить пользовательскую функцию (raz_paral) и функцию (done_dialog 1).

Вернутся к началу справочника…

Функция get_tile.

Читает содержимое поля (значение атрибута value).

(get_tile <код>)

Аргумент:

< код > - строка с кодом поля

Возвращаемое значение:

Строка с текущем значением поля.

Пример:

(get_tile “eb_Dl”) может вернуть “200”.

Вернутся к началу справочника…

Функция set_tile.

Позволяет менять содержимое поля, заданное атрибутом value.

(set_tile <код> <значение>)

Аргументы:

< код > - строка с кодом поля;
< значение > - строка с новым значением поля.

Возвращаемое значение:

Значение второго аргумента.

Пример:

(get_tile “eb_Dl” “300”) возвращает “300”.

Вернутся к началу справочника…

Функция  exit.

Осуществляет принудительный выход из программы.

(exit)

Возвращаемого значения нет. В командную строку выводится сообщение об ошибке:

;ошибка: завершить / выйти прервать

Вернутся к началу справочника…

Оставить комментарий

Ваш mail не будет опубликован.

Вы можете использовать HTML теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>