OpenCascade模型导入与导出及Shap的读写

边界表示法(Brep)

原文:边界表示法(Brep)简述

边界表示(Boundary Representation)简称为BRep表示,它是几何造型中最成熟、无二义的表示法。实体Solid用一组封闭的面组成,而每个面又由它所在的曲面的定义加上其边界来表示,面的边界是边的并集,而边又是由点来表示的。

边界表示的一个重要特征是描述形体的信息包括几何信息(Geometry)和拓朴信息(Topology)两个方面。拓朴信息描述形体上的顶点、边、面的连接关系,它形成物体边界表示的“骨架”。形体的几何信息犹如附着在“骨架”上的肌肉。例如,形体的某个面位于某一个曲面上,定义这一曲面方程的数据就是几何信息。此外,边的形状、顶点在三维空间中的位置(点的坐标)等都是几何信息,一般来说,几何信息描述形体的大小、尺寸、位置和形状等。

OpenCascade 提供了BinTools::Read 、BinTools::Write,对Shap的Brep文件读写功能。

在《OpenCascade插件化三维算法研究平台》上,演示效果如下:

参考代码:

void saveDemo()
{
     TopoDS_Shape shape = MakeBottle(2, 3.2, 0.2);
     auto result=BinTools ::Write(shape, "E:/bottle.brep");
     qDebug("保存:%s", result ? "success" : "fail");
}

Brep格式shap读取演示如下:

参考代码:

void readDemo(OccView* occView)
{
        TopoDS_Shape shape;
        auto result = BinTools::Read(shape, "E:/00job/bottle.brep");
        qDebug("读取:%s", result ? "success" : "fail");
        Handle(AIS_Shape) aisShape = new AIS_Shape(shape);
        auto aisInterContext = occView->aisInterContext;
        aisInterContext ->Display(aisShape, Standard_True);
        occView->v3dView->FitAll();
}

《OpenCascade插件化三维算法研究平台》开发了导入与导出功能,可以将Shap导出成dae、obj、step、gltf等多种格式。也可以把这些格式的文件导入平台展示。

功能效果演示如下:

导出:

导入:

猜你喜欢

转载自blog.csdn.net/stonewu/article/details/133094310