青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

eryar

PipeCAD - Plant Piping Design Software.
PlantAssistant - Translate AVEVA RVM/SP3D VUE to glTF, STEP, etc.
posts - 606, comments - 590, trackbacks - 0, articles - 0

OpenCascade Primitives BRep - Box

Posted on 2014-03-19 19:00 eryar 閱讀(3656) 評(píng)論(0)  編輯 收藏 引用 所屬分類: 2.OpenCASCADE

OpenCascade Primitives BRep - Box

eryar@163.com

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 Box BRep in OpenCascade, and also show how to use Tcl script to dump box BRep info.

Key words. OpenCascade, BRep, Boundary Representation, Box, Winged-Edge Structure

1. Introduction

邊界表示法(BRep: Boundary Representation)通過(guò)拓樸(Topology)和幾何(Geometry)給出了一個(gè)物體完整的描述,即用邊界來(lái)表示物體。

在OpenCascade中的拓樸實(shí)體有以下幾種:

l Vertex: a zero-dimensional shape corresponding to a point in geometry;

l Edge: a shape corresponding to a curve, and bound by a vertex at each extremity;

l Wire: a sequence of edges connected by their vertices;

l Face: part of a plane(in 2D geometry) or a surface(in 3D geometry) bounded by a closed wire;

l Shell: a collection of faces connected by some of the edges their wire boundaries;

l Solid: part of 3D space bound by a shell;

l Compound solid: a collection of solids.

wps_clip_image-29668

Figure 1.1 Topological Entities in OpenCascade

OpenCascade中的拓樸實(shí)體如上圖所示,其中Compound可以包含很多Solid;Solid由Shell包圍而成;Shell由相連的Face組成;Wire由相連的Edge組成;Edge對(duì)應(yīng)一條曲線,且曲線的端點(diǎn)處由Vertex組成;Vertex對(duì)應(yīng)空間中一個(gè)點(diǎn)。OpenCascade的拓樸結(jié)構(gòu)的類層次關(guān)系如下圖所示:

wps_clip_image-26079

Figure 1.2 Topological Shape Hierarchy of OpenCascade

OpenCascade的BRep表示中幾何曲線曲面是參數(shù)化表示的,即曲線上的點(diǎn)與一個(gè)參數(shù)u有關(guān),曲面上的點(diǎn)與兩個(gè)參數(shù)u,v來(lái)有關(guān)。因?yàn)槭菂?shù)化表示的,所以曲線曲面是有向的(naturally orientated)。方向(Orientation)是重要的,對(duì)面而言方向是面上每個(gè)點(diǎn)處的法向。

wps_clip_image-21272

Figure 1.3 Orientation of Faces

使用參數(shù)表示的曲線曲面還需要注意曲線曲面的有界性Bounded,奇異性Singularity(曲面上的奇點(diǎn)Singular Point),曲面上的曲線(PCurve: Curve on Surface)等概念。

本文通過(guò)使用Tcl腳本將OpenCascade中的基本形狀長(zhǎng)方體Box的邊界表示BRep數(shù)據(jù)導(dǎo)出到文件,繼而方便分析Box在OpenCascade中的邊界表示。

2. Dump Box BRep Info by Tcl

為了得到長(zhǎng)方體的邊界表示數(shù)據(jù),先要用類BRepPrimAPI_MakeBox來(lái)生成一個(gè)TopoDS_Shape,再使用BRepTools::Dump()可以將這個(gè)TopoDS_Shape的信息以便于理解的方式輸出。如果用C++來(lái)編程,只有這兩句,但是為了編譯鏈接成功,需要包含相關(guān)的頭文件及引用相關(guān)的庫(kù),需要編譯工具來(lái)編譯鏈接,還是比較麻煩的。本文使用Tcl腳本來(lái)輸出,體驗(yàn)一下在OpenCascade中使用Tcl腳本編程的便利。

