Справочник по стандартным 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>])
(if <условие> <выражение1> [<выражение2>])
(progn выражение1> [<выражение2>] … [<выражениеN>])
(while <условие> <выражение1> [<выражение2>] … [<выражениеN>])
Функции загрузки файлов.
Функции выполнения стандартных команд AutoCAD из AutoLISP.
(command [<параметр1>] … [<параметрN>])
(vl-cmdf [<параметр1>] … [<параметрN>])
Функции вычислений:
(polar <точка> <угол> <расстояние>)
Функции преобразования данных:
(rtos <число> [<режим> [<точность>]])
Функции обработки строк:
(strcat [<строка1>] [<строка2>] … [<строкаN>])
Функции обработки списков и точечных пар:
(list <элемент1> [<элемент2>] … [<элементN>])
(mapcar ‘<функция> <список1> [<список2> … <списокN>])
(append <список1> [<список2> … <списокN>])
Функции ввода данных и указания объектов:
(getpoint [<точка1>] [<запрос>])
Функции печати, вывода сообщений и доступа к файлам:
(princ [<аргумент>] [<дескриптор>])
Функции доступа к примитивам AutoCAD:
Функции, работающие с набором примитивов:
(ssget [<метод>] [<точка1>] [<точка2>] [<список>] [<фильтр>])
(ssadd [<примитив> [<набор>]])
(sssetfirst <набор1> [<набор2>])
Функции пользователя:
(defun <имя> ([<аргументы>] / [<временные>]) <выражения>)
Функции для работы с диалоговыми окнами:
(new_dialog <диалог> <номер> [<действие>] [<положение>])
Функции, работающие с полями диалогового окна:
(action_tile <код> <выражение>)
Функция 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 (> a b) 100 7) возвращает 100, если a>b, и 7 – в остальных случаях.
(if (= a b) (+ a b) (- a b)) возвращает результат вычисления выражения (+ a b), если a=b, иначе результат выражения (- a b)
(if (= a b) (+ a b)) возвращает результат вычисления выражения (+ a b), если a=b, иначе nil (т.к. <выражение2> опущено).
Если функция if использует для обработки по условию не одно выражение, а несколько, то эти выражения следует объединить с помощью функции prong.
Вернутся к началу справочника…
Функция progn.
Объединяет несколько выражений в одно, когда по синтаксису AutoLISP может использоваться только одно (как в функции if).
(progn выражение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)
Возвращаемого значения нет. В командную строку выводится сообщение об ошибке:
;ошибка: завершить / выйти прервать