Part CompoundFilter/ru: Difference between revisions

From FreeCAD Documentation
(Created page with "==Использование==")
(Updating to match new version of source page)
 
(18 intermediate revisions by 4 users not shown)
Line 1: Line 1:
<languages/>
<languages/>
{{Docnav/ru
{{Docnav/ru
|[[Part_ExplodeCompound/ru|Explode compound]]
|[[Part_ExplodeCompound/ru|Разъединить соединение]]
|[[Part_Boolean/ru|Булевы операции]]
|[[Part_Extrude/ru|Extrude]]
|[[Part_Module/ru|Part]]
|[[Part_Workbench/ru|Верстак Part]]
|IconL=Part_ExplodeCompound.svg
|IconL=Part_ExplodeCompound.svg
|IconR=Part_Boolean.svg
|IconC=Workbench_Part.svg
|IconC=Workbench_Part.svg
|IconR=Part_Extrude.svg
}}
}}


<div class="mw-translate-fuzzy">
{{GuiCommand/ru
{{GuiCommand/ru
|Name=Part Compound‏‎Filter
|Name=Part Compound‏‎Filter
Line 16: Line 17:
|Version=0.17
|Version=0.17
}}
}}
</div>


[[File:CompoundFilter.png]]
[[File:CompoundFilter.png]]


==Описание==
==Description==


<div class="mw-translate-fuzzy">
The CompoundFilter can be used to extract the individual pieces of the result of e.g. a [[Part Slice]] operation, with which you have split an object.
CompoundFilter можно использовать для извлечения отдельных частей результата операции вроде [[Part Slice/ru|Part Slice]], с помощью которой вы разбили объект.
</div>


Он может извлекать дочерние элементы по их индексам, тестировать дочерние элементы на предмет столкновений с формой трафарета и фильтровать дочерние элементы на основе их свойств, таких как длина, площадь, объем.
It can extract children by their indexes, test children for collisions with stencil shape, and filter children based on their properties, such as length, area, volume.


Если в результате есть только один дочерний элемент, результатом будет дочерний элемент. Если получается более одного дочернего элемента, на выходе будет новое соединение.
If there is only one child in the result, the output is the child. If there is more than one child to output, the output is a new compound.


==Применение==
==Использование==


<div class="mw-translate-fuzzy">
# Select the sliced object
# Выбрать нарезаемый объект
# Apply {{MenuCommand|Menu → Part → Compound → CompoundFilter}}
# Применить {{MenuCommand|Деталь → Соединенить → Фильтр соединений}}
# Select the CompoundFilterObject in the tree
# Выберите CompoundFilterObject в древе проекта
# In the properties tab set "Filter Type" to "specific items"
# На вкладке свойств установите "Filter Type" на "specific items"
# Set items to the elements you want to extract
# Заенсите в свойство "items" элементы, которые вы хотите извлечь
## For a single piece this is a number starting with 0, i.e. if you want to extract the first element enter 0 in this field, 1 for the next element ...
## Для цельного куска это число, начинающееся с 0, т.е. если вы хотите извлечь первый элемент, введите 0 в это поле, 1 для следующего элемента ...
## If you want to extract more than one piece at a time separate the numbers with ";", e.g. a value of "0;2" will extract the first and the third element
## Если вы хотите извлечь более одного фрагмента за раз, разделите числа знаком ";", например значение «0;2» извлечет первый и третий элементы
## The general case - which covers the possibilities mentioned above as well - is a list of index ranges, specified in Python notation, but without brackets. Ranges can be chained with semicolon. For example:
## Общий случай, который также охватывает упомянутые выше возможности, представляет собой список диапазонов индексов, указанных в нотации Python, но без скобок. Диапазоны можно объединять точкой с запятой. Например:
##* <tt>7:10</tt> take children of indexes 7, 8 and 9 (indexes are zero-based; range-to index is excluded).
##* <tt>7:10</tt> принимает дочерние элементы индексов 7, 8 и 9 (индексы отсчитываются от нуля; индекс диапазона до исключается).
##* <tt>1;2 </tt> take children 1 and 2 (first range is child 1, second range is child 2, ranges joined by semicolon)
##* <tt>1;2 </tt> принимает потомков 1 и 2 (первый диапазон - дочерний 1, второй диапазон - дочерний 2, диапазоны соединяются точкой с запятой)
##* <tt>0;-1</tt> take first children (index 0) and last one (index -1 means last child, -2 - one but last, and so on)
##* <tt>0;-1 </tt> взять первого дочернего элемента (индекс 0) и последнего (индекс -1 означает последний дочерний элемент, -2 - один перед последним и так далее)
##* <tt>1: </tt> take all but first child (missing index means "all the way to the end").
##* <tt>1: </tt> взять все, кроме первого дочернего элемента (отсутствие индекса означает «полностью до конца»).
##* <tt>::-1</tt> take all children in reversed order
##* <tt>::-1 </tt> взять все дочерние элементоы в обратном порядке
##* <tt>::2 </tt> take all odd-indexed children, i.e. indexes, 1,3,5,..., which are the elments 2,4,6, ...
##* <tt>::2 </tt> взять все дочерние элементы с нечетным индексом, то есть индексы, 1,3,5, ..., которые являются элементами 2,4,6, ...
##* <tt>:;: </tt> repeat the input compound twice
##* <tt>:;: </tt> дважды повторить введенное соединение
# If you want to extract another piece select the sliced object again. It is now placed under the CompoundFilter in the tree
# Если вы хотите извлечь другой кусок, снова выберите нарезанный объект. Теперь он находится под CompoundFilter в дереве.
# Repeat the selection procedure from above. The slice and its subelements will be displayed under both CompoundFilters; they are, of course not repeated in the model. A very fast way to extract another piece is to copy the CompoundFilter. But '''watch out''': You are asked if you want to copy the elements under the CompoundFilter too, which you must answer with ''no'', you don't want to copy them, you only reference them.
# Повторите процедуру выбора, описанную выше. Срез и его подэлементы будут отображаться в обоих CompoundFilters; разумеется, они не повторяются в модели. Самый быстрый способ извлечь другой фрагмент - скопировать CompoundFilter. Но '''будьте осторожны''': вас спросят, хотите ли вы скопировать также элементы из CompoundFilter, на что вы должны ответить «нет», вы не хотите их копировать, вы только ссылаетесь на них.
</div>