在Draw Test Harness中輸入以下三行Tcl命令,即可以將Box的BRep信息輸出到屏幕:

wps_clip_image-17115

Figure 2.1 Dump Box BRep info in Draw Test Harness

考慮到輸出內(nèi)容過(guò)多,在命令窗口查看不便,有些信息被覆蓋,于是將這些信息導(dǎo)出到文件,Tcl代碼如下所示:

 

#
#    Copyright (c) 
2014 eryar All Rights Reserved.
#
#           File : box.tcl
#         Author : eryar@
163.com
#           Date : 
2014-03-17 19:00
#        Version : 
1.0v
#
#    Description : Dump OpenCascade primitive box topology info to file.
#
#      Key Words : OpenCascade, BRep, Tcl, Box
#                  
#

# Load Modeling algorithms.
pload MODELING

# Make the box.
box theBox 
1.0 2.0 3.0
set boxInfo [dump theBox]

# Save box BRep info to file.
if [catch {open d:/box.txt w+} theFile] {
    puts 
"Cannot open d:/box.txt for writing: $theFile"
else {
    puts $theFile $boxInfo
    flush $theFile
    close $theFile
}

puts 
"Dump Info Finished!"

將上述內(nèi)容保存到文件box.tcl,并在Draw Test Harness中輸入如下命令:

wps_clip_image-2683

Figure 2.2 Run a Tcl File in Draw Test Harness

執(zhí)行成功后會(huì)在D盤(pán)中生成一個(gè)box.txt的文件,文件部分內(nèi)容如下所示:

wps_clip_image-30549

Figure 2.3 Box BRep Info Generated by Tcl Script

為了方便讀者測(cè)試及本文中分析的Box數(shù)據(jù)的準(zhǔn)確性,box.tcl和box.txt都可通過(guò)文章后面的鏈接下載。

3. Box BRep in OpenCascade

翼邊結(jié)構(gòu)(Winged-Edge Structure)及其邊的表格方式(Edge Table)可以清晰地表達(dá)出形狀的拓樸關(guān)系,表中內(nèi)容有:

l 邊的名稱,即邊的編號(hào)Edge Name;

l 邊的起止頂點(diǎn)Start vertex and end vertex;

l 相連的兩個(gè)面 Left face and right face;

l 遍歷左面時(shí)訪問(wèn)邊的順序The predecessor and successor edges when traversing its left face;

l 遍歷右面時(shí)訪問(wèn)邊的順序The predecessor and successor edges when traversing its right face;

如下圖所示為Edge Table表示的翼邊結(jié)構(gòu):

wps_clip_image-3145

Figure 3.1 Edge Table of Winged-Edge Structure

從上圖可知,給出一個(gè)邊a后,從表中可以清晰看出與邊a相連的頂點(diǎn)及面的信息。

如下圖所示為一個(gè)Edge Table的示例:

wps_clip_image-1751

Figure 3.2 Complete Edge Table for Pyramid

由上可知,給出翼邊結(jié)構(gòu)表示中的一個(gè)邊,可以很方便得到與之相連的頂點(diǎn)和面的信息。

但是OpenCascade中沒(méi)有使用翼邊結(jié)構(gòu)來(lái)表示形狀,可以從圖1.2所示的類結(jié)構(gòu)得出。因?yàn)槊總€(gè)形狀只包含子形狀的數(shù)據(jù),不包含其父形狀的數(shù)據(jù),所以在OpenCascade中不能反向訪問(wèn)其父形狀(In OpenCascade, there is no back pointer from sub-shapes to ancestor shapes.),所以若想得到與給定頂點(diǎn)或邊相連的面或環(huán)等信息,必須使用這個(gè)工具:

TopExp::MapShapesAndAncestors()

如下圖所示使用上述工具得到與指定邊相連的所有面的信息:

wps_clip_image-18209

Figure 3.3 Get Ancestor Shapes in OpenCascade

