OCCT 入门(3)核心模块与架构
文章目录
- 一、核心模块与架构
- 1、架构概述
- 2、核心模块
- 3、数据流转
- 3.1、几何创建(Geometric Primitives)
- 3.2、拓扑构建(Topology Construction)
- 3.3、模型处理(Modeling Algorithms)
- 3.4、可视化(Visualization Pipeline)
- 3.5、数据导出(Data Exchange)
- 3.6、关键特点
一、核心模块与架构
1、架构概述
OpenCASCADE Technology (OCCT) 采用模块化分层架构,核心模块分为基础层、建模层和可视化层,各层协同工作以提供完整的几何建模能力。其架构的核心组成:
2、核心模块
OCCT的核心模块功能:
- 基础模块(Foundation Classes)
- TKernel:核心基础类(字符串、容器、异常处理)
- TKMath:数学计算工具(矩阵运算、几何变换)
- TKG2d/TKG3d:2D/3D几何基础(点、曲线、曲面)
- 建模模块(Modeling Data & Algorithms)
- TopoDS:边界表示(BRep)拓扑数据结构
- Geom/Geom2d:参数化几何对象(NURBS曲线/曲面)
- BRepAlgoAPI:高级建模算法(布尔运算、倒角等)
- 可视化模块(Visualization)
- AIS(交互服务):对象显示、选择、高亮
- V3d:3D视图系统(基于OpenGL)
- OpenGl:底层图形渲染接口
- 数据交换模块(Data Exchange)
- STEP/IGES:工业标准格式支持
- STL:3D打印网格输出
- 高级功能模块
- TKMesh:网格生成与处理
- TKHLR:隐藏线消除
- TKFillet:倒圆角功能
3、数据流转
OpenCASCADE(OCCT)的数据流转遵循 几何建模 → 拓扑处理 → 可视化 → 交互/导出 的典型流程,核心过程如下:
3.1、几何创建(Geometric Primitives)
- 输入:参数化定义(如半径、高度等)
- 模块:
Geom
/Geom2d
- 关键操作:
gp_Pnt P1(0,0,0); // 创建点 Handle(Geom_Line) line = new Geom_Line(P1, gp_Dir(1,0,0)); // 创建直线
- 输出:参数化几何对象(曲线、曲面)
3.2、拓扑构建(Topology Construction)
- 输入:几何对象 + 连接关系
- 模块:
TopoDS
/BRepBuilderAPI
- 关键操作:
TopoDS_Edge edge = BRepBuilderAPI_MakeEdge(line); // 几何→拓扑 TopoDS_Wire wire = BRepBuilderAPI_MakeWire(edge); // 组合拓扑元素
- 输出:BRep模型(边界表示)
3.3、模型处理(Modeling Algorithms)
- 输入:BRep模型
- 模块:
BRepAlgoAPI
- 关键操作:
TopoDS_Shape box = BRepPrimAPI_MakeBox(10,10,10); TopoDS_Shape cutResult = BRepAlgoAPI_Cut(box, sphere); // 布尔运算
- 输出:加工后的拓扑模型
3.4、可视化(Visualization Pipeline)
- 输入:BRep模型
- 模块:
AIS
/V3d
- 关键操作:
Handle(AIS_Shape) aisShape = new AIS_Shape(cutResult); viewer->Display(aisShape, Standard_True); // 提交到渲染管线
- 输出:3D可交互对象
3.5、数据导出(Data Exchange)
- 输入:BRep模型
- 模块:
STEPControl
/STL
- 关键操作:
STEPControl_Writer writer; writer.Transfer(cutResult, STEPControl_AsIs); writer.Write("output.stp"); // 导出STEP文件
- 输出:标准化工业文件(STEP/IGES/STL等)
3.6、关键特点
- 精确BREP传递:几何信息在流程中始终保持数学精确性
- 非破坏性操作:算法生成新Shape,原数据可复用
- 统一数据接口:所有阶段通过
TopoDS_Shape
对象传递
此流程是OCCT工业级可靠性的核心,既支持交互式CAD操作,也适合批处理几何计算。