Jump to content

Фильтр компонентов группы

From FreeCAD Documentation
This page is a translated version of the page Part CompoundFilter and the translation is 83% complete.
Outdated translations are marked like this.

Фильтр компонентов группы

Расположение в меню
Деталь → Соединить Группировка → Фильтр соединений
Верстаки
Деталь
Быстрые клавиши
Нет
Представлено в версии
0.17
См. также
Нет

Описание

Фильтр Компонентов Группы можно использовать для извлечения отдельных частей результата, например, операции Разрезать и сгруппировать, с помощью которой вы разделили объект.

Он может извлекать дочерние элементы по их индексам, проверять дочерние элементы на столкновение с формой трафарета и фильтровать дочерние элементы по их свойствам, таким как длина, площадь, объем.

Если в результате есть только один дочерний элемент, результатом будет этот элемент. Если дочерних элементов в результате больше одного, то результатом будет новый составной элемент (группа).

Применение

  1. Выберите нарезанный объект
  2. Примените Деталь → Соединить Группировка → Фильтр соединений (компонентов группы)
  3. Выберите объект CompoundFilter в дереве.
  4. На вкладке свойств установите для параметра «Filter Type - Тип фильтра» значение «specific items -

определенные элементы».

  1. Задайте в качестве элементов те элементы, которые вы хотите извлечь.
    1. Для одного элемента это число, начинающееся с 0, т.е. если вы хотите извлечь первый элемент, введите 0 в это поле, 1 для следующего элемента и так далее...
    2. Если вы хотите извлечь более одного элемента за раз, разделите числа символом «;», например, значение «0;2» извлечет первый и третий элемент.
    3. Общий случай - который также охватывает вышеупомянутые возможности - представляет собой список диапазонов индексов, заданных в нотации Python, но без скобок. Диапазоны можно объединять точкой с запятой. Например:
      • 7:10 оставляет дочерние элементы индексов 7, 8 и 9 (индексы отсчитываются от нуля; индекс диапазона до исключается).
      • 1;2 оставляет элементы 1 и 2 (первый диапазон - дочерний 1, второй диапазон - дочерний 2, диапазоны соединяются точкой с запятой)
      • 0;-1 взять первый дочерний элемент (индекс 0) и последний (индекс -1 означает последний дочерний элемент, -2 - один перед последним и так далее)
      • 1: взять все, кроме первого дочернего элемента (отсутствие индекса означает «полностью до конца»).
      • ::-1 взять все дочерние элементоы в обратном порядке
      • ::2 взять все дочерние элементы с нечётным индексом, то есть индексы, 1,3,5, ..., которые являются элементами 2,4,6, ...
      • :;: дважды повторить введённое соединение
  2. Если вы хотите извлечь еще один фрагмент, снова выберите нарезанный объект. Теперь он находится под CompoundFilter в дереве.
  3. Повторите процедуру выделения, описанную выше. Срез и его подэлементы будут отображены под обоими CompoundFilter; они, конечно, не повторяются в модели. Очень быстрый способ извлечь еще один фрагмент - скопировать CompoundFilter. Но будьте внимательны: вас спросят, хотите ли вы скопировать элементы под CompoundFilter, на что вы должны ответить нет, вы же не хотите их копировать, вы только ссылаетесь на них.

Свойства

  • ДанныеБаза: фильтруемый объект.
  • Варианты выбора ДанныеFilter Type - типа фильтра:
    • bypass (игнорировать): нет фильтра. Исходное соединение выводится без изменений.
    • specific items (определённые элементы): извлекаются элементы, перечисленные в свойстве "items"
    • collision-pass (столкновение): извлекаются части, которые касаются или пересекаются с формой 'Stencil (трафарет)'.
    • window-volume (объём - по умолчанию): извлекаются все части, которые имеют объем между «Window From (Объём От)» и «Window To (Объём До)», где 100% - самый большой элемент, а не неразрезанный исходный объект. Значение 100% является эталонным значением, которое можно переопределить с помощью «Override Max Val» - «Переопределить максимальное значение».
    • window-area (площадь): то же, что и window-volume, но где вместо объёма выделения определяется нарезанная площадь сечений, а не объем.
    • window-length (длина): то же, что и window-volume, но где вместо объёма выделения определяется длина краёв.
    • window-distance (расстояние); извлекаются дочерние элементы, расстояние которых до формой 'Stencil (трафарет)' находится в пределах диапазона значений, определяемого свойствами «Window From (От)», «Window To (До)», «Override Max Val (Переопределить максимальное значение)».
  • ДанныеInvert (инвертировать): если установлено значение true, список элементов, как описано выше, исключается, а не включается.
  • ДанныеOverride Max Val (Переопределить максимальное значение): диапазон значений определяется в процентах от максимального значения. Максимальное значение вычисляется в соответствии со следующим набором правил:
    • если OverrideMaxVal отличен от нуля - используется оно.
    • в противном случае, если указана ссылка на 'Stencil (трафарет)' - вычисляется соответствующее значение формы трафарета (не применимо к расстоянию между окнами 'FilterType')
    • в противном случае берётся максимальное значение от дочерних элементов в группе для фильтрации.
  • ДанныеStencil (трафарет): ссылка на фигуру трафарета. Для Collision-Pass и Window-Distance FilterType stencil - это объект, с которым нужно проверить столкновение/расстояние. Для других типов фильтров «window-***» трафарет используется для предоставления справочного значения для процентных значений окна (переопределение максимального значения). Во всех остальных режимах «Stencil» игнорируется.
  • ДанныеWindow From (От): процент верхнего порога для выбора частей, 100% относительно самой большой части.
  • ДанныеWindow To (До): процент нижнего порога для выбора частей, 100% относительно самой большой части.
  • Данныеitems (элементы): список или диапазон элементов, которые нужно выбрать, если тип фильтра - «specific items (определённые элементы)».