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();

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM