Page 39 - AutoLISP и Visual LISP в среде AutoCAD
P. 39
2.16. НАБОРЫ ПРИМИТИВОВ
Практически все команды редактирования AutoCad могут работать не
только с одним примитивом, но и с группой примитивов, которую называют
набором. AutoLisp также может работать с наборами примитивов, т.е.
предоставлять пользователю возможность заносить примитивы в набор и
затем модифицировать занесенные туда примитивы. Набор формируется
функцией ssget.
Примеры использования функции ssget:
(ssget) Выбор объектов по одному
(ssget "L") Выбирает последний примитив, добавленный
к базе данных
(ssget '(5 12)) Выбирает примитив, проходящий через точку
(5, 12)
(ssget "W" '(0 0) '(5 5)) Выбирает примитивы внутри окна с
координатами точек (0, 0) (5, 5)
(ssget "C" '(0 0) '(1 1)) Выбирает примитивы, пересекаемые рамкой с
координатами точек (0, 0) (1, 1)
Особый режим функции ssget "X" – использование фильтров. В этом
режиме функция ssget просматривает всю графическую базу и создает набор,
состоящий из примитивов, удовлетворяющих заданным критериям.
Пример:
(ssget "X" '((0 . "LINE") (8 . "0"))) ; Выбор всех объектов LINE
; на слое 0
Функции для работы с наборами примитивов
(sslength набор) Возвращает число примитивов в наборе.
(ssname набор номер) Возвращает имя примитива под номером из
набора. Первый примитив в наборе имеет номер 0
(ssadd) Создает новый пустой набор.
(ssadd имя_примитива) Создает набор содержащий один примитив.
Добавляет примитив в набор
(ssadd имя_примитива
набор)
(ssdel имя_примитива Удаляет примитив из набора и возвращает новый
набор) набор
(ssmemb Если примитив находится в наборе, то
имя_примитива набор) возвращается его имя, если нет – nil
38