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
   34   35   36   37   38   39   40   41   42   43   44