OpenCascade判断曲面类型(转)

在读取STEP、IGES等格式的文件所表示的B-rep模型后,若想进行进一步的处理或计算,首先需要能正确识别出其中的实体和曲面。下面给出判断模型中曲面类型的示例:

复制代码
for (TopExp_Explorer anExpSF(shape, TopAbs_FACE); anExpSF.More(); anExpSF.Next())
{
    const TopoDS_Shape& aFace = anExpSF.Current();
    faceNumber++;

    TopoDS_Face face = TopoDS::Face(aFace);
    BRepAdaptor_Surface BS(face, Standard_True);
    GeomAdaptor_Surface AdpSurf = BS.Surface();

    if (AdpSurf.GetType() == GeomAbs_Cylinder)
    {
        // Cylinder face found
    }
    else if (AdpSurf.GetType() == GeomAbs_Plane)
    {
        // Plane face found
    }
    else if (AdpSurf.GetType() == GeomAbs_Sphere)
    {
        // Sphere face found
    }
}
复制代码

支持的类型有:

GeomAbs_Plane , GeomAbs_Cylinder , GeomAbs_Cone , GeomAbs_Sphere ,
GeomAbs_Torus , GeomAbs_BezierSurface , GeomAbs_BSplineSurface , GeomAbs_SurfaceOfRevolution ,
GeomAbs_SurfaceOfExtrusion , GeomAbs_OffsetSurface , GeomAbs_OtherSurface

官方文档:
https://dev.opencascade.org/doc/refman/html/_geom_abs___surface_type_8hxx.html
参考资料:
http://www.cppblog.com/mythma/archive/2008/05/29/51527.html

转自:OpenCascade判断曲面类型 - 幸福的闪电 - 博客园 (cnblogs.com)

 

posted @   格美格美  阅读(360)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
点击右上角即可分享
微信分享提示