Введение в BREP представление геометрических моделей.

Библиотека ZenCad основана на функциональных возможностях и объектной структуре геометрического ядра OpenCascade, использующего для работы с геометрическими моделями BREP (boundary representation/граничное представление).

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


BREP представление.

Граничное представление (ан. Boundary representation) есть способ представления тел через описание их границ.

Объект в граничном представлении задаётся топологически (с помощью набора ссылок на ограничивающие его объекты) и геометрически (с помощью порождающего его форму геометрического правила). Ограничивающие объекты в свою очередь задаются исходя из тех же соображений.

Так, например, куб является объёмным телом, порождённым внутренним пространством оболочки, образованной 6-ю гранями. Каждая грань геометрически задана уравнением плоскости и ограничена 4-мя объектами рёбер. Каждое ребро геометрически задано уравнением прямой и ограничено двумя вершинами.

В разных библиотеках, использующих BREP представление, разделение на классы объектов может выполняться с определённой спецификой, но общая идея будет неизменной. ZenCad использует систему классов ядра OpenCascade.


Классы геометрических объектов.

ZenCad OpenCascade Составной Мерность Описание
Shape TopoDS_Shape неопр. неопр. Абстрактный геометрический объект
Vertex* TopoDS_Vertex нет 0 Вершина
Edge TopoDS_Edge нет 1 Ребро
Wire TopoDS_Wire да 1 Сложное ребро
Face TopoDS_Face нет 2 Грань
Shell TopoDS_Shell да 2 Оболочка
Solid TopoDS_Solid нет 3 Твёрдое тело
CompSolid TopoDS_CompSolid да 3 Множество твёрдых тел
Compound TopoDS_Compound да неопр. Составной объект

! * В zencad практически всегда вместо Vertex используется эквивалентный объект точки point3.


Более подробно о ядре.

Ядро OpenCascade довольно обширно, имеет бесчисленное количество инструментов и потому врядли возможно сколь-нибудь передать его суть в рамках этой маленькой справки.

За подробной информацией о геометрическом ядре OpenCascade следует обратиться к документации: Technology Overview Reference Manual