Справочник AutoLISP функций. По назначению.
Справочник по стандартным AutoLISP функциям, которые используются в примерах на этом сайте.
Функция присвоения:
Арифметические функции:
Логические функции:
Функции загрузки файлов.
Функции выполнения стандартных команд AutoCAD из AutoLISP.
Функции вычислений:
Функции преобразования данных:
Функции обработки строк:
Функции обработки списков и точечных пар:
Функции ввода данных и указания объектов:
Функции печати, вывода сообщений и доступа к файлам:
Функции доступа к примитивам AutoCAD:
Функции, работающие с набором примитивов:
Функции пользователя:
Функции для работы с диалоговыми окнами:
Функции, работающие с полями диалогового окна:
Функция setqСохраняет значение < выражения > в < переменной >. Функция setq может использоваться с любым количеством аргументов, которое должно быть обязательно четным.
Сохраняет в переменной p1 значение функции getpoint .
Затем сохраняет в переменной p2 значение функции polar .
Арифметические функции:
Функция + .Вычисляет сумму чисел.
Тип возвращаемого значения:
Если аргументы не заданы, то возвращается 0 (целое). Если количество аргументов равно 1, то возвращается значение равное значению аргумента.
Функция — .Вычисляет разность чисел.
Тип возвращаемого значения:
Если аргументы не заданы, то возвращается 0 (целое). Если количество аргументов равно 1, то возвращается значение, вычитаемое из 0 (т.е. <число1> с противоположным знаком). Если количество аргументов равно 2 и более, то из первого числа вычитается сумма всех остальных.
Функция * .Вычисляет проиведение чисел.
Тип возвращаемого значения:
Если аргументы не заданы, то возвращается 0 (целое). Если количество аргументов равно 1, то возвращается значение аргумента. Если количество аргументов равно 2 и более, то выполняется перемножение всех аргументов.
Функция / .Вычисляет проиведение чисел.
Тип возвращаемого значения:
Если аргументы не заданы, то возвращается 0 (целое). Если количество аргументов равно 1, то возвращается значение аргумента. Если количество аргументов равно 2 и более, то выполняется деление первого аргумента на произведение всех остальных.
Если все аргументы целые, а в результате деления получается дробное число, то дробное часть откидывается и ответом будет целое число.
Логические функции:
Функция = .Проверяет равенство аргументов (рекомендуется использовать для чисел или строк).
Тип возвращаемого значения:
Если задан только один аргумент, то возвращается Т. Если количество аргументов 2 или больше, то при совпадении значений всех аргументов возвращается Т, в противном случаи – nil. При сравнении строк Т выдается только в случае, когда длины всех строк равны и все строки посимвольно совпадают. При сравнении чисел Т выдается также в том случае, когда одни аргументы целые, а другие вещественные, но их значения совпадают.
Функция /= .Проверяет неравенство аргументов (рекомендуется использовать для чисел или строк).
Тип возвращаемого значения: логическое (Т, если значения каких либо аргументов не совпали, и nil, если совпали). Если задан только один аргумент, то возвращается Т.
Функция < .Проверяет расположение аргументов по возрастанию, слева на право
Тип возвращаемого значения:
Для текстовых строк производится посимвольное сравнение, по возрастанию кодов символов. Если задан только один аргумент, то возвращается Т.
Функция <= .Проверяет расположение аргументов по не убыванию, слева на право
Тип возвращаемого значения:
Для текстовых строк производится посимвольное сравнение, по не убыванию кодов символов. Если задан только один аргумент, то возвращается Т.
Функция > .Проверяет расположение аргументов по убыванию, слева на право
Тип возвращаемого значения:
Для текстовых строк производится посимвольное сравнение, по убыванию кодов символов. Если задан только один аргумент, то возвращается Т.
Функция >= .Проверяет расположение аргументов по не возрастанию, слева направо
Тип возвращаемого значения:
Для текстовых строк производится посимвольное сравнение, не возрастанию кодов символов. Если задан только один аргумент, то возвращается Т.
Функция not .Выполняет операцию логического отрицания
Тип возвращаемого значения:
Функция if .Выполняет условную операцию типа if-then-else (если-то-иначе)
Тип возвращаемого значения:
Если функция if использует для обработки по условию не одно выражение, а несколько, то эти выражения следует объединить с помощью функции prong.
Функция progn .Объединяет несколько выражений в одно, когда по синтаксису AutoLISP может использоваться только одно (как в функции if).
Функция while .Выполняет операцию цикла по многократно проверяемому условию
Функция while прекратит свою работу, когда на некотором шаге аргумент <условие> получит значение nil. При неудачном задании цикл может оказаться бесконечным.
Если уже на первом шаге <условие> имеет значение nil, то функция while возвращает nil.
Функции загрузки файлов.
Функция loadФункция load выполняет загрузку файла программы в текущий документ.
Аргумент <сообщение> может быть опущен, в этом случаи при ошибке загрузки выдается стандартное сообщение AutoCAD.
Если файла “prog.lsp” не в папках поддержки AutoCAD, в качестве аргумента <файл> нужно указывать полный путь к файлу. Например “d:/MyLisp/ prog.lsp” или “d:\\MyLisp\\ prog.lsp”
Если расширение в имени файла опущено “prog”, то AutoCAD пытается выполнить загрузку, поочередно добавляя следующие расширения:
vlx – файлы vlx-приложений;
fas – файлы fas-приложений;
Функция vl-load-allФункция vl-load-all выполняет загрузку файла программы во все открытые документы и открываемые в данном сеансе AutoCAD.
Если файла “prog.lsp” не в папках поддержки AutoCAD, в качестве аргумента <файл> нужно указывать полный путь к файлу. Например “d:/MyLisp/ prog.lsp” или “d:\\MyLisp\\ prog.lsp”
Если расширение в имени файла опущено “prog”, то AutoCAD пытается выполнить загрузку, поочередно добавляя следующие расширения:
vlx – файлы vlx-приложений;
fas – файлы fas-приложений;
Функции выполнения стандартных команд AutoCAD из AutoLISP.
Функция command (похожа на функцию vl-cmdf ).Функция command имитирует ввод пользователя в командной строке AutoCAD.
Возвращаемое значение – nil
— построить отрезки с координатами первой точки (X=300, Y=300) координатами второй точки (X=700, Y=300) и координатами третий точки (X=700, Y=700).
Если аргументы отсутствую (command) – это равносильно нажатию пользователем клавиши <Esc>.
Применение функции command смотрите в уроке: AutoLISP. Стандартные команды Автокад.
Функция vl-cmdf (похожа на функцию command ).Функция vl-cmdf имитирует ввод пользователя в командной строке AutoCAD.
Возвращаемое значение – nil
— построить отрезки с координатами первой точки (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 .Вычисляет расстояние между двумя точками
Функция polar .Вычисляет координаты второй точки отстоящей от первой точки, заданной аргументом <точка>, на расстояние, величина которого указана в качестве аргумента <расстояние>
в направлении луча образующим с ось Х угол в радианах, заданный аргументом <угол>.
Функции преобразования данных:
Функция itoa .Преобразует целое число в строку.
Тип возвращаемого значения:
Функция rtos .Преобразует вещественное число в строку.
Допустимые значения аргумента <режим>:
3 – инженерный (футы и дюймы)
4 – архитектурный (футы и дюймы)
Чаще всего применяется десятичный режим.
<точность> — количество десятичных знаков в представлении вещественных чисел.
Если аргументы <режим> и <точность> опущены, то в качестве их значений принимаются текущие значения системных переменных LUNITS и LUPREC.
Тип возвращаемого значения:
Функция atoi .Преобразует строку в целое число.
Тип возвращаемого значения:
Число символов в строке не должно превышать 10. Если их больше, функция atoi вернет последние 10:
Функция atof .Преобразует строку в вещественное число.
Тип возвращаемого значения:
Функции обработки строк:
Функция strcat .Тип возвращаемого значения:
Если аргументы не заданы, то возвращается пустая строка ( “” ) .
Функции обработки списков и точечных пар:
Функция list .Объединяет элементы в список.
В качестве аргументов, образующих список, могут выступать любые объекты, которыми оперирует AutoLISP. Самый распространенный список из двух или трех вещественных чисел, которые представляют собой координаты точки.
Тип возвращаемого значения:
Функция car .Извлекает первый элемент из списка или DXF-код точечной пары.
Функция cdr .Извлекает подсписок без первого элемента или данные точечной пары.
Функция assoc .Функция assoc применяется к сложному списку, каждый элемент которого начинается с DXF-кода. Именно по этому коду функция assoc и извлекает элемент из списка.
Функция mapcarФункция mapcar поочередно применяет <функцию> сначала к первым элементам списков, затем ко втором и так далее. В результате образуется новый список, который и является возвращаемым значением.
Функция memberФункцию member проверяет принадлежность элемента списку
Функция nthФункция nth извлекает из списка элемент по порядковому номеру (нумерация элементов списка начинается с нуля).
Если номер превышает количество элементов списка, то возвращается nil.
Функция appendФункция append выполняет слияние списков в один.
Функции ввода данных и указания объектов:
Функция getpoint .Позволяет пользователю задать координаты точки при помощи мыши или клавиатуры.
Если указан аргумент <точка1>, то от координат этой точки, при указании точки с помощью мыши, рисуется резиновая нить. И мы задаем свою точку ориентируясь на координаты точки заданные в аргументе <точка1>.
Тип возвращаемого значения:
Функция getvar .Читает текущее значение системной переменной с наименованием, заданным аргументом <имя>
Функция setvar .Присваивает новое текущее значение системной переменной с наименованием, заданным аргументом <имя>.
Функции печати, вывода сообщений и доступа к файлам:
Функция princ .Записывает значение аргумента <аргумент>, который может быть любым выражением AutoLISP, в виде текстовой строки в файл с заданным дескриптором.
Если аргумент <дескриптор> опущен, то <аргумент> выводится в командной строке
Если <аргумент> — строка, то текст выводится без кавычек.
Если оба аргумента опущены, то функция осуществляет так называемый тихий выход, т.е. не возвращает никакого значении, в том числе nil.
Функция alert .Позволяет вывести на экран диалоговое окно с сообщением.
Аргумент – текстовая строка.
Возвращаемое значение nil.
Функции доступа к примитивам AutoCAD:
Функция entlast .Функция entlast извлекает имя последнего нарисованного основного примитива.
Возвращает: <Имя объекта: 7ec9f5f0>
Функция entsel .Функция entsel предлагает пользователю указать объект, выдавая запрос, текст которого задан в качестве аргумента.
Возвращает: (<Имя объекта: 7ec9f5f0> (1401.43 1292.2 0.0))
Функция entget .Функция entget получает список с характеристиками примитива и является основным средством извлечения информации о геометрии и свойствах.
<примитив> — имя примитива
Возвращает: ((-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) выдает стандартный запрос: «Выберите объекты:» и затем создает набор в соответствии с действиями пользователя. Пользователь может выбирать объекты по одному, рамкой или секущей рамкой. По окончанию выбора нужно нажать клавишу <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, что позволяет оставить только те примитивы, которые удовлетворяют дополнительным признакам (определенному цвету, слою, весу и т.д.).
Имя набора возвращается в следующем виде: <Selection set: 4>
В рисунке одновременно может быть открыто не более 128 наборов.
Функция ssadd .Функция ssadd добавляет примитив в набор.
<примитив> — имя примитива.
Возвращает: <Selection set: 4>
Функция sslength .Вычисляет длину набора, т.е. количество содержащихся в нем примитивов.
Аргумент <набор> — имя набора.
Функция ssname .Извлекает примитив из набора по порядковому номеру.
Функция sssetfirst .Функция sssetfirst включает ручки у примитивов, входящих в <набор1>.
А у примитивов входящих в <набор2> включает ручки и подсвечивает их пунктиром.
Возвращает: (<Selection set: 4> <Selection set: 8>)
ssnab1 – у набора будут включены только ручки.
ssnab2 – у набора будут включены ручки и включено подсвечивание.
Функции пользователя:
Функция defunПозволяет пользователю, создать свою функцию.
Если перед именем добавить префикс «с:», то эту функцию можно будет использовать как стандартную команду AutoCAD.
Создана новая функция Rasch. У функции два аргумента (a и b) и одна временная переменная (с). В функции два выражения: первое вычисляет произведение a и b, и сохраняет его в переменной с, второе рассчитывает сумму с и а.
Если функция загружена, ее можно вызвать:
Пример вызова функции Rasch:
Функции для работы с диалоговыми окнами:
Функция load_dialog .Загружает DCL-файл в память.
Аргумент <файл> — текстовая строка с именем загружаемого DCL-файла.
Функция unload_dialog .Выгружает DCL-файл из память.
Аргумент <номер> — положительное число с номером загруженного DCL-файла.
Возвращаемое значение – nil
Функция new_dialog .Открывает на экране диалоговое окно, если его диалог уже загружен в память.
Открывает диалоговое окно mp_paral из DCL-файла с номером dcl_id.
Функция done_dialog .Закрывает диалоговое окно и передает значение, которое можно прочитать функцией start_ dialog .
Аргумент < число > — это положительное число, которое станет возвращаемым значение функции start_ dialog .
Функция start_dialog в этом случаи вернет 7.
Функция start_dialog .Возвращает целое число, которое было передано в качестве аргумента функции done_dialog .
Функции, работающие с полями диалогового окна:
Функция action_tile .Задает при помощи LISP-выражение действие, которое нужно выполнить при выборе поля или редактировании его содержимого
Возвращаемое значение – Т.
При нажатии на кнопку «ОК» («accept» – код кнопки ОК) выполнить пользовательскую функцию (raz_paral) и функцию (done_dialog 1).
Функция get_tile .Читает содержимое поля (значение атрибута value).
Функция set_tile .Позволяет менять содержимое поля, заданное атрибутом value.
Функция exit .Осуществляет принудительный выход из программы.
Возвращаемого значения нет. В командную строку выводится сообщение об ошибке:
Оставить комментарий Отменить Ответить Бесплатный плагин для AutoCADO maDWG - плагин для AutoCAD
• Перенос спецификации из Excel в AutoCAD • Быстрая печать в PDF из пространства модели