OpenCascade Primitives BRep-Cylinder
Abstract. BRep is short for Boundary Representation. Boundary Representation gives a complete description of an object by associating topological and geometric information for solid modeling. In this case, objects are described by their boundaries. There are two types of information in BRep: Topological information and Geometric information. This paper is concerned with the Cylinder BRep in OpenCascade, and also show how to use Tcl script to dump cylinder BRep info.?
Key words. OpenCascade, BRep, Boundary Representation, Cylinder?
1. Introduction
本文通過在Draw Test Harness中的Tcl腳本來生成圓柱Cylinder的邊界表示(BRep)數據,通過對生成的數據進行分析,來理解OpenCascade中的Cylinder的邊界表示方式。?
如下圖所示為使用Tcl命令在Draw Test Harness中生成的圓柱:?
Figure 1.1 Cylinder Generated by Tcl in Draw Test Harness?
2. Dump Cylinder BRep Info by Tcl
使用Tcl腳本在Draw Test Harness中輸出圓柱(Cylinder)的邊界表示(BRep)數據的腳本程序如下圖所示:?
Figure 2.1 Tcl Script to Dump Cylinder BRep Info?
上述Tcl生成一個底面位于原點(0,0,0)半徑為10,高度為20的圓柱,如下圖所示:?
Figure 2.2 The Cylinder Generated by Tcl?
3. Cylinder BRep in OpenCascade
還是從頂點(Vertex)開始編號,來對圓柱(Cylinder)的BRep表示進行理解。從導出的信息可知,圓柱有兩個頂點Vertex,對其編號,如下圖所示:?
Figure 3.1 Vertex of Cylinder?
圓柱共有三條Edge,編號分別是#9,#10,#12。下面對三條Edge中的幾何曲線進行分析。其中#9邊Edge中包含了三條幾何曲線:一條三維空間曲線3D Curve和兩條曲面上曲線PCurve,三條曲線的取值范圍都是[0,2PI]。空間曲線3是圓心(0,0,0)半徑為10,位于圓柱底部的圓,參數方程如下所示:?
Figure 3.2 Curve 3D in Edge #9?
Figure 3.3 PCurve 5 on Surface 1 of Edge #9?
曲面1上的參數曲線PCurve 5是位于原點(0,0)方向為u方向的直線。當u取[0,2PI]時,得到曲面上u,v值分別為(0,0)和(2PI,0)。對應到曲面1上時,u的取值范圍為[0,2PI],v的值為0。曲面1的參數方程如下所示:?
當u取[0,2PI],v恒為0時,代入曲面參數方程得到空間圓的參數方程。?
同理曲面3上的參數曲線PCurve 6是位于平面上的圓。邊Edge#12與Edge#9一樣,只不過#12是位于圓柱頂部的圓。?
Figure 3.4 Edge #10 of the Cylinder?
邊Edge#10中的三維空間曲線是起點為(10, 0, 0)方向為Z軸的直線,取值范圍[0,20]。曲面1上的參數曲線3,4是銜接邊(Seam Edge),對應于BRep_CurveOnClosedSurface。代入曲面的參數方程時,u只取兩個固定值0和2PI,v取值范圍為[0,20]得到的曲線與三維空間曲線相同。將所有邊編號繪出圖示如下:?
Figure 3.5 Edges of the Cylinder?
圓柱Cylinder的環Wire有三個:Wire #4,Wire#6和Wire#8。其中Wire#4是圓柱底部的圓,Wire#6是圓柱頂部的圓。Wire#8是上下兩個圓加上一個銜接邊(Seam Edge)組成閉合環。將所有環Wire編號繪出圖示如下:?
Figure 3.6 Wires of the Cylinder?
Wire#4,Wire#6和Wire#8分別對應Face#3,Face#5和Face#7。不過要注意面的朝向(Orientation)。最后這三個面Face組成一個Shell#2,Shell#2中又給每個Face定義了朝向。Shell#2組成了一個Solid#1。?
4. Conclusion
通過Tcl生成的圓柱Cylinder的邊界表示BRep信息,分析了OpenCascade中的圓柱的邊界表示方式。要注意理解朝向(Orientation)對每個拓樸結構的意義。?
5. References
1. OpenCascade, Test Harness User’s Guide 2013?
2. OpenCascade, BRep Format Description White Paper, 2013?
3. John K. Ousterhout, Tcl and Tk Toolkit, 1993
PDF Version: OpenCascade Primitives BRep-Cylinder
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
