Автоматический режим распознавания оболочки по полигональной сетке

Интерфейс автоматического преобразования C3D B-Shaper представлен двумя функциями: ConvertMeshToShell() и ConvertCollectionToShell().

Метод

MbResultType ConvertMeshToShell(       MbMesh &                mesh,
                                       MbFaceShell *&          shell,
                                 const MbMeshProcessorValues & params = MbMeshProcessorValues() );

выполняет создание оболочки в граничном представлении (B-Rep), соответствующей модели, заданной полигональной сеткой. Алгоритм модуля в автоматическом режиме распознаёт и реконструирует грани, соответствующие элементарным поверхностям (плоскость, цилиндр, конус, сфера, тор), поверхностям вращения или NURBS поверхностям.

Входными параметрами метода являются:

  • mesh – полигональная сетка модели;

  • params – настройки преобразования.

Выходным параметром метода является построенная оболочка shell.

При удачной работе алгоритма метод возвращает значение rt_Success, в противном случае метод возвращает код ошибки из перечисления MbResultType.

Метод объявлен в файле action_b_shaper.h.

К настройкам преобразования относится значение точности распознавания, то есть максимально допустимого отстояния вершин полигональной сетки в границах данного сегмента до распознаваемой поверхности. Эта точность может быть абсолютной или относительной: при использовании относительной точности отклонение граней тела от сетки проверяется относительно размера модели. Также пользователю доступна опция переключения режимов распознавания, которая позволяет управлять типами поверхностей при реконструкции. Эти параметры находятся в полях класса MbMeshProcessorValues, который содержит:

  • useRelativeTolerance – флаг использования относительной точности;

  • tolerance – точность распознавания;

  • surfReconstructMode – режим распознавания поверхностей, из перечисления:

    • srm_All – строить все поверхности;

    • srm_NoGrids – не строить поверхности на базе триангуляции;

    • srm_CanonicOnly – строить только элементарные поверхности;

    • srm_Default – по умолчанию.

Метод

MbResultType ConvertCollectionToShell(       MbCollection &          collection,
                                             MbFaceShell *&          shell,
                                       const MbMeshProcessorValues & params = MbMeshProcessorValues() );

выполняет создание оболочки в граничном представлении (B-Rep), соответствующей коллекции элементов, содержащих полигональную сетку. Алгоритм модуля в автоматическом режиме распознаёт и реконструирует грани, соответствующие элементарным поверхностям (плоскость, цилиндр, конус, сфера, тор).

Входными параметрами метода являются:

  • collection – коллекция элементов, содержащая полигональную сетку;

  • params – настройки преобразования.

Выходным параметром метода является построенная оболочка shell.

При удачной работе алгоритма метод возвращает значение rt_Success, в противном случае метод возвращает код ошибки из перечисления MbResultType.

Метод объявлен в файле action_b_shaper.h.

Тестовое приложение выполняет построение оболочки в граничном представлении командой меню «Создать→Тело→На базе полигональной модели→Преобразовать в тело с распознаванием поверхностей».