OCCT几何内核开发-brep数据结构

OpenCascade提供了TopExp_Explorer类,可以遍历模型中的face、edge等。

为了方便分析研究模型的构成,《OpenCascade插件化三维算法研究平台》开发了模型遍历及数据浏览功能。

OCCT几何内核开发-brep数据结构_第1张图片

做这个功能的目的是从数据层面,去分析模型处理的结果,方便开展下一步的研究工作:算法研究、数据库存储、协同设计等。

参考示例代码:

void listAll(QTreeWidgetItem* item,  const TopoDS_Shape& shape)
{
  //  if (!item) return;
    
    for (TopExp_Explorer anExp(shape, TopAbs_COMPOUND); anExp.More(); anExp.Next())
    {
        QTreeWidgetItem* subItem = new QTreeWidgetItem(item);
        addData(subItem, anExp.Current());
    }
     
    for (TopExp_Explorer anExp(shape, TopAbs_COMPSOLID); anExp.More(); anExp.Next())
    {
        QTreeWidgetItem* subItem = new QTreeWidgetItem(item);
        addData(subItem, anExp.Current());
    }
    for (TopExp_Explorer anExp(shape, TopAbs_SOLID); anExp.More(); anExp.Next())
    {
        QTreeWidgetItem* subItem = new QTreeWidgetItem(item);
        addData(subItem, anExp.Current());
    }
    for (TopExp_Explorer anExp(shape, TopAbs_SHELL); anExp.More(); anExp.Next())
    {
        QTreeWidgetItem* subItem = new QTreeWidgetItem(item);
        addData(subItem, anExp.Current());
    }
    for (TopExp_Explorer anExp(shape, TopAbs_FACE); anExp.More(); anExp.Next())
    {
        QTreeWidgetItem* subItem = new QTreeWidgetItem(item);
        addData(subItem, anExp.Current());
    }
    for (TopExp_Explorer anExp(shape, TopAbs_WIRE); anExp.More(); anExp.Next())
    {
        QTreeWidgetItem* subItem = new QTreeWidgetItem(item);
        addData(subItem, anExp.Current());
    }
    for (TopExp_Explorer anExp(shape, TopAbs_EDGE); anExp.More(); anExp.Next())
    {
        QTreeWidgetItem* subItem = new QTreeWidgetItem(item);
        addData(subItem, anExp.Current());
    }
    for (TopExp_Explorer anExp(shape, TopAbs_VERTEX); anExp.More(); anExp.Next())
    {
        QTreeWidgetItem* subItem = new QTreeWidgetItem(item);
        addData(subItem, anExp.Current());
    }
}

开发语言:C++17,QT 6.6.1 OCCT 7.7.0

OCCT几何内核开发-brep数据结构_第2张图片

OCCT几何内核干货知识:

Vertex: topological equivalent of point
Edge: topological equivalent of curve
Wire: set of connected edges
Face: topological equivalent of surface
Shell: set of connected faces
Solid: piece of 3D space
Compsolid: set of connected solids
Compound: group of any topological entities

前几年,为了做BIM的算法研究,比如,BIM模型的梁编号自动识别与纠正,轴网识别等算法和功能,做了AutoCAD、Revit的数据浏览工具。开发语言是C#,第三方包引用了ODA。

CAD数据分析

OCCT几何内核开发-brep数据结构_第3张图片

OCCT几何内核开发-brep数据结构_第4张图片

OCCT几何内核开发-brep数据结构_第5张图片

Revit数据分析(参数、几何)

OCCT几何内核开发-brep数据结构_第6张图片

欢迎大家联系交流, 微信/QQ: 23245175

几何内核、OCCT、FreeCAD、BIM软件开发、装配模型、知识图谱。

下期预告:采用图数据库neo4j,做知识图谱开发,管理装配模型。

你可能感兴趣的:(occt,几何内核,brep)