Фильтр соединений

From FreeCAD Documentation
Revision as of 16:02, 20 December 2020 by Baritone (talk | contribs)

Part Compound‏‎Filter

Системное название
Part Compound‏‎Filter
Расположение в меню
Деталь → Фильтр соединений
Верстаки
Part
Быстрые клавиши
Нет
Представлено в версии
0.17
См. также
Нет

Описание

CompoundFilter можно использовать для извлечения отдельных частей результата операции вроде Part Slice, с помощью которой вы разбили объект.

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

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

Использование

  1. Выбрать нарезаемый объект
  2. Применить Меню → Деталь → Соединенить → Фильтр соединений
  3. Выберите CompoundFilterObject в древе проекта
  4. На вкладке свойств установите "Filter Type" на "specific items"
  5. Заенсите в свойство "items" элементы, которые вы хотите извлечь
    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, ...
      • :;: дважды повторить введенное соединение
  6. Если вы хотите извлечь другой кусок, снова выберите нарезанный объект. Теперь он находится под CompoundFilter в дереве.
  7. Повторите процедуру выбора, описанную выше. Срез и его подэлементы будут отображаться в обоих CompoundFilters; разумеется, они не повторяются в модели. Самый быстрый способ извлечь другой фрагмент - скопировать CompoundFilter. Но будьте осторожны: вас спросят, хотите ли вы скопировать также элементы из CompoundFilter, на что вы должны ответить «нет», вы не хотите их копировать, вы только ссылаетесь на них.

Свойства

  • ДанныеОснование: фильтруемый объект.
  • Варианты выбора ДанныеFilter Type:
    • bypass; нет фильтра. Исходное соединение выводится без изменений.
    • specific items; извлекаются элементы, перечисленные в свойстве "items"
    • collision-pass; извлекаются части, которые касаются или пересекаются с формой 'Stencil'.
    • window-volume (по умолчанию); извлекаются все части, которые имеют объем между «Window From» и «Window To», где 100% - самая большая часть, а не неразрезанный объект. Значение 100% является эталонным значением, которое можно переопределить с помощью «OverrideMaxVal».
    • window-area; то же, что и window-volume, но где вместо объёма выделение определяет нарезанная площадь, а не объем.
    • window-length; то же, что и window-volume, но где вместо объёма выделение определяет длина краёв.
    • window-distance; извлекаются дочерние элементы, расстояние которых до формой 'Stencil' находится в пределах окна значений, определяемого свойствами «WindowFrom», «WindowTo», «OverrideMaxVal».
  • Данные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».

Примечания