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

Справочник 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 .

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

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

Оставить комментарий Отменить Ответить Бесплатный плагин для AutoCAD

O maDWG - плагин для AutoCAD

• Перенос спецификации из Excel в AutoCAD • Быстрая печать в PDF из пространства модели

📎📎📎📎📎📎📎📎📎📎