OpenCasCade基础知识

OCC的类比较多,看起来比较乱,在学习的过程可以总结一下,以方便后人。。。

 

1、gp_xxx包含了基本的几何类。

 

2、Standard_XXX是occ定义的数值类型,包括一些类型定义和宏定义。

 

3、Geom_XXX定义了几何数据结构,由gp_XXX构建成的数据结构,不包含算法,一般称其为构建几何类。

 

4、GC_MakeXXX也是由gp_XXX构建成的数据结构,与Geom_XXX不同的是,GC_MakeXXX包含构建算法,一般称其为几何形状构建包。

Handle(Geom_XXX) XXX = GC_MakeXXX(<params>)

 

5、TopoDS_XXX是由多个Geom_XXX组成的,他们有共同的父类TopoDS_Shape,从名字可以看出该类对象包括了拓扑关系,但是TopoDS_XXX仅是一种数据结构,不包括算法。

 

6、BRepBuilderAPI_XXX一般称为拓扑结构构建包,实现了从Geom_XXX到TopoDS_XXX的构建过程。

 

7、BRepPrimAPI_XXX一般称为实体构建包,也就是将TopoDS_XXX构建成为实体,当然这里的实体也是TopoDS_XXX对象

graph TD id1(顶点/gp_Pnt)-->id2(线段/GC_MakeSegment)-->id3(边/BRepBuilderAPI_MakeEdge)-->id4(线框/BRepBuilderAPI_MakeWire)-->id5(面/BRepBuilderAPI_MakeFace)-->id6(体/BRepPrimAPI_MakePrism)

8、BRepFilletAPI_XXX为倒角包。

 

9、TopExp_Explorer为拓扑解析包,用于TopoDS_XXX的解析,就是将已知实体(拓扑结构)解析为边组合、面组合等等。

for(TopExp_Explorer aFaceExplorer(myBody, TopAbs_FACE); aFaceExplorer.More(); aFaceExplorer.Next())
{ 
    TopoDS_Face aFace = TopoDS::Face(aFaceExplorer.Current()); 
}

10、TopAbs_ShapeEnum是一个特殊的结构,类似于一个拓扑结构的数组,具有More()、Next()、Current()三个重要的方法,一般称之为拓扑解析结果集。

 

11、BRepAlgoAPI_XXX是核心算法包,专门用于Shape对象的布尔运算(交集common(Boolean intersection)、差集cut(Boolean subtraction)、并集fuse(Boolean union)),一般称之为几何算法包。

 

12、BRep_Tool主要有三个方法,用于从TopoDS_XXX到Geom_XXX的转换。

graph LR id1(TopoDS_Face)-->id2(Geom_Surface)
graph LR id1(TopoDS_Edge)-->id2(Geom_Curve)
graph LR id1(TopoDS_Vertex)-->id2(Geom_Point)
Handle(Geom_Surface) aSurface = BRep_Tool::Surface(aFace);

 

13、Standard_Transient类主要有两个用途。

  ① DynamicType 函数用来获取 Handle(Geom_Surface)的真实类型,因为Geom_Surface有可能是任何一种面。
  ② IsKind 用来判断该类型是否是某个类的子类。

if(aSurface->DynamicType() == STANDARD_TYPE(Geom_Plane))
{ 
    Handle(Geom_Plane) aPlane = Handle(Geom_Plane)::DownCast(aSurface);
}

 

14、BRepOffisetAPI_XXX一般称为形体生成包,用于将线框模型生成实体模型。

BRepOffsetAPI_ThruSections aTool(Standard_True); 
aTool.AddWire(threadingWire1); 
aTool.AddWire(threadingWire2); 
aTool.CheckCompatibility(Standard_False); 
TopoDS_Shape myThreading = aTool.Shape();

 

 

posted @ 2021-09-19 15:49  禅元天道  阅读(777)  评论(0编辑  收藏  举报