Manifold Geometry // Многообразная Геометрия

На ГрафиКоне-2017

На конференции Графикон 2017 в Перми нами было сделано три доклада:

  1. Towards cylindrical primitive extraction from industrial laser-scan data by local approximation with refinement
  2. CAD model simplification using graph-based feature recognition
  3. CAD model inspection utility and prototyping framework based on OpenCascade

Ниже дается отредактированная стенограмма доклада о приложении Analysis Situs. Это платформа, на которой основывается львиная доля публикуемых здесь материалов.

1

Предлагаем вашему вниманию доклад о программе анализа CAD-моделей и средстве прототипирования алгоритмов геометрического моделирования.

2

Первая задача приложения состоит в том, чтобы дать средство инспекции CAD-модели.

3

Для полигональных моделей средства инспекции уже существуют. Исследователи и программисты, работающие с полигональными моделями, могут знать такие инструменты, как MeshLab или OpenFlipper. Эти инструменты позволяют анализировать геометрические модели, заданные триангуляцией. Кроме того, в них есть средства прототипирования новых алгоритмов. Последнее, как правило, возможно через механизм плагинов.

4

Нашей целью было создать аналогичные средства для точной геометрии САПР. На сегодняшний день таких средств в открытом доступе нет.

5

Граничные модели САПР отличаются от полигональных допущением криволинейных граней и ребер. Таким образом геометрия САПР, в отличие от полигонального представления, дает точную форму объекта.

6

Но что это за форма? Каковы ее аналитические свойства? Как извлечь информацию о геометрии модели? Скажем, для цилиндрической грани можно узнать ее ось и радиус, если тип несущей поверхности определен именно как цилиндрический. Для граней свободной формы может потребоваться узнать степени сплайна и другие свойства, такие как порядок гладкости, периодичность, пару узловых векторов и т.п.

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

7

Аналогично MeshLab и OpenFlipper, наша программа решает две задачи:

  1. Анализ существующей CAD-модели в граничном представлении.
  2. Прототипирование новых алгоритмов.

Пользователь начинает работу с системой, загружая файл в формате STEP. После этого пользователь может выбирать грани и ребра модели, чтобы проанализировать их внутреннее устройство. Так, для грани мы видим ее несущую поверхность и обрезающий эту поверхность контур (т.н. «параметрический портрет»).

8

Чтобы продуктивно инспектировать граничную модель, нужно понимать ее состав. Граничная модель содержит данные двух видов:

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

Средства инспекции должны покрывать и геометрию и топологию. Возникает вопрос, как визуализировать такие данные? Топологические отношения между примитивами, составляющими модель, не видны из картинки, представляющей изображение CAD-модели в САПР. Геометрические примитивы представляются в полигональной форме, также не давая возможности судить об истинном аналитическом выражении формы.

Визуализация даешь лишь синтетический взгляд на модель, тогда как для разработки алгоритмов геометрического моделирования нужен аналитический аппарат.

9

На слайде изображен пример базовой инспекции геометрии. Пользователь выбирает грань (в данном случае это лопатка турбины) и видит несколько изображений ее несущей геометрии. Так, изопараметрические линии (слева) позволяют визуально оценить качество параметризации поверхности, ее «регулярность». Карта кривизн (справа) позволяет увидеть нежелательные осцилляции формы. Кроме того, текстом выводятся аналитические свойства поверхности (тип и проч.).

10

Другой вид геометрического анализа — анализ двугранных углов. Смежные грани стыкуются по ребру, и можно поставить вопрос о его типе: выпуклый он или вогнутый. Это одна из базовых геометрических эвристик, которая используется, например, в задаче распознавания конструктивных элементов и прямом редактировании.

11

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

12

Ориентированные контуры грани можно визуализировать и в пространстве моделирования. Цветом кодируется топологическая ориентация ребра, стрелкой — геометрическая.

13

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

14

В практике геометрического моделирования важно отделять чистую и точную топологию модели от неточного описания формы. Топология — это направленный граф. Узлами графа являются топологические элементы (в частности, такие граничные элементы как грань, ребро и вершина). Дуги графа задают отношения принадлежности топологических элементов друг другу.

Из общего графа топологии (слева) можно вывести вспомогательные, такие как граф смежности граней (справа). Повторим, что работа с топологическими структурами позволяет «сэкономить» на вычислительной геометрии.

15

Средство анализа CAD-моделей должно быть лояльно к возможным дефектам граничного представления. Кроме того, такие дефекты должны акцентироваться с той целью, чтобы пользователь имел возможность их легко обнаружить и по возможности исправить. На слайде показаны некоторые дефекты модели, такие как свободные вершины и неограниченные грани.

16

Вторая задача системы — прототипирование.

17

Мы исходим из того, что результатом исследования в области геометрического моделирования должен быть прототип. У прототипа две функции:

  1. Общение с индустрией. Используя прототип, мы демонстрируем инженерам работоспособную концепцию. Ранний прототип — это решение ДО индустриализации, позволяющее исследовательскому коллективу сэкономить на трудоемкой программной инженерии.
  2. Общение с академией. Если мы публикуем некий результат, то прототип, доступный членам научного сообщества, делает наш результат воспроизводимым. Получается открытая и честная игра, которую в некоторых кругах называют open science.

Для прототипирования предусмотрено два механизма. Первый предполагает создание нового приложения на компонентной базе Analysis Situs. Это позволяет иметь максимально легковесный и специфическим образом адаптированный прототип. Здесь мы исходим из принципа «одна проблема — один прототип».

Другой способ состоит в расширении приложения-инспектора через модули командной строки Tcl. В этом случае новая функциональность оформляется в виде команд Tcl, подгружаемых динамически.

18

На момент доклада приложению Analysis Situs уже два года. За это время было реализовано несколько прототипов, часть из которых была оформлена как коробочные продукты.

19

Первый пример — реконструкция трубопровода из данных лазерного сканирования. На эту тему нами был подготовлен специальный доклад.

20

Пример коммерческого алгоритма. Речь идет о вырезании региона оболочки, моделирующей корпус корабля. Пользователь задает замкнутый полигональный контур, после чего система осуществляет «захват контура» при помощи специального алгоритма и толерантной булевой операции.

21

Распознавание конструктивных элементов, включая такие фичеры, как карманы, отверстия, канавки, скругления и проч.

22

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

23

Хотя система, о которой мы говорим, имеет явный ориентир на «немые» модели (т.е. без истории построения), разработка параметрических моделей также возможна. Граф зависимостей между фичерами допускает эффективный пересчет модели после редактирования параметров пользователем.

24

Средства визуализации VTK позволяют оценивать качество расчетных сеток, генерируемых по точной граничной модели.

25

Последний пример — дань горьковской школе динамических систем. Рассматривается динамическая система второго порядка. Ставится вопрос об ее качественно-численном исследовании. Поскольку фазовым пространством данной конкретной системы (в примере речь идет о системе фазовой автоподстройки частоты) является цилиндр, нам удобно его представить как цилиндрический примитив в трехмерной сцене. Дальнейшая работа строится на пользовательском событии. Пользователь выбирает точку на цилиндре, задавая тем самым начальные условия движения системы. Дифференциальные уравнения, описывающие движение, решаются методом Рунге-Кутта. Интегральная кривая представляется сплайном и визуализируется на цилиндре, давая представление о качественном разбиении фазового пространства. Этот пример — своеобразная игрушка, которая демонстрирует междисциплинарную природу системы прототипирования как таковой.

26

Мы приглашаем всех желающих для участия в проекте. Спасибо за внимание.