.. role:: blue :class: blue Автоматический режим распознавания оболочки по полигональной сетке =================================================================== .. _Automatic_shell_recognition_mode_by_polygon_mesh: .. версия ядра: Интерфейс автоматического преобразования C3D B-Shaper представлен двумя функциями: :blue:`ConvertMeshToShell`\() и :blue:`ConvertCollectionToShell`\(). Метод .. code-block:: cpp MbResultType ConvertMeshToShell( MbMesh & mesh, MbFaceShell *& shell, const MbMeshProcessorValues & params = MbMeshProcessorValues() ); выполняет создание оболочки в граничном представлении (B-Rep), соответствующей модели, заданной полигональной сеткой. Алгоритм модуля в автоматическом режиме распознаёт и реконструирует грани, соответствующие элементарным поверхностям (плоскость, цилиндр, конус, сфера, тор), поверхностям вращения или NURBS поверхностям. Входными параметрами метода являются: - *mesh* – полигональная сетка модели; - *params* – настройки преобразования. Выходным параметром метода является построенная оболочка *shell*. При удачной работе алгоритма метод возвращает значение *rt_Success*, в противном случае метод возвращает код ошибки из перечисления :blue:`MbResultType`. Метод объявлен в файле *action_b_shaper.h*. К настройкам преобразования относится значение точности распознавания, то есть максимально допустимого отстояния вершин полигональной сетки в границах данного сегмента до распознаваемой поверхности. Эта точность может быть абсолютной или относительной: при использовании относительной точности отклонение граней тела от сетки проверяется относительно размера модели. Также пользователю доступна опция переключения режимов распознавания, которая позволяет управлять типами поверхностей при реконструкции. Эти параметры находятся в полях класса :blue:`MbMeshProcessorValues`, который содержит: - *useRelativeTolerance* – флаг использования относительной точности; - *tolerance* – точность распознавания; - *surfReconstructMode* – режим распознавания поверхностей, из перечисления: - *srm_All* – строить все поверхности; - *srm_NoGrids* – не строить поверхности на базе триангуляции; - *srm_CanonicOnly* – строить только элементарные поверхности; - *srm_Default* – по умолчанию. Метод .. code-block:: cpp MbResultType ConvertCollectionToShell( MbCollection & collection, MbFaceShell *& shell, const MbMeshProcessorValues & params = MbMeshProcessorValues() ); выполняет создание оболочки в граничном представлении (B-Rep), соответствующей коллекции элементов, содержащих полигональную сетку. Алгоритм модуля в автоматическом режиме распознаёт и реконструирует грани, соответствующие элементарным поверхностям (плоскость, цилиндр, конус, сфера, тор). Входными параметрами метода являются: - *collection* – коллекция элементов, содержащая полигональную сетку; - *params* – настройки преобразования. Выходным параметром метода является построенная оболочка *shell*. При удачной работе алгоритма метод возвращает значение *rt_Success*, в противном случае метод возвращает код ошибки из перечисления :blue:`MbResultType`. Метод объявлен в файле *action_b_shaper.h*. Тестовое приложение выполняет построение оболочки в граничном представлении командой меню «Создать→Тело→На базе полигональной модели→Преобразовать в тело с распознаванием поверхностей».