根據(jù)前面使用Tcl腳本生成的Box,尺寸分別為1.0,2.0,3.0:

wps_clip_image-8661

Figure 3.4 The Box generated by Tcl Script

為了正確顯示出Box,每個(gè)面的法向必須與上圖中的箭頭方向一致。下面通過(guò)box.txt中的拓樸信息的編號(hào),從vertex開(kāi)始來(lái)組裝成一個(gè)Solid的形狀。對(duì)應(yīng)頂點(diǎn)的編號(hào)及其在空間中的坐標(biāo)如下圖所示:

wps_clip_image-31918

Figure 3.5 Vertex of the Box BRep

wps_clip_image-12851

Figure 3.6 Edges of the Box BRep

上圖中根據(jù)邊中的頂點(diǎn)的方向,標(biāo)示出邊的方向:從標(biāo)號(hào)為+正的頂點(diǎn)到標(biāo)號(hào)為-負(fù)的頂點(diǎn)。

wps_clip_image-27297

wps_clip_image-29905

Figure 3.7 Wire #4 of Box BRep

由圖可知,由于Wire #4是由邊E30,E9,E20,E13組成,由于30和9號(hào)邊前有負(fù)號(hào),所以需要反向,方向反向的邊用紅色箭頭標(biāo)示。其它Wire的處理與此類似。通過(guò)上面左右兩幅圖的對(duì)比,可以清楚知道哪些Edge在組成Wire時(shí)反向了。

wps_clip_image-16517

Figure 3.8 Faces and Shells of Box BRep

由上圖可知,每個(gè)Face由一個(gè)Wire組成。注意到由Face組成Shell時(shí),F(xiàn)ace前面有方向性。如Face 5#前面有負(fù)號(hào),意思是面的法向與Wire的方向相反,其他類似。

最后的Solid由Shell組成。這樣Box的拓樸數(shù)據(jù)就形成了。其中Face, Edge, Vertex中包含了幾何數(shù)據(jù)。Face的參數(shù)表示的幾何數(shù)據(jù)位于surfaces部分,如下圖所示:

wps_clip_image-20622

Figure 3.9 Parametric Surfaces of the Box

Edge中包含了多種曲線數(shù)據(jù),在Box的Edge中就包含兩種曲線數(shù)據(jù),一種是三維曲線;一種是曲面上的曲線。如下圖所示:

wps_clip_image-28981

Figure 3.10 Curve info of the Edge in Box 

其中Curve3D對(duì)應(yīng)的就是參數(shù)化的三維曲線,這個(gè)很好理解。PCurve為曲面上的曲線。下面以Edge#9為例,來(lái)說(shuō)明邊中的幾何數(shù)據(jù)。三維曲線#12是原點(diǎn)為(0,2,3)方向?yàn)閄方向的直線,在參數(shù)區(qū)間[0,1]的端點(diǎn)處,直線對(duì)應(yīng)的兩個(gè)點(diǎn)為(0,2,3)和(1,2,3),分別對(duì)應(yīng)#31Vertex和#21Vertex。所以Vertex前面的-負(fù)號(hào)表示Edge中曲線終點(diǎn),+正號(hào)表示Edge中曲線的起點(diǎn)。

PCurve為#4號(hào)平面上的#23號(hào)參數(shù)曲線,由下圖可知#4號(hào)曲面對(duì)應(yīng)的Face為#7,對(duì)應(yīng)的Wire為#8:

wps_clip_image-24170

Figure 3.11 Surface of Face

wps_clip_image-9467

根據(jù)#23號(hào)二維參數(shù)曲線計(jì)算得出曲面上的U,V分別為(3, 0)和(3, 1),將得到U,V代入#4曲面中得出對(duì)應(yīng)的曲面上的點(diǎn),計(jì)算過(guò)程如下所示:

wps_clip_image-29612

