, ,
(中國(guó)石油大學(xué)(華東) 儲(chǔ)運(yùn)與建筑工程學(xué)院,山東 青島 266580)
基于OpenGL的自升式平臺(tái)參數(shù)化建模
李云鵬,辛露,曹宇光
(中國(guó)石油大學(xué)(華東)儲(chǔ)運(yùn)與建筑工程學(xué)院,山東青島266580)
針對(duì)國(guó)內(nèi)自升式平臺(tái)設(shè)計(jì)開發(fā)過(guò)程中存在的無(wú)法快速建模、工作效率低等問(wèn)題,提出一種基于三維圖形庫(kù)OpenGL實(shí)現(xiàn)海洋平臺(tái)快速三維建模的方法,并在VB環(huán)境下編寫自升式平臺(tái)三維參數(shù)化建模軟件。結(jié)合自升式平臺(tái)結(jié)構(gòu)特點(diǎn),建立平臺(tái)結(jié)構(gòu)參數(shù)模型以及標(biāo)準(zhǔn)化模型元件庫(kù)。通過(guò)人機(jī)交互操作選擇并輸入平臺(tái)類型及相應(yīng)平臺(tái)構(gòu)件參數(shù),自動(dòng)得到自升式平臺(tái)三維模型?;贠penGL三維圖像操作功能完成對(duì)自升式平臺(tái)模型的三維幾何操作設(shè)計(jì),實(shí)現(xiàn)對(duì)平臺(tái)模型三維交互式觀察,便于對(duì)模型進(jìn)行修改,完善設(shè)計(jì)方案。
自升式平臺(tái);參數(shù)化;VB;OpenGL
我國(guó)陸地油氣資源勘探開發(fā)程度較高,向海洋進(jìn)軍,開發(fā)新的油氣資源成為必然趨勢(shì)。在海洋油氣資源的勘探與開發(fā)中,自升式鉆井平臺(tái)已逐漸成為使用最為廣泛的移動(dòng)鉆井設(shè)施之一。國(guó)外在自升式鉆井平臺(tái)設(shè)計(jì)和建造方面起步早,在平臺(tái)建造數(shù)量和設(shè)計(jì)技術(shù)等方面領(lǐng)先于國(guó)內(nèi)。近年來(lái),CAD技術(shù)迅速發(fā)展,三維圖形技術(shù)已經(jīng)成為主流,國(guó)外有實(shí)力的軟件公司針對(duì)船舶行業(yè)推出專用的船舶三維CAD軟件包括:TRIBON,F(xiàn)ORAN,CATIA等,能夠?qū)崿F(xiàn)平臺(tái)的快速三維設(shè)計(jì)與模型搭建,極大提高工作效率[1]。
在國(guó)內(nèi),船舶行業(yè)許多設(shè)計(jì)人員也針對(duì)自升式鉆井平臺(tái)的三維建模與設(shè)計(jì)做了大量研究與嘗試。高定全[1]在CAD平臺(tái)下基于船舶專用建模軟件ARX進(jìn)行二次開發(fā),編寫軟件實(shí)現(xiàn)海洋平臺(tái)的快速建模;耿元偉[2]用VB對(duì)CATIA V5進(jìn)行二次開發(fā),以基于特征的參數(shù)化建模方法實(shí)現(xiàn)自升式鉆井平臺(tái)的三維建模??傮w上看,目前國(guó)內(nèi)海洋工程行業(yè)仍大多通過(guò)造船或鋼結(jié)構(gòu)專用軟件建立自升式平臺(tái)三維模型,工程中所需要的大量原始數(shù)據(jù)和規(guī)范需要手動(dòng)查詢,在實(shí)現(xiàn)三維建??梢暬?、智能化、提高工作效率等方面都尚處于較低的層次。因此,探索研究快速建立海洋平臺(tái)三維模型的技術(shù)和方法,提高建模工作效率,對(duì)于海洋平臺(tái)的設(shè)計(jì)具有明顯的工程應(yīng)用意義。
開放性圖形庫(kù)(Open Graphic Library, OpenGL)是一個(gè)三維計(jì)算機(jī)圖形庫(kù),可供用戶實(shí)現(xiàn)三維圖形編程、實(shí)體仿真及三維動(dòng)畫等功能,并具備幾百個(gè)指令和函數(shù),可以快速構(gòu)造出三維實(shí)體的靜態(tài)及動(dòng)態(tài)圖像,并通過(guò)對(duì)模型實(shí)時(shí)交互性操作實(shí)現(xiàn)模型的修改。使用VB/OpenGL能夠創(chuàng)建高質(zhì)量的三維圖形,可以實(shí)現(xiàn)對(duì)自升式海洋平臺(tái)的快速建模與設(shè)計(jì)。
本文主要研究自升式平臺(tái)三維模型建立方法及建模軟件開發(fā),即針對(duì)自升式平臺(tái)結(jié)構(gòu)特點(diǎn),基于OpenGL圖形庫(kù)與計(jì)算機(jī)圖形學(xué),在VB環(huán)境下建立平臺(tái)標(biāo)準(zhǔn)元件庫(kù)與圖形操作界面,通過(guò)VB界面輸入模型參數(shù)或調(diào)用軟件元件庫(kù),快速完成平臺(tái)三維模型的建立。其中,軟件的標(biāo)準(zhǔn)元件庫(kù)中包含工程所需要的數(shù)據(jù),如型鋼特性和材料特性等。設(shè)計(jì)者在平臺(tái)構(gòu)件設(shè)計(jì)過(guò)程中,不需要查閱規(guī)范、設(shè)計(jì)手冊(cè),可以通過(guò)檢索元件庫(kù)中的數(shù)據(jù)實(shí)現(xiàn)平臺(tái)構(gòu)件的快速建模。同時(shí),在建模過(guò)程中或建模結(jié)束之后,可以通過(guò)調(diào)用OpenGL庫(kù)函數(shù)實(shí)現(xiàn)對(duì)平臺(tái)模型的三維全方位展示[3],對(duì)初步設(shè)計(jì)得到的模型進(jìn)行完善與修改。
OpenGL函數(shù)庫(kù)遵循C語(yǔ)言調(diào)用約定,因此大多數(shù)OpenGL函數(shù)的使用是在C語(yǔ)言中實(shí)現(xiàn)的,但是由于VC對(duì)于一般非計(jì)算機(jī)專業(yè)的編程人員來(lái)說(shuō)難以掌握,許多設(shè)計(jì)者選擇使用基于對(duì)象的VB語(yǔ)言進(jìn)行OpenGL的開發(fā)設(shè)計(jì),能夠使程序開發(fā)顯得更簡(jiǎn)單方便[4]。
在VB中實(shí)現(xiàn)OpenGL圖形開發(fā),有3種方法[5]。第1種方法是直接從動(dòng)態(tài)鏈接庫(kù)中訪問(wèn)OpenGL函數(shù)和命令;第2種方法是把OpenGL函數(shù)庫(kù)包裝成OCX控件,注冊(cè)安裝在VB環(huán)境中,通過(guò)控件進(jìn)行調(diào)用;第3種方法是使用第三方函數(shù)庫(kù)(Vbogl.tlb類型庫(kù))。本文采用目前比較常用的第3種方法。首先,在VB工程中完成設(shè)備初始化過(guò)程,即在VB的集成環(huán)境中引用Vbogl.tlb類型庫(kù);然后初始化OpenGL場(chǎng)景模式,在此過(guò)程中主要設(shè)置像素格式、建立渲染描述表、設(shè)置投影模式、清除緩沖區(qū)等[3]。
使用OpenGL完成三維建模,一般將所有幾何圖元使用其頂點(diǎn)進(jìn)行描述,OpenGL的運(yùn)算器針對(duì)幾何圖元的頂點(diǎn)進(jìn)行計(jì)算,進(jìn)而得到三維圖形。其基本工作流程如圖1所示。
圖1 OpenGL基本工作流程
在繪制圖元時(shí),主要用到的建模命令[6-7]有:GL_QUADS,GL_LINELOOP,GL_TRIANGLES,GL_POLYGON和GL_CYLINDER等。對(duì)于自升式平臺(tái)結(jié)構(gòu),主要使用四邊形命令GL_QUADS繪制主要的基本板梁結(jié)構(gòu),使用閉合折線命令GL_LINELOOP繪制平臺(tái)各構(gòu)件的邊框,使用圓柱命令GL_CYLINDER繪制樁腿,使用凸多邊形命令GL_POLYGON繪制平臺(tái)內(nèi)部的不規(guī)則結(jié)構(gòu)。在OpenGL中沒(méi)有繪制圓形的命令,需要使用凸多邊形命令GL_POLYGON循環(huán)逼近得到圓形[8]。
自升式海洋平臺(tái)結(jié)構(gòu)復(fù)雜,參數(shù)化建模不易實(shí)現(xiàn)。實(shí)現(xiàn)平臺(tái)參數(shù)化建模的關(guān)鍵是將平臺(tái)關(guān)鍵特征信息使用幾個(gè)主要參數(shù)進(jìn)行表征,次要特征信息可以從主要參數(shù)中得到,避免數(shù)據(jù)冗余。根據(jù)參數(shù)化造型理論,自升式平臺(tái)三維建模確立的主要特征參數(shù)有:形狀參數(shù)、位置參數(shù)和實(shí)體特征參數(shù),根據(jù)這些參數(shù)可以建立平臺(tái)結(jié)構(gòu)參數(shù)模型,如圖2所示。
圖2 平臺(tái)結(jié)構(gòu)參數(shù)模型
確定參數(shù)模型后,需要確定各參數(shù)之間的層次關(guān)系,將參數(shù)劃分為主參數(shù)和次級(jí)參數(shù),使少量主要參數(shù)控制盡量多的其他參數(shù)[9]。因此,根據(jù)自升式海洋平臺(tái)結(jié)構(gòu)特點(diǎn),設(shè)定船長(zhǎng)、型寬和型深等平臺(tái)主尺度作為主參數(shù),設(shè)定平臺(tái)結(jié)構(gòu)的各部分板厚、梁結(jié)構(gòu)參數(shù)等作為次級(jí)參數(shù)。用戶通過(guò)手動(dòng)輸入主參數(shù)得到模型,主參數(shù)具有獨(dú)立性,對(duì)平臺(tái)形狀起決定性作用,平臺(tái)形狀及與其相連的所有構(gòu)件都會(huì)隨主參數(shù)的改變而發(fā)生變化[2]。對(duì)于次級(jí)參數(shù),可在確定主參數(shù)的情況下通過(guò)查閱規(guī)范或數(shù)學(xué)計(jì)算得到。特別地,對(duì)于平臺(tái)內(nèi)部的特殊結(jié)構(gòu),可通過(guò)人工輸入確定次級(jí)參數(shù)完成建模。
自升式平臺(tái)結(jié)構(gòu)的建模過(guò)程中會(huì)重復(fù)使用大量標(biāo)準(zhǔn)規(guī)格型號(hào)的型材構(gòu)件,因此在設(shè)計(jì)初始階段建立平臺(tái)結(jié)構(gòu)元件庫(kù)對(duì)常用型材進(jìn)行管理可以大幅減少建模工作量[13]。平臺(tái)主體內(nèi)主要結(jié)構(gòu)零件有桁材、骨材及橫梁等,主要涉及到工字鋼、T型材、角鋼等常用型材。查閱海工行業(yè)常用型材規(guī)格表,將平臺(tái)主要結(jié)構(gòu)零件的結(jié)構(gòu)尺寸封裝在軟件內(nèi)部,并設(shè)定相應(yīng)規(guī)格型號(hào)。在軟件使用過(guò)程中,可通過(guò)檢索型材類型等信息實(shí)現(xiàn)零件的快速建模,能夠有效提高建模速度[10]。
平臺(tái)型材零件等的建立與設(shè)計(jì)主要通過(guò)調(diào)用標(biāo)準(zhǔn)元件庫(kù)和參數(shù)化輸入來(lái)實(shí)現(xiàn),對(duì)于一般自升式平臺(tái)模型,可通過(guò)直接調(diào)用標(biāo)準(zhǔn)元件庫(kù)內(nèi)的板、梁構(gòu)件組合而成。為滿足設(shè)計(jì)需求,不在元件庫(kù)內(nèi)的特殊形狀元件可通過(guò)輸入構(gòu)件的關(guān)鍵參數(shù)進(jìn)行建模[7]。
自升式平臺(tái)模型由數(shù)量眾多的板、梁結(jié)構(gòu)組合構(gòu)成,板、梁結(jié)構(gòu)的數(shù)量以滿足平臺(tái)模型表達(dá)的要求為限。在OpenGL中,可以通過(guò)繪制矩形面對(duì)其結(jié)構(gòu)進(jìn)行描述,每個(gè)矩形面均可表示為順時(shí)針或逆時(shí)針記錄的4個(gè)頂點(diǎn)的屏幕坐標(biāo),在進(jìn)行建模的過(guò)程中,通過(guò)選定構(gòu)件方向、大小及中心點(diǎn)位置得到矩形面的頂點(diǎn)坐標(biāo),完成繪圖[11]。同時(shí)在對(duì)OpenGL結(jié)構(gòu)進(jìn)行渲染時(shí),每個(gè)面還要包括光照和材質(zhì)信息以及顏色信息,即RGB(Red-Green-Blue)值。渲染的光照和材質(zhì)是決定場(chǎng)景渲染質(zhì)量非常關(guān)鍵的環(huán)節(jié),通過(guò)設(shè)定光照位置、光照種類以及材質(zhì)反光度等保證模型顯示清晰[12]。顏色信息RGB在0~255之間,對(duì)應(yīng)OpenGL中顏色渲染函數(shù)為0~1的區(qū)間數(shù)。在使用OpenGL對(duì)自升式平臺(tái)進(jìn)行三維建模時(shí),選取不同渲染的材質(zhì)及顏色信息,用以表征不同結(jié)構(gòu)的厚度信息和材料特性等。
基于設(shè)定的平臺(tái)結(jié)構(gòu)參數(shù)模型,按照參數(shù)的層次關(guān)系,采用自上而下的方式進(jìn)行平臺(tái)建模。按照典型形狀將自升式鉆井平臺(tái)進(jìn)行分類,主要包括:三樁腿式平臺(tái)、四樁腿式平臺(tái)以及五樁腿式平臺(tái)等[13]。本文選擇某三樁腿式平臺(tái)作為模型實(shí)例,其主尺度為:船長(zhǎng)52 m,型寬46 m,型深5.2 m。
3.1.1 平臺(tái)主體結(jié)構(gòu)建模
圖3 平臺(tái)主體結(jié)構(gòu)
圖4 樁靴結(jié)構(gòu)圖
圖5 固樁架結(jié)構(gòu)圖
圖6 平臺(tái)整體結(jié)構(gòu)模型
按照平臺(tái)參數(shù)層次關(guān)系,先輸入平臺(tái)主尺度,用于結(jié)構(gòu)建立時(shí)類型的選擇和部分參數(shù)的計(jì)算。在基本參數(shù)輸入界面中選擇平臺(tái)類型并輸入平臺(tái)主尺度等參數(shù)后,程序內(nèi)部會(huì)自動(dòng)生成相應(yīng)數(shù)據(jù)信息。根據(jù)所選平臺(tái)類型,結(jié)合程序內(nèi)部對(duì)應(yīng)的平臺(tái)模型草圖,按照平臺(tái)模型草圖輸入平臺(tái)參數(shù)信息,得到相應(yīng)模型部件。平臺(tái)參數(shù)信息主要有:平臺(tái)外部輪廓信息、樁腿參數(shù)信息、樁靴參數(shù)信息和固樁架參數(shù)信息。
(1) 輸入平臺(tái)外部輪廓信息。它決定了平臺(tái)的外形輪廓形狀,包括船艏長(zhǎng)和船側(cè)舷長(zhǎng)等。在確定這些參數(shù)之后,使用OpenGL中的四邊形命令GL_QUADS和凸多邊形命令GL_POLYGON完成對(duì)平臺(tái)主體的建模,得到平臺(tái)主體模型,如圖3所示。
(2) 輸入平臺(tái)的樁腿孔參數(shù)信息。主要包括:樁腿孔位置信息、形狀信息和樁腿長(zhǎng)度等。樁腿孔位置由樁腿坐標(biāo)確定,形狀信息對(duì)應(yīng)平臺(tái)圍阱區(qū)形狀,分為圓形和正多邊形:圓形樁腿孔由半徑控制形狀;正多邊形樁腿孔由外接圓半徑以及邊數(shù)確定形狀。對(duì)于樁腿孔部分及樁腿結(jié)構(gòu),使用圓柱命令GL_CYLINDER和凸多邊形命令GL_POLYGON完成建模。需要注意的是,對(duì)于建模過(guò)程中需要的圓形面,需要使用凸多邊形命令GL_POLYGON通過(guò)VB程序中的循環(huán)逼近得到。
(3) 輸入樁靴特征信息。主要包括:樁靴形狀信息和樁靴高度等。樁靴形狀信息主要包括樁靴外形輪廓,分為:錐形、圓形和正多邊形等。以正六邊形樁靴為例,需要輸入多邊形邊數(shù)及外接圓半徑,通過(guò)凸多邊形命令GL_POLYGON得到樁靴整體模型,如圖4所示。
(4) 輸入固樁架特征信息,建立固樁架模型。通過(guò)圓柱命令GL_CYLINDER完成固樁架主體圓筒模型建立;對(duì)于結(jié)構(gòu)相對(duì)復(fù)雜、形狀不規(guī)則的環(huán)筋、縱筋,以及固樁架與甲板之間連接的部分,在確定好各個(gè)結(jié)構(gòu)之間的連接關(guān)系后,按照由外向內(nèi)的方式通過(guò)凸多邊形命令GL_POLYGON完成建模,得到固樁架模型如圖5所示。
按照上述建模步驟完成對(duì)平臺(tái)主體各部分結(jié)構(gòu)建模,得到平臺(tái)整體模型如圖6所示。
3.1.2 平臺(tái)內(nèi)部結(jié)構(gòu)建模
在完成平臺(tái)主體結(jié)構(gòu)建模后,對(duì)模型內(nèi)部板、梁組合結(jié)構(gòu)進(jìn)行建模。該部分主要分為水密艙壁建模,主體內(nèi)部桁材、骨材及橫梁部分建模以及樁靴內(nèi)部結(jié)構(gòu)建模。
(1) 按照自升式平臺(tái)結(jié)構(gòu)需要,首先對(duì)平臺(tái)主體內(nèi)部水密艙壁進(jìn)行建模。水密艙壁按照約束特征分為縱艙壁、橫艙壁和子艙壁,其主要特征為:橫艙壁與縱艙壁的端點(diǎn)均與平臺(tái)首尾端或舷側(cè)相連,子艙壁的首尾兩端在縱艙壁或橫艙壁上[2]。在對(duì)平臺(tái)水密艙壁進(jìn)行建模的過(guò)程中,首先選定要建立的艙壁類型,然后根據(jù)不同艙壁類型的特征進(jìn)行建模。橫艙壁通過(guò)輸入肋位確定位置,縱艙壁通過(guò)輸入其與中剖面之間的距離確定位置。完成橫艙壁、縱艙壁建模,得到水密艙壁主要結(jié)構(gòu)模型,再進(jìn)行子艙壁建模。對(duì)于子艙壁建模,依據(jù)用戶需要對(duì)艙室進(jìn)行進(jìn)一步劃分,得到所需要子艙壁的詳細(xì)位置信息,確定子艙壁類型后,輸入其起始及終止位置,即可得到子艙壁模型。完成所有艙壁建模之后,建立各水密艙壁之間的位置約束,從而實(shí)現(xiàn)尺寸驅(qū)動(dòng),以節(jié)省模型修改所需時(shí)間。水密艙壁建模過(guò)程中,依據(jù)平臺(tái)主體內(nèi)部艙室劃分情況,同時(shí)將平臺(tái)甲板及底板進(jìn)行劃分,如圖7和圖8所示。
圖7 甲板劃分情況 圖8 底板劃分情況
在確定平臺(tái)主尺度的前提下,根據(jù)艙壁約束特征,首先依據(jù)距中剖面距離以及所在肋位建立縱艙壁與橫艙壁,然后根據(jù)平臺(tái)設(shè)計(jì)需要確定子艙壁位置,輸入其起始位置和終止位置信息完成建模。這一過(guò)程中主要使用OpenGL中四邊形命令GL_QUADS和凸多邊形命令GL_POLYGON,在程序內(nèi)部將所輸入?yún)?shù)轉(zhuǎn)化為建模所需的頂點(diǎn)信息,完成水密艙壁建模。水密艙壁結(jié)構(gòu)如圖9所示。
圖9 水密艙壁
(2) 完成平臺(tái)主體結(jié)構(gòu)與水密艙壁建模后,對(duì)平臺(tái)內(nèi)部桁材、骨材及橫梁部分進(jìn)行建模。平臺(tái)內(nèi)部結(jié)構(gòu)由3大部分組成:板材設(shè)計(jì)部分、骨架設(shè)計(jì)部分和縱骨設(shè)計(jì)部分。三樁腿自升式平臺(tái)主體內(nèi)部梁結(jié)構(gòu)主要為T型鋼。對(duì)橫梁及骨架等結(jié)構(gòu)建模時(shí),首先結(jié)合梁結(jié)構(gòu)的腹板寬度、腹板厚度、面板寬度和面板厚度等4個(gè)參數(shù)選擇型材規(guī)格,然后根據(jù)梁的長(zhǎng)度完成建模。
在進(jìn)行梁結(jié)構(gòu)建模時(shí),首先搭建遍布整個(gè)平臺(tái)甲板或底板的橫梁結(jié)構(gòu),然后根據(jù)水密艙壁建模得到的艙室劃分情況圖,依次選擇各個(gè)艙室,按照平臺(tái)各艙室設(shè)計(jì)要求建立各個(gè)主要艙室內(nèi)的桁材與骨架結(jié)構(gòu)。梁結(jié)構(gòu)的建模過(guò)程首先要確定梁的主方向,然后在標(biāo)準(zhǔn)元件庫(kù)內(nèi)檢索并選擇梁的型材規(guī)格,最后輸入梁的長(zhǎng)度完成模型創(chuàng)建。對(duì)于方向?yàn)槠脚_(tái)主體長(zhǎng)、寬、深等3個(gè)主方向的梁結(jié)構(gòu),建模方法較為簡(jiǎn)單:選定梁結(jié)構(gòu)的方向之后通過(guò)VB循環(huán)嵌套的方式即可完成該艙室內(nèi)相同方向的梁結(jié)構(gòu)的搭建。對(duì)于船側(cè)舷部分的梁結(jié)構(gòu),在進(jìn)行平臺(tái)主體結(jié)構(gòu)建模時(shí),軟件將通過(guò)用戶輸入的船艏長(zhǎng)和船側(cè)舷長(zhǎng)等主尺度參數(shù),自動(dòng)計(jì)算生成船側(cè)舷角,在OpenGL中通過(guò)旋轉(zhuǎn)變換命令glRotatef將建模坐標(biāo)系旋轉(zhuǎn)至所需角度,然后進(jìn)行船側(cè)舷部分梁結(jié)構(gòu)搭建。完成所有梁結(jié)構(gòu)搭建之后所得模型如圖10所示。
圖10 梁結(jié)構(gòu)
(3) 對(duì)于樁靴內(nèi)部結(jié)構(gòu)建模,方法與平臺(tái)主體內(nèi)部結(jié)構(gòu)類似。依次輸入樁靴內(nèi)部主要隔板位置信息得到樁靴主體結(jié)構(gòu),再根據(jù)樁靴內(nèi)部結(jié)構(gòu)劃分輸入骨架等位置信息完成樁靴內(nèi)部梁結(jié)構(gòu)建模。
3.2.1 平臺(tái)模型顯示
本文的三樁腿式平臺(tái)的主要參數(shù)為:船長(zhǎng)52 m,型寬46 m,型深5.2 m,肋距0.6 m,縱骨間距1 m。共設(shè)計(jì)2道左右對(duì)稱的縱向艙壁,與中剖面之間距離為7.5 m;4道橫艙壁,分別位于4#,22#,34#,86#肋位;還設(shè)置了2道左右對(duì)稱的斜艙壁、5道橫向子艙壁以及4道縱向子艙壁。
確定好平臺(tái)結(jié)構(gòu)設(shè)計(jì)所需的各項(xiàng)參數(shù)之后,按照上述建模方法即可得到平臺(tái)的三維結(jié)構(gòu)模型。同時(shí),在建模過(guò)程中,可以通過(guò)VB/OpenGL程序界面控制選擇不同建模進(jìn)程,實(shí)時(shí)得到平臺(tái)整體或各部分模型圖,方便模型的修改,從而加快平臺(tái)設(shè)計(jì)進(jìn)程[7]。
3.2.2 模型三維幾何控制
三維幾何操作是計(jì)算機(jī)圖形學(xué)的一個(gè)重要組成部分,OpenGL通過(guò)雙緩沖機(jī)制對(duì)三維模型實(shí)現(xiàn)三維操作效果[14]。在建模過(guò)程中,利用OpenGL的入棧和出棧命令,在畫圖子程序中結(jié)合OpenGL多層嵌套和顯示列表方法,可以不直接改變平臺(tái)模型各部分結(jié)構(gòu)的頂點(diǎn)坐標(biāo),而是保持圖像坐標(biāo)不變,通過(guò)平移原點(diǎn)、旋轉(zhuǎn)坐標(biāo)和平移坐標(biāo)實(shí)現(xiàn)對(duì)平臺(tái)模型的旋轉(zhuǎn)、平移、縮放等操作,并可以通過(guò)改變OpenGL窗口中觀察點(diǎn)坐標(biāo)以及視點(diǎn)方向矢量的方法,實(shí)現(xiàn)對(duì)平臺(tái)模型的全方位觀察[2],便于對(duì)設(shè)計(jì)方案提出修改意見,進(jìn)而完善平臺(tái)模型。以視角切換為例,通過(guò)OpenGL的glulookat函數(shù)設(shè)定觀察點(diǎn)位置、觀察方向及模型的矢量方向,從而實(shí)現(xiàn)對(duì)三維模型不同視角的觀察[10]。
本文基于面向?qū)ο蠹夹g(shù),采用參數(shù)化方法對(duì)自升式鉆井平臺(tái)三維建模技術(shù)和方法進(jìn)行研究,在VB環(huán)境下,基于OpenGL圖形庫(kù)建立一套自升式鉆井平臺(tái)三維參數(shù)化建模軟件。通過(guò)研究,可得出如下結(jié)論:
(1) 所開發(fā)軟件用于自升式鉆井平臺(tái)三維建模,操作簡(jiǎn)便,在平臺(tái)設(shè)計(jì)初始階段可以大幅減少重復(fù)勞動(dòng),提高工作效率,具有較好的工程意義。
(2) 根據(jù)自升式鉆井平臺(tái)結(jié)構(gòu)特點(diǎn),確定平臺(tái)結(jié)構(gòu)參數(shù)模型,劃分各參數(shù)層次關(guān)系,在建模過(guò)程中實(shí)現(xiàn)模型的尺寸約束,避免數(shù)據(jù)的冗余,降低建模的難度。
(3) 建立平臺(tái)標(biāo)準(zhǔn)化元件庫(kù),用以存儲(chǔ)平臺(tái)常用型材規(guī)格等。設(shè)計(jì)者在建模過(guò)程中可以通過(guò)檢索型材的方式實(shí)現(xiàn)平臺(tái)構(gòu)件快速建模,減少重復(fù)工作量,提高建模效率。
(4) 基于OpenGL對(duì)平臺(tái)模型的三維操作能力實(shí)現(xiàn)對(duì)平臺(tái)模型的視圖等操作,便于設(shè)計(jì)者觀察模型及對(duì)模型進(jìn)行修改完善。
[ 1 ] 高定全. 基于ARX的自升式平臺(tái)參數(shù)化建模方法研究[D]. 大連:大連理工大學(xué), 2008.
[ 2 ] 耿元偉. 基于CATIA的自升式平臺(tái)參數(shù)化建模方法研究[D]. 大連:大連理工大學(xué), 2006.
[ 3 ] 石瓊, 沈春林, 譚皓. 基于OpenGL的三維建模實(shí)現(xiàn)方法[J]. 計(jì)算機(jī)工程與應(yīng)用, 2004, 40(18):122-124.
[ 4 ] 杜義君, 蘇鴻根. 基于Visual Basic的OpenGL三維圖形開發(fā)環(huán)境的構(gòu)建及其應(yīng)用[J]. 塔里木大學(xué)學(xué)報(bào), 2009, 210(01):35-39.
[ 5 ] 周麗華. 在VB中進(jìn)行OpenGL程序設(shè)計(jì)[C]//2004計(jì)算機(jī)應(yīng)用技術(shù)交流會(huì)議論文集,2004.
[ 6 ] LI K, WANG J, ZUO K, et al. Research on Dam Simulation System Based on OpenGL[J]. Physics Procedia, 2012, 24(16):1801-1806.
[ 7 ] HUANG R, WANG R, WU X, et al. Design of 3D Visual Reservoir Modeling System Based on VB OpenGL Library[J]. Proceedings of International Symposium on Computer Communication Control & Automation, 2013, 68(12):210-212.
[ 8 ] 楊鍵, 陳利學(xué), 龔捷. 基于OpenGL的三維圖形繪制和3D建模[J]. 軟件導(dǎo)刊, 2009(07):168-170.
[ 9 ] ZHONG J, CHEN K, CHEN Y, et al. Software Development of Modeling Assistant for Continuous Suspension Bridges with Multi-Pylon[J]. Engineering Sciences, 2012, 10(03):55-59.
[10] 孫永剛, 吳桂霞, 李博超. 斜拉橋基于OpenGL的參數(shù)化實(shí)現(xiàn)三維模型的建立[J]. 交通世界, 2009(05):96-97.
[11] RICHARD S,WRIGH J, LIPCHAK B, et al. OpenGL超級(jí)寶典[M]. 北京:人民郵電出版社, 2010.
[12] 吳斌. OpenGL編程實(shí)例與技巧[M]. 北京:人民郵電出版社, 1999.
[13] 于雁云. 船舶與海洋平臺(tái)三維參數(shù)化總體設(shè)計(jì)方法研究[D]. 大連:大連理工大學(xué), 2009.
[14] QI M X, HUANG L M, XU L B. Virtual Simulation Technology of Semi-Submersible Drilling Platform Based on VRML[J]. Oil Field Equipment, 2011.
ParametricModelingofJack-UpPlatformBasedonOpenGL
LI Yunpeng, XIN Lu, CAO Yuguang
(College of Pipeline and Civil Engineering, China University of Petroleum, Qingdao 266580, Shandong, China)
Aiming at the problems that can not be quickly modeled and the inefficiency in the design of jack-up platform, method for rapid 3D modeling of jack-up platform is presented based on 3D graphics library OpenGL. A 3D parametric modeling software for jack-up platform is developed in VB. According to the structural characteristic of jack-up, the structure parameter model and the standard structure template of the platform are established. The 3D model of the jack-up platform is automatically obtained by selecting and inputting relevant information of the platform through the man-machine interactive operation. Based on the 3D image manipulation function of OpenGL, the 3D geometric operation of jack-up platform is realized for a further improvement of the model and the design scheme.
jcak-up platform; parametric ; VB; OpenGL
1001-4500(2017)06-0080-07
2017-07-21
山東省重點(diǎn)研發(fā)計(jì)劃項(xiàng)目“深海水下設(shè)備運(yùn)輸與安裝技術(shù)研究” (2015GSF115024);中央高校基本科研業(yè)務(wù)費(fèi)(14CX02208A)
李云鵬(1993-),男,碩士研究生
P75
A