==Свойства==
==Properties==


* {{PropertyData|Base}}: Object to be filtered.
* {{PropertyData|Основание}}: фильтруемый объект.
* {{PropertyData|Filter Type}} selectable options:
* Варианты выбора {{PropertyData|Filter Type}}:
** bypass; нет фильтра. Исходное соединение выводится без изменений.
** bypass; no filter. The original compound is output, unchanged.
** specific items; extract the items listed in the "items" property
** specific items; извлекаются элементы, перечисленные в свойстве "items"
** collision-pass; extract pieces that touch or intersect with 'Stencil' shape.
** collision-pass; извлекаются части, которые касаются или пересекаются с формой 'Stencil'.
** window-volume (default); extract all pieces which have a volume between "Window From" and "Window To" where 100% is the biggest piece - and not the unsliced object. The value of 100% is a reference value which can be overridden by "OverrideMaxVal".
** window-volume (по умолчанию); извлекаются все части, которые имеют объем между «Window From» и «Window To», где 100% - самая большая часть, а не неразрезанный объект. Значение 100% является эталонным значением, которое можно переопределить с помощью «OverrideMaxVal».
** window-area; the same as window-volume where the sliced area determines the selection instead of the volume.
** window-area; то же, что и window-volume, но где вместо объёма выделение определяет нарезанная площадь, а не объем.
** window-length; the same as window-volume where the length of the edges determines the selection instead of the volume.
** window-length; то же, что и window-volume, но где вместо объёма выделение определяет длина краёв.
** window-distance; extract children whose distance to 'Stencil' shape is within value window, defined by properties "WindowFrom", "WindowTo", "OverrideMaxVal".
** window-distance; извлекаются дочерние элементы, расстояние которых до формой 'Stencil' находится в пределах окна значений, определяемого свойствами «WindowFrom», «WindowTo», «OverrideMaxVal».
* {{PropertyData|Invert}}: If set to true the list as described above is excluded instead of included.
* {{PropertyData|Invert}}: если установлено значение true, список, как описано выше, исключается, а не включается.
* {{PropertyData|Override Max Val}}: диапазон окна значений определяется в процентах от максимального значения. Максимальное значение вычисляется в соответствии со следующим набором правил:
* {{PropertyData|Override Max Val}}: Value window range is defined in percentages of maximum value. The maximum value is computed according to the following set of rules:
** if 'OverrideMaxVal' is nonzero - use it.
** если OverrideMaxVal отличен от нуля - используется оно.
** в противном случае, если указана ссылка 'Stencil' - вычисляется соответствующее значение формы трафарета (не применимо к расстоянию между окнами 'FilterType')
** otherwise, if 'Stencil' link is supplied - calculate the corresponding value of stencil shape (not applicable to window-distance 'FilterType')
** в противном случае берется максимальное значение от дочерних элементов в компаунде для фильтрации.
** otherwise, take maximum value from children in compound to be filtered.
* {{PropertyData|Stencil}}: ссылка на фигуру трафарета. Для Collision-Pass и Window-Distance FilterType stencil - это объект, с которым нужно проверить столкновение/расстояние. Для других типов фильтров «window-***» трафарет используется для предоставления справочного значения для процентных значений окна (переопределение максимального значения). Во всех остальных режимах «Stencil» игнорируется.
* {{PropertyData|Stencil}}: Link to a stencil shape. For collision-pass and window-distance FilterType's, stencil is the object to test collision/distance against. For other "window-***" filter types, stencil is used to provide reference value for window percentages (maximum value override). In all other modes, 'Stencil' is ignored.
* {{PropertyData|Window From}}: Upper threshold percentage for selecting pieces, 100% is relative to the biggest piece.
* {{PropertyData|Window From}}: процент верхнего порога для выбора частей, 100% относительно самой большой части.
* {{PropertyData|Window To}}: Lower threshold percentage for selecting pieces, 100% is relative to the biggest piece.
* {{PropertyData|Window To}}: процент нижнего порога для выбора частей, 100% относительно самой большой части.
* {{PropertyData|items}}: List or range of elements to be selected if Filter Type is "specific items".
* {{PropertyData|items}}: список или диапазон элементов, которые нужно выбрать, если тип фильтра - «specific items».


==Notes==



{{Docnav
{{Docnav/ru
|[[Part_ExplodeCompound|Explode compound]]
|[[Part_ExplodeCompound/ru|Разъединить соединение]]
|[[Part_Extrude|Extrude]]
|[[Part_Boolean/ru|Булевы операции]]
|[[Part_Module|Part]]
|[[Part_Workbench/ru|Верстак Part]]
|IconL=Part_ExplodeCompound.svg
|IconL=Part_ExplodeCompound.svg
|IconR=Part_Boolean.svg
|IconC=Workbench_Part.svg
|IconC=Workbench_Part.svg
|IconR=Part_Extrude.svg
}}
}}



Latest revision as of 10:13, 2 June 2022

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».