Part BooleanFragments/ru

Описание
Инструмент для вычисления всех фрагментов, которые могут возникнуть в результате применения логических операций между входными фигурами. Например, для двух пересекающихся сфер создаются три неперекрывающихся, но соприкасающихся твердых тела.



(на картинке выше части были впоследствии раздвинуты вручную, чтобы показать разрез)

Итоговая форма всегда является компаундом. Состав компаунда зависит от типов входных фигур и режима работы. Это означает, что вы не сразу получаете доступ к отдельным частям результата - части остаются сгруппированными вместе. Отдельные части могут быть извлечены путем применения разбивки соединения (Draft Downgrade).

У инструмента три режима: "Standard", "Split", and "CompSolid".

«Standard» и «Split» различаются действием инструмента на рёбра, оболочки и составные тела: если «Split», они разделяются; если «Standard», они остаются вместе (получают дополнительные сегменты).

Компаундная структура в режимах «Standard» и «Split» следует компаундной структуре на входе. То есть, если вы обработаете два компаунда, каждый из которых содержит сферу, как в примере выше, результат также будет содержать два компаунда, каждый из которых содержит куски изначально входившей в них сферы. Это значит, что общий кусок будет повторен в результате дважды. Только если обе входные сферы не входят в компаунды, результат будет содержать общий кусок единожды.

В режиме «CompSolid» твердые тела объединяются в compsolid (compsolid - это набор твердых тел, соединенных гранями; они связаны с твердыми телами, как полилинии связаны с ребрами, а оболочки связаны с гранями; название, вероятно, является сокращенной фразой «композитное твердое тело»). На выходе получается невложенное соединение compsolids.

Применение
Порядок выделения не важен, поскольку действие инструмента симметрично. Достаточно выделить по одной подфигуре каждого объекта (например, лица). Вы также можете выбрать соединение, содержащее все соединяемые фигуры, например Массив.
 * 1) Выбрать объекты для пересечения.
 * 1) Вызвать команду Part BooleanFragments несколькими способами:
 * 2) * Нажатие кнопки [[Image:Part_BooleanFragments.svg|24px|link=Part_BooleanFragments/ru]] на панели инструментов
 * 3) * Использование пункта в меню Деталь

Создается параметрический объект Boolean Fragments. Исходные объекты скрываются, а результат пересечения показываются в Окне трёхмерного вида.

Свойства

 * : список объектов для пересечения. Обычно требуется как минимум два объекта, но подойдет и одно соединение, содержащее пересекаемые формы. (начиная с FreeCAD v0.17.8053, это свойство не отображается в редакторе свойств и доступно только через Python).
 * : «Standard», «Split» или «CompSolid». «Standard» - по умолчанию. «Standard» и «Split» отличаются действием инструмента на фигуры типа агрегирования: если «Split», они разделяются; в противном случае они хранятся вместе (получаются дополнительные сегменты).
 * : значение "нечеткости". Это дополнительный допуск, который следует применять при поиске пересечений в дополнение к допускам, сохраненным во входных формах.

Детали реализации
Инструмент «Boolean Fragments» в «Стандартном режиме» - это общий оператор Fuse (GFA) из OpenCascade. Он принимает комбинацию, вероятно, всех типов фигур, а логика вывода довольно запутанная. Смотрите Руководство пользователя OpenCascade: логические операции.

Для режимов «Split» и «CompSolid» FreeCAD выполняет дополнительную постобработку.

Программирование
Инструмент можно использовать в макросах и из консоли Python, используя следующую функцию: BOPTools.SplitFeatures.makeBooleanFragments(name)


 * Создает пустую функцию BooleanFragments. Свойство «Объекты» должно быть назначено впоследствии явно.
 * Возвращает вновь созданный объект.

BooleanFragments также может применяться к простым формам, без необходимости наличия объекта документа, с помощью:

Это может быть полезно для создания пользовательских сценариев Python.

Пример:

Инструмент сам реализован на Python, см. /Mod/Part/BOPTools/SplitFeatures.py там, где установлен FreeCAD.

Примечания
Инструмент появился в FreeCAD v0.17.8053. FreeCAD необходимо скомпилировать с OCC 6.9.0 или новее, иначе инструмент будет недоступен.