從中可以看出,PCurve表示的曲線與三維曲線#12相同,不過(guò)其中還保存了曲面的信息。

4. Conclusion

本文通過(guò)使用Tcl在OpenCascade中生成Box的邊界表示信息,通過(guò)對(duì)數(shù)據(jù)的分析,得出Box在OpenCascade中的邊界表示方式。并通過(guò)與翼邊結(jié)構(gòu)的對(duì)比,說(shuō)明OpenCascade中的拓樸結(jié)構(gòu)不是翼邊結(jié)構(gòu)。通過(guò)分析邊界表示中的幾何數(shù)據(jù),來(lái)理解邊界表示中幾何數(shù)據(jù)的應(yīng)用。

若對(duì)文中內(nèi)容有任何意見(jiàn)、建議都可以與我取得聯(lián)系,郵箱:eryar@163.com,歡迎討論、交流、指導(dǎo)。

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 and Tcl Script: OpenCascade Primitives BRep-Box

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            久热爱精品视频线路一| 韩日欧美一区| 国产日韩一区二区三区| 久久精品免费观看| 久久九九久精品国产免费直播| 久久成人免费网| 狼狼综合久久久久综合网 | 欧美一级大片在线观看| 久久久综合免费视频| 欧美成人69| 国产精品乱人伦中文| 国产在线乱码一区二区三区| 亚洲国产精品成人精品| 中日韩美女免费视频网址在线观看| 亚洲午夜久久久久久久久电影院 | 国产精品一区二区在线观看网站 | 久久综合激情| 欧美三区免费完整视频在线观看| 国产伦精品一区二区三区照片91 | 99精品国产99久久久久久福利| 亚洲午夜小视频| 久久精品中文| 日韩午夜av电影| 久久久久久久久久看片| 欧美日韩免费观看一区三区| 国产在线欧美日韩| 亚洲一区二区高清| 亚洲电影免费观看高清完整版在线观看 | 亚洲无线视频| 欧美aⅴ一区二区三区视频| 亚洲天天影视| 欧美日韩ab片| 91久久在线播放| 久久精品一区二区三区不卡| 艳女tv在线观看国产一区| 麻豆九一精品爱看视频在线观看免费| 国产精品久久一区主播| 日韩一级黄色av| 欧美成人69av| 欧美一区二区三区视频免费播放| 欧美日韩一二三区| 亚洲伦理一区| 亚洲第一狼人社区| 中国成人亚色综合网站| 亚洲午夜精品一区二区| 亚洲福利免费| 久久午夜色播影院免费高清| 国产欧美日韩精品a在线观看| 在线亚洲自拍| 日韩网站在线| 欧美日本在线视频| 亚洲精品免费一区二区三区| 美女视频黄免费的久久| 欧美在线播放高清精品| 国产欧美精品一区二区色综合 | 欧美护士18xxxxhd| 久久久久久一区二区三区| 韩国成人福利片在线播放| 久久久久看片| 久久婷婷国产综合尤物精品| 亚洲国产精品成人| 亚洲国产专区校园欧美| 欧美激情欧美狂野欧美精品| 亚洲美女精品一区| 夜夜嗨网站十八久久| 国产精品久久久久久超碰 | 欧美日韩视频在线第一区| 9色精品在线| 一区二区三区免费网站| 国产精品普通话对白| 久久九九热免费视频| 久久人人超碰| 99ri日韩精品视频| 一区电影在线观看| 国产欧美一区二区视频| 免费观看日韩av| 欧美精品亚洲二区| 午夜老司机精品| 久久久久一区| 夜夜狂射影院欧美极品| 亚洲一区在线视频| 黄色一区三区| 亚洲精品欧美一区二区三区| 国产精品日韩精品| 免费欧美高清视频| 欧美日韩亚洲天堂| 久久综合影音| 欧美午夜精品久久久久久人妖| 久久精品亚洲乱码伦伦中文| 久久久亚洲一区| 亚洲综合久久久久| 久久久欧美精品| 亚洲视频精选| 久久久7777| 亚洲影院在线观看| 玖玖视频精品| 欧美资源在线| 欧美日产一区二区三区在线观看| 久久精品官网| 欧美视频四区| 欧美成人r级一区二区三区| 国产精品爱啪在线线免费观看| 最新中文字幕亚洲| 亚洲欧美日韩中文在线制服| 玖玖玖国产精品| 欧美一二三视频| 欧美高清不卡| 老司机精品视频网站| 国产精品久久久久一区二区| 亚洲激情偷拍| 亚洲国产美女精品久久久久∴| 亚洲女ⅴideoshd黑人| 99精品国产在热久久婷婷| 久久精品综合网| 久久电影一区| 国产精品一卡二| 制服诱惑一区二区| 亚洲小说欧美另类婷婷| 欧美国产欧美亚洲国产日韩mv天天看完整 | 久久精品一区二区三区四区| 亚洲欧美在线一区| 欧美日韩亚洲一区二区三区四区| 欧美国产欧美亚洲国产日韩mv天天看完整 | 欧美日韩dvd在线观看| 男人的天堂亚洲在线| 国产乱理伦片在线观看夜一区 | 亚洲欧洲日韩女同| 亚洲国产精品久久久久久女王| 欧美一区二区三区视频免费播放| 亚洲欧美精品| 国产精品区一区二区三| 一区二区电影免费观看| 中文亚洲欧美| 国产精品国产三级国产aⅴ浪潮 | 亚洲欧美成人精品| 欧美在线综合视频| 国产视频在线观看一区二区三区| 亚洲一区二区三| 亚洲网站在线观看| 亚洲欧洲另类| 99精品视频免费全部在线| 欧美激情视频在线免费观看 欧美视频免费一| 麻豆成人综合网| 在线观看视频欧美| 麻豆精品网站| 91久久精品www人人做人人爽| 亚洲精品美女91| 欧美日韩免费高清| 亚洲一区二区三区四区中文 | 日韩一级裸体免费视频| 亚洲一区自拍| 国产永久精品大片wwwapp| 久久国内精品视频| 欧美国产另类| 亚洲一区二区三区影院| 国产日韩欧美在线播放不卡| 久久深夜福利| 一本大道久久a久久精二百| 性视频1819p久久| 亚洲第一搞黄网站| 欧美日韩国产一中文字不卡 | 欧美午夜精品理论片a级大开眼界 欧美午夜精品理论片a级按摩 | 日韩视频在线永久播放| 欧美一区中文字幕| 1204国产成人精品视频| 欧美日韩午夜视频在线观看| 亚洲欧美日韩天堂一区二区| 免费成人毛片| 亚洲综合日韩| 亚洲欧洲三级| 国产精品自在欧美一区| 久久亚洲一区二区三区四区| 一区二区三区欧美在线观看| 麻豆freexxxx性91精品| 一区二区三区精密机械公司| 国产一区二区在线免费观看| 欧美国产欧美亚洲国产日韩mv天天看完整 | 亚洲欧美在线高清| 最新日韩在线视频| 久久精品视频在线播放| 夜夜嗨av一区二区三区网页| 国内一区二区三区在线视频| 欧美日韩国产在线播放| 久久久久久穴| 香蕉av福利精品导航| 亚洲啪啪91| 免费成人av在线| 久久精品国产亚洲一区二区三区| 一本色道久久| 亚洲日本一区二区三区| 国产综合久久久久影院| 欧美吻胸吃奶大尺度电影| 欧美激情亚洲另类| 欧美 日韩 国产 一区| 久久精品青青大伊人av| 亚洲午夜在线观看| 在线一区亚洲| 一区二区三区四区蜜桃| 亚洲精品国产精品国自产观看| 欧美aa国产视频|