
- •Функции autolisp
- •Арифметические функции
- •Логические функции
- •Функции вычислений
- •Функции преобразования данных
- •Функции обработки строк
- •Функции обработки списков и точечных пар
- •Функции ввода данных и указания объектов
- •Функции печати, вывода сообщений и доступа к файлам
- •Функции доступа к примитивам AutoCad
- •Функции работы с памятью, приложениями и реестром Windows
- •Графические примитивы autocad в функции «command»
- •Бесконечная прямая линия
- •Многоугольник
- •Мультилиния
- •Окружность
- •Отрезок
- •Полилиния
- •Прямоугольник
- •Размеры
- •Цвет (установка текущего рабочего цвета)
- •Штриховка
- •Системные переменные autocad
- •Примеры использования элементов диалоговых окон
Функции доступа к примитивам AutoCad
entlast – извлекает последний не удаленный примитив рисунка.
Например, с помощью функции command построено несколько графических примитивов (линий, окружностей и т. д.). Тогда с помощью функций (setq b (entlast)) в переменной b сохранится информация о последнем изображенном примитиве. В дальнейшем переменная b может быть использована для редактирования примитива.
Если необходимо сохранять каждый примитив рисунка, то за каждым вызовом функции command должен следовать вызов функции entlast с сохранением примитивов в различных переменных.
entnext – извлекает либо первый, либо следующий примитив.
(setq b1 (entnext)) – возвращает первый не удаленный примитив.
(setq b2 (entnext b3)) – возвращает примитив, следующий за b3.
entsel – выбор примитива мышью.
(setq b (entsel “Укажите … ”))
entdel – удаление не удаленных примитивов или восстановление удаленных примитивов.
(setq a (entdel b)) – удаление примитива b. Информация об удаленном примитиве сохранена в переменной a.
(entdel a) – восстановление примитива b.
entget – получение списка с характеристиками примитива.
(setq a (entget b))
entmake – создание нового примитива по списку. Список может быть получен функцией entget, видоизменен и использован с функцией entmake.
(entmake a)
entmakex – аналогична функции entmake. Является основным инструментом создания словарей и X-записей.
entmod – модифицирует существующий примитив. Аналогична entmake, но новый примитив не создается.
entupd – перерисовка примитива на экране с учетом изменений, внесенных, например, функцией entmod.
(entupd b)
handent – получение имени примитива или неграфического объекта по его метке. Метка – это текстовая строка с 16-ричной меткой в том виде, как она возвращается функцией entget.
(handent метка)
nentsel
nentselp
Аналогичны функции entsel. Имеются особенности работы при выборе объектов типа «Полилиния» и «Блок».
ssget – формирует набор по запросу или признаку.
Наиболее характерные примеры:
(setq b (ssget)) – создает набор в соответствии с интерактивными действиями пользователя (как при «ручном» черчении в AutoCADе).
(setq b (ssget ‘(20.0 5.0))) – создает набор из всех примитивов, проходящих через указанную точку.
(setq b (ssget “_w” ‘(20.0 5.0) ‘(205.0 292.0))) – создает набор из примитивов, выбираемых рамкой с углами в указанных точках.
(setq b (ssget “_c” ‘(20.0 5.0) ‘(205.0 292.0))) – создает набор из примитивов, выбираемых секущей рамкой с углами в указанных точках.
(setq b (ssget “_x” ‘((0 . “Line”)))) – создает набор из всех примитивов, являющихся объектами типа “Line”.
Для формирования сложных условий применяются точечные пары с DXF-кодом -4. В них используются аналоги логических операторов AND, OR, NOT и операторов сравнения.
(setq b (ssget “_x” ‘((-4 . “<or”) (0 . “Arc”) (0 . “Circle”) (-4 . “or>”)))) –создает набор из примитивов, являющихся объектами типа “Arc” или “Circle”.
(setq b (ssget “_x” ‘((0 . “Line”) ‘(-4 . “>=”) ‘(370 . 100)))) – создает набор из линий, которые имеют значение веса, большее или равное 1,00 мм (в DXF-коде 370 хранятся веса, представленные числами в 100 раз больше).
ssadd – добавляет примитив в набор.
(ssadd a b) – добавляет примитив a в набор b.
ssdel – удаляет примитив из набора.
(ssdel a b) – удаляет примитив a из набора b.
sslength – вычисляет длину набора (количество примитивов).
(setq d (sslength b)) – длина набора b сохранится в переменной d.
ssmemeb – проверка вхождения примитива в набор.
(setq d (ssmemb a b)) – в переменной d сохранится значение примитива a, если он входит в набор b, или nil в противном случае.
ssname – извлечение примитива из набора по порядковому номеру.
(setq d (ssname набор номер))
ssnamex – извлечение примитива из набора по порядковому номеру. При этом выдается дополнительная информация о методах, с помощью которых набор был сформирован.
sssetfirst – включает ручки у примитивов, входящих в набор, и подсвечивает их пунктиром (что означает выбор их для следующей операции редактирования).
(sssetfirst nil набор)
По синтаксису языка, на месте константы nil может стоять другой набор. Однако, начиная с версии AutoCAD 2004, с ним ничего не происходит, поэтому имеет смысл в качестве первого аргумента функции sssetfirst использовать только nil.