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

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

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

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

参考示例代码:

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几何内核干货知识:

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数据分析

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

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

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

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

  • 8
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值