1 部分资料
官方文档: Open CASCADE Technology Documentation
官方Git仓库:OCCT Git
PythonOcc:GitHub - tpaviot/pythonocc: 3D CAD/CAM package for python OCCT的python封装,可以用python语言调用全部OCCT接口,用SWIG包装器编译的。
PyOCCT: github.com/trelau/pyOC… 相同的python OCCT封装,区别是它用pybind11包装器。
2 OCCT 核心功能模块
2.1 几何建模(Geometry & Topology)
- 几何体创建
BRepPrimAPI_MakeBox:创建立方体
BRepPrimAPI_MakeSphere:创建球体
BRepBuilderAPI_MakeEdge:创建边(基于曲线)
TopoDS_Shape box = BRepPrimAPI_MakeBox(10.0, 20.0, 30.0).Shape();
- 布尔运算
BRepAlgoAPI_Fuse:并集
BRepAlgoAPI_Cut:差集
BRepAlgoAPI_Common:交集
TopoDS_Shape fused = BRepAlgoAPI_Fuse(box1, box2).Shape();
- 曲面建模
Geom_BSplineSurface:NURBS 曲面
BRepOffsetAPI_MakeThickSolid:抽壳操作
2.2 数据交换(Data Exchange)
- 文件导入/导出
STEPControl_Reader:读取 STEP 文件
IGESControl_Writer:导出 IGES 文件
StlAPI_Writer:导出 STL 文件
STEPControl_Reader reader;
reader.ReadFile("model.step");
reader.TransferRoots();
TopoDS_Shape shape = reader.Shape();
2.3 可视化(Visualization)
- 3D 显示
AIS_InteractiveContext:交互式显示
V3d_Viewer:视图管理
Handle(AIS_InteractiveContext) context = new AIS_InteractiveContext(viewer);
context->Display(box, Standard_True);
2.4 几何算法(Algorithms)
- 计算属性
GProp_GProps:计算体积、质量
BRepGProp::VolumeProperties
GProp_GProps props;
BRepGProp::VolumeProperties(box, props);
Standard_Real volume = props.Mass();
- 网格化(Meshing)
BRepMesh_IncrementalMesh:生成三角网格
BRepMesh_IncrementalMesh mesher(shape, 0.1); // 三角化精度 0.1
mesher.Perform();
3 OCCT功能的具体实现形式
| 形式 | 描述 | 示例 |
|---|---|---|
| 类(Class) | 封装几何对象和算法(如 TopoDS_Shape 表示几何体) | TopoDS_Shape shape; |
| 函数(Function) | 全局工具函数(如计算距离、法向量) | BRepExtrema_DistShapeShape dist(shape1, shape2); |
| 工具类(Toolkit) | 提供复杂操作的封装(如 BRepAlgoAPI 布尔运算工具) | BRepAlgoAPI_Fuse fuseTool(shape1, shape2); |