Введение в Автолисп | страница 27
(ssget “X” список__фильтров) создает набор из всех объектов чертежа, удовлетворяющих списку фильтров.
(ssget список_фильтров) предлагает пользователю свободный выбор, но в набор включает лишь те объекты, которые удовлетворяют списку фильтров.
Организацию списка фильтров можно проследить на следующем примере:
(ssget “X” ‘((0 . “CIRCLE”) (-4 . “>=”) (40 . 2.0)))
Функция создает набор из всех окружностей, имеющихся в чертеже, радиус которых равен или превышает 2.0.
В последнем примере использован оператор соответствия (relational operator), обладающий кодом DXF, равным -4, и выделяющий из общей массы объектов лишь те, которые удовлетворяют заданному условию. Он может иметь силу, если параметр выбора является численной величиной (целым или вещественным числом, точкой или вектором). В таблице 5 приведен список некоторых операторов соответствия.
Таблица 5. Операторы соответствия для фильтров наборов
Оператор | Значение |
---|---|
“*” | Нет ограничений |
“=” | Равно |
“<>”, “!=” или “/=” | Не равно |
“<” | Меньше чем |
“>” | Больше чем |
“<=” | Меньше или равно |
“>=” | Больше или равно |
Список фильтров может быть создан и с использованием логических операторов: “
Описанная ранее программа bolt.lsp создала шесть наборов примитивов. Однако всегда желательно количество используемых наборов сократить. Ниже приводится фрагмент программы, создающей лишь один набор. Для этого потребовалось создать специальные слои, в которых расположен чертеж болта.
(command “layer” “new” “b1”
“new” “b2”
“I” “continuous” “b1”
“|” “Acad_ISO04w100” “b2”
“с” “white” “b1”
“c” “red” “b2”
“s” “b1” “”)
(command “pline” p1 “w” “0.8” “” p2 p3 p4
“pline” p6 p7 p8 p9 “c”
“line” p10 p11
“line” p12 p14
“line” p13 p15)
(command “layer” “s” “b2” “”)
(command “line” p16 p17)
(setq ss (ssget “x” ‘((-4 . “ (8 . “b1”) (8 . “b2”) (-4 . “OR>”)) ) ) Теперь в операциях поворота и перемещения болта можно использовать один набор ss, включающий в себя все примитивы, принадлежащие изображению болта. В практике проектирования программист обычно использует именно эту описанную схему, вместо того чтобы вписывать программно создаваемые конструкции в существующие слои, типы линий и цвета.