Археология об основании Рима: Новые раскопки проясняют и такой острый дискуссионный вопрос, как дата самого возникновения Рима...
Наброски и зарисовки растений, плодов, цветов: Освоить конструктивное построение структуры дерева через зарисовки отдельных деревьев, группы деревьев...
Топ:
Установка замедленного коксования: Чем выше температура и ниже давление, тем место разрыва углеродной цепи всё больше смещается к её концу и значительно возрастает...
Когда производится ограждение поезда, остановившегося на перегоне: Во всех случаях немедленно должно быть ограждено место препятствия для движения поездов на смежном пути двухпутного...
Интересное:
Отражение на счетах бухгалтерского учета процесса приобретения: Процесс заготовления представляет систему экономических событий, включающих приобретение организацией у поставщиков сырья...
Лечение прогрессирующих форм рака: Одним из наиболее важных достижений экспериментальной химиотерапии опухолей, начатой в 60-х и реализованной в 70-х годах, является...
Как мы говорим и как мы слушаем: общение можно сравнить с огромным зонтиком, под которым скрыто все...
Дисциплины:
2021-06-30 | 39 |
5.00
из
|
Заказать работу |
|
|
Набор - это временное множество, в которое входят имена основных примитивов рисунка (как правило, они собираются по какому-то признаку-фильтру). Неосновные примитивы (составные части блока или вершины полилинии) не могут входить в набор. Имя набора обычно сохраняется в какой-нибудь переменной AutoLISP, чтобы затем можно было извлекать из набора нужные примитивы.
При необходимости сохранять наборы примитивов в рисунке следует оформлять их в виде групп с помощью команды GROUP. Группы относятся к неграфическим объектам, существующим внутри рисунка.
Функция ssget формирует набор по запросу или признаку:
(ssget [<метод>] [<точка1> [<точка2>]] [<список>] [<фильтр>])Аргумент <метод> - это текстовая строка, принимающая одно из следующих значений (в локализованной версии системы AutoCAD все перечисляемые строки должны спереди дополняться символом "_"), характеризующих метод выбора примитивов:
· "С" - выбор секущей рамкой;
· "СР" - выбор секущим многоугольником;
· "F" - выбор секущей линией;
· "I" - текущий выбор с помощью ручек;
· "L" - выбор последнего видимого примитива;
· "Р" - последний сформированный ранее набор;
· "W" - выбор рамкой;
· "WP" - выбор многоугольником;
· "X" - вся база примитивов рисунка, включая объекты на замороженных слоях и вне видимой части экрана, с учетом аргумента <фильтр> (в этом случае аргумент <фильтр> не должен быть опущен);
· "А" - вся база примитивов рисунка, включая объекты на замороженных слоях и вне видимой части экрана;
· ":Е" - все примитивы, попадающие в прицел устройства указания;
· ":N" - выбор основных примитивов с помощью подпримитивов (вершин полилинии или сети, компонент блока). Параматр используется только при графическом варианте выбора и только для указания рамкой, секущей рамкой и точкой. Он может привести к повторяемости примитивов в наборе, поскольку, например, можно отметить одну и ту же полилинию с помощью любой из ее вершин (см. также функцию ssnamex);
|
· ":S" - допускает выбор только одного объекта.
Аргумент <точка1> при отсутствии аргумента <точка2> определяет дополнительное условие для включения в набор: включаемый примитив должен проходить через точку, заданную аргументом <точка1>. Если заданы оба аргумента <точка1> и <точка2>, то заданные ими точки являются углами простой или секущей рамки (когда в качестве метода выбора применяются рамки, т. е. "W" или "С").
Аргумент <список> представляет собой список, элементами которого являются точки, используемые в методах "F", "WP", "СР".
Аргумент <фильтр> - это список со структурой, аналогичной структуре списка, возвращаемого функцией entget, что позволяет оставить только те примитивы, которые удовлетворяют дополнительным признакам (например, определенному цвету, слою, весу и т. д.).
Возвращаемое значение функции ssget - имя созданного набора (или nil, если создать набор невозможно).
Примеры:
· (ssget) - выдает стандартный запрос:
· (Select objects:) и далее создает набор в соответствии с дальнейшими указаниями пользователя;
· (ssget '(15.78 320.1)) - создает набор из примитивов, проходящих через точку (15.78 320.1);
· (ssget "_с" '(1.57 -40.4) '(15.78 320.1)) - создает набор из примитивов, выбираемых секущей рамкой с углами в точках (1.57 -40.4) и (15.78 320.1);
· (ssget "_x" '((0. " POLYLINE ") (8. "WALLS"))) - создает набор из всех примитивов рисунка, являющихся полилиниями типа POLYLINE и лежащими на слое WALLS;
· (ssget " А") - создает набор из всех примитивов рисунка, аналогично методу "_Х" с пустым фильтром, т. е. (ssget "_Х" '()) или (ssget "_X" nil).
В рисунке одновременно может быть открыто не более 128 наборов выбора. При достижении такого предела функция ssget отказывается создавать следующие наборы и возвращает nil. Чтобы удалить ненужные наборы, следует присвоить значение nil переменным, хранящим имена этих наборов.
|
Для манипуляций с наборами в языке AutoLISP предусмотрены следующие функции:
· (ssadd [<примитив> [<набор>] ]) - добавление примитива в набор; если аргумент <набор> опущен, а аргумент <примитив> задан, то создается новый набор из одного примитива; если оба аргумента опущены, то создается новый пустой набор (но его значение не равно nil); возвращается имя набора;
· (ssdei <примитив><набор>) - удаление примитива из набора, заданных соответствующими аргументами <примитив> и <набор>; возвращается имя набора, если операция удаления выполнена, или nil, если примитив не содержится в наборе и удалить его нельзя;
· (sslength <набор>) - возвращает количество примитивов в наборе, заданном аргументом <набор>;
· (ssmemb <примитив><набор>) - проверка вхождения примитива в набор, заданных соответствующими аргументами <примитив> и <набор>; возвращается имя примитива (т. е. значение аргумента <примитив>), если он входит в рассматриваемый набор, или nil - если не входит;
· (ssname <набор><номер>) - извлечение примитива из набора по порядковому номеру, заданных соответствующими аргументами <набор> и <номер>; аргумент <номер> должен быть либо целым числом от 0 до 32 767, либо целым числом в вещественной форме больше 32767.0; нумерация примитивов в наборе начинается с нуля; возвращается имя примитива или nil;
· (ssnamex <набор> [<номер>]) - извлечение примитива из набора по порядковому номеру (заданных соответствующими аргументами <набор> и <номер>), но при этом выдается дополнительная информация о методах формирования набора (см. ниже); если аргумент <номер> опущен, то выводится информация обо всех примитивах набора;
· (sssetfirst <набор1> [<набор2>]) - включает ручки у примитивов, входящих в наборы, заданные аргументами <набор1> и <набор2>, но еще и подсвечивает пунктиром примитивы из набора2 (что означает выбор их для следующей операции редактирования);
· (ssgetfirst) - возвращает список с именами двух наборов, аналогичных по назначению аргументам <набор1> и <набор2> функции sssetfirst (у примитивов набора включены только ручки, у примитивов набора2 включены ручки и подсвечивание).
|
Функция ssnamex возвращает список, в котором элементами являются описания способа выбора примитивов, попавших в набор. Если аргумент <номер> не задан, то длина возвращаемого списка равна количеству элементов, определяемых аргументом <набор>. Если аргумент <номер> задан и задан корректно, то возвращаемым значением будет список из одного элемента - описания способа выбора примитива с порядковым номером, равным значению аргумента <номер>. Если же аргумент <номер> задан неправильно, то функция ssnamex вернет nil.
Описание способа выбора примитива - это список из трех элементов: (<метод><примитив><данные>). Параметр <метод> - целое число, которое соответствует методу выбора функции ssget и может принимать такие значения:
0 - неинтерактивный выбор ("L", "А", "X" и т. п.);
1 - выбор указанием точки;
2 - "W" или "WP";
3 - "С" или "СР";
4 - "F".
Если на месте параметра <метод> стоит отрицательное число, то оно определяет многоугольник выбора (см. описание многоугольника ниже).
Параметр <примитив> описания способа выбора примитива является его именем в том виде, в котором оно выводится функцией entlast. Параметр <данные> может быть либо только числом 0, либо числом 0 и списком, уточняющим выбор, либо числом 0 и номером многоугольника. В уточняющем списке может быть точка, с помощью которой выбран объект. Если использован номер многоугольника (а он должен быть отрицательным: -1, -2 и т. п.), то далее будет следовать описание многоугольника с соответствующим номером.
Описание многоугольника - это список такого вида: (<номер_многоугольника><точка1>... <точкаN>). Нумерация многоугольников начинается с -1 и наращивается путем добавления -1 к очередному номеру.
Описание точки (<точка1> и т. п.) - это список из трех (или двух) элементов: (<код><база> [<вектор>]). Описание точки зависит от вида, на котором она выбиралась, и фактически представляет собой описание прямой, луча или отрезка. Параметр <код> является кодом описания точки (0 - прямая, 1 - луч, 2 - отрезок), параметр <база> представляет собой начальную точку описания, а необязательный параметр <вектор> - это либо направление, в котором продолжается бесконечная линия (прямая или луч), либо смещение в сторону, характерное для отрезка.
|
Пример:
Если в набор nab5 включен один объект, который был указан точкой (7.51 16.02) на обычном виде сверху в МСК, то выражение (ssnamex nab5 0) возвращает примерно следующее: ((1 <имя объекта: 14аа560> 0 (0 (7.51 16.02 0.0)))).
В этом примере возвращенный функцией ssnamex список состоит из одного элемента (списка), в котором присутствуют следующие составные части:
· <метод> - равен 1 (соответствует выбору указанием точки);
· <примитив> - <Имя объекта: 14аа560>;
· <данные> - 0 (0 (7.51 16.02 0.0)), что соответствует точке (7.51 16.02 0.0), примененной для выбора примитива.
Другие примеры значений, возвращаемых функцией ssnamex:
· ((0 <Имя объекта: 14ае578> 0)) - один примитив, выбранный неинтерактивным методом (например, "L");
· ((3 <Имя объекта: 14ае568> О -1) (3 <Имя объекта: 14ае578> 0 -1) (-1 (0 (-147.787 129.133 0.0)) (0 (-64.2728 129.133 0.0)) (0 (- 64.2728 22.3376 0.0)) (0 (-147.787 22.3376 0.0)))) - два примитива, выбранных секущим прямоугольником с номером -1 (для прямоугольника заданы четыре точки);
· ((1 <Имя объекта: 14ае560> 0 (0 (74.2672 64.8218 0.0))) (2 <Имя объекта: 14ае570> 0 -1) (2 <Имя объекта: 14ае568> 0 -1) (-1 (0 (-177.446 158.755 0.0)) (0 (40.3151 158.755 0.0)) (0 (40.3151 83.1407 0.0)) (0 (-177.446 83.1407 0.0)))) - три примитива, первый из которых выбран указанием с помощью точки (74.2672 64.8218 0.0), а второй и третий выбраны рамкой, которая фигурирует как многоугольник с номером -1.
В этих примерах параметр <вектор> описания точек нигде не использован, т. е. объекты выбирались на виде сверху в МСК.
Наборы - удобный инструмент для выбора нужных примитивов рисунка с заданными свойствами. После формирования набора затем из него с помощью функции ssname (или ssnamex) извлекаются нужные объекты, с которыми далее выполняются необходимые операции (например: удаление, модификация и т. д.).
|
|
Адаптации растений и животных к жизни в горах: Большое значение для жизни организмов в горах имеют степень расчленения, крутизна и экспозиционные различия склонов...
Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьшения длины пробега и улучшения маневрирования ВС при...
История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...
Археология об основании Рима: Новые раскопки проясняют и такой острый дискуссионный вопрос, как дата самого возникновения Рима...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!