黃琦茗, 仇文革, 萬(wàn)世付, 趙海霖, 段東亞
(西南交通大學(xué) 交通隧道工程教育部重點(diǎn)實(shí)驗(yàn)室, 四川 成都 610031)
隨著我國(guó)社會(huì)經(jīng)濟(jì)穩(wěn)步推進(jìn),在隧道工程建設(shè)中,低碳、環(huán)保和可持續(xù)的要求逐漸被人們所重視。與此同時(shí),建筑信息模型(building information modeling,簡(jiǎn)稱BIM)在建筑行業(yè)的運(yùn)用已日趨成熟。自上而下的正向設(shè)計(jì)能夠給予設(shè)計(jì)階段更加靈活的方案設(shè)計(jì)。參數(shù)化建模能夠最大化正向設(shè)計(jì)的設(shè)計(jì)效率,而目前國(guó)內(nèi)外的隧道參數(shù)化建模軟件發(fā)展較為緩慢,研究隧道結(jié)構(gòu)參數(shù)化建模規(guī)則對(duì)隧道參數(shù)化建模軟件的誕生具有促進(jìn)作用。
隨著我國(guó)高速鐵路的發(fā)展,為了削減高速列車進(jìn)出隧道產(chǎn)生的微氣壓波[1]的影響,在設(shè)計(jì)高速鐵路隧道時(shí),常采用帽檐斜切式洞門(mén)[2]。帽檐斜切式洞門(mén)是帶有不規(guī)則直紋曲面的非常規(guī)實(shí)體,無(wú)法通過(guò)常規(guī)實(shí)體創(chuàng)建方法與布爾運(yùn)算直接生成,僅能通過(guò)曲線生成曲面,曲面縫合成實(shí)體的方法進(jìn)行創(chuàng)建,創(chuàng)建過(guò)程復(fù)雜[3]。在使用這種思路創(chuàng)建此類型的實(shí)體時(shí),對(duì)其參數(shù)化建模能夠讓設(shè)計(jì)人員僅通過(guò)修改參數(shù)并預(yù)覽就能夠找到最合適的曲面形狀,能夠顯著提高設(shè)計(jì)和創(chuàng)建效率,這也契合BIM正向設(shè)計(jì)的理念。所謂參數(shù)化建模,就是研究并提取構(gòu)件組成元素的關(guān)鍵特征參數(shù),通過(guò)控制這些參數(shù),經(jīng)過(guò)程序運(yùn)算自動(dòng)創(chuàng)建三維模型與精確定位[4]。經(jīng)分析,帽檐斜切式洞門(mén)的結(jié)構(gòu)外形具有極強(qiáng)的相似性,曲面和曲線的構(gòu)成具有一定的規(guī)律性,為了累計(jì)設(shè)計(jì)成果,并提高再次建模的效率,創(chuàng)建參數(shù)化模型具有現(xiàn)實(shí)意義。
本文基于MicroStation軟件平臺(tái)進(jìn)行二次開(kāi)發(fā),開(kāi)發(fā)快速創(chuàng)建帽檐斜切式洞門(mén)的參數(shù)化模型的算法。已有學(xué)者使用Revit進(jìn)行二次開(kāi)發(fā)隧道工程參數(shù)化建模,劉兆新等[5]利用Revit進(jìn)行二次開(kāi)發(fā),實(shí)現(xiàn)了錨桿、小導(dǎo)管等初期支護(hù)構(gòu)件的參數(shù)化創(chuàng)建與空間自動(dòng)定位; 王曉東等[6]基于Revit開(kāi)發(fā),實(shí)現(xiàn)了盾構(gòu)管片參數(shù)化建模以及定位。以上學(xué)者的開(kāi)發(fā)思路對(duì)于開(kāi)發(fā)隧道工程參數(shù)化建模具有參考價(jià)值,但是仍然受制于Revit軟件的族設(shè)計(jì)。秦海洋[7]基于 Sketch Tracer對(duì)帽檐斜切式洞門(mén)進(jìn)行了建模,其研究?jī)H僅為翻模,并未完成參數(shù)化建模與正向設(shè)計(jì); 文獻(xiàn)[8-10]通過(guò)分析隧道洞口設(shè)計(jì)人員的設(shè)計(jì)習(xí)慣和思維方式,開(kāi)發(fā)了隧道洞口參數(shù)化設(shè)計(jì)程序,完成了端墻式洞門(mén)參數(shù)化建模,但端墻式洞門(mén)相對(duì)較為規(guī)則,參數(shù)化建模難度較低,對(duì)于較為復(fù)雜的模型仍需進(jìn)一步研究。
本文對(duì)帽檐斜切式洞門(mén)的結(jié)構(gòu)特點(diǎn)進(jìn)行了研究,利用MicroStation平臺(tái)進(jìn)行二次開(kāi)發(fā),從源代碼設(shè)計(jì)算法實(shí)現(xiàn)帽檐斜切式洞門(mén)的參數(shù)化創(chuàng)建、動(dòng)態(tài)預(yù)覽與放置以及提取統(tǒng)計(jì)工程量。結(jié)合某工程實(shí)例,使用該參數(shù)化模型程序進(jìn)行快速設(shè)計(jì)和建模驗(yàn)證程序的可行性。以期研究成果為開(kāi)發(fā)類似隧道工程參數(shù)化模型程序研究提供一種新思路。
MicroStation是Bentley公司自主開(kāi)發(fā)的計(jì)算機(jī)輔助設(shè)計(jì)平臺(tái),Bentley公司的很多軟件都是基于MicroStation平臺(tái)進(jìn)行二次開(kāi)發(fā)得到的,如OpenBridge Modeler、OpenRoads Designer、AECOsim Building Designer等服務(wù)于土木工程各行各業(yè)(包括橋梁、道路、建筑工程)的軟件。MicroStation具有很強(qiáng)的可開(kāi)發(fā)性?;贛icroStation二次開(kāi)發(fā)服務(wù)于隧道行業(yè)的功能,能夠充分展現(xiàn)隧道工程的特征,具有較高的效率。
MicroStation二次開(kāi)發(fā)主要包括3種方式:MicroStation VBA(簡(jiǎn)稱MVBA)、Addin(基于C#語(yǔ)言或其他的.NET開(kāi)發(fā)語(yǔ)言)和MDL(基于C/C++)。這3種開(kāi)發(fā)手段由易到難,功能類型與復(fù)雜程度則是由弱到強(qiáng)。
經(jīng)過(guò)比較和研究發(fā)現(xiàn),MVBA具有很多強(qiáng)大的功能,能夠滿足編程創(chuàng)建參數(shù)化模型,不必追求復(fù)雜度更高的MDL。許多接口和函數(shù)都已經(jīng)在軟件上進(jìn)行了很好的集成和封裝。采用的是最易學(xué)、最普及的BASIC編程語(yǔ)言。因此,對(duì)于非計(jì)算機(jī)專業(yè)的土木開(kāi)發(fā)者具有較友好的開(kāi)發(fā)環(huán)境,較容易上手進(jìn)行編程,更適合隧道構(gòu)件參數(shù)化理論規(guī)則研究以及二次開(kāi)發(fā)。
MVBA編程環(huán)境由3個(gè)模塊組成,分別是窗體模塊、代碼模塊和類模塊。窗體模塊主要功能是可視化定義和編輯交互式用戶界面,調(diào)用相關(guān)控件,并對(duì)控件參數(shù)進(jìn)行定義,且可定義窗口初觸發(fā)相關(guān)事件; 代碼模塊是一個(gè)開(kāi)發(fā)工程中最基本的模塊,它是工程初始化、程序的起點(diǎn),在該模塊定義主函數(shù); 類模塊是用來(lái)創(chuàng)建對(duì)象的,其中的每個(gè)小模塊都是一個(gè)對(duì)象名,同時(shí),在其中能夠定義程序的命令動(dòng)作,通過(guò)調(diào)用接口創(chuàng)建各種用戶需要實(shí)現(xiàn)的事件,實(shí)現(xiàn)代碼與軟件互動(dòng)。
帽檐斜切式洞門(mén)輪廓曲線示意圖如圖1所示。
圖1 帽檐斜切式洞門(mén)輪廓曲線示意圖
帽檐斜切式洞門(mén)的設(shè)置需要根據(jù)洞口地形、地質(zhì)條件、隧道長(zhǎng)度和所處位置進(jìn)行創(chuàng)建。主體部分主要由帽檐和斜切明洞段構(gòu)成,在三維建模過(guò)程中,難點(diǎn)在于帽檐處的建模,由于不是常規(guī)形狀實(shí)體,無(wú)法通過(guò)布爾運(yùn)算創(chuàng)建。由于體由面組成,面由線組成,因此帽檐部分可以轉(zhuǎn)化為由圖 1中4根輪廓線約束構(gòu)成,實(shí)體的參數(shù)化即轉(zhuǎn)化成這4根輪廓線的參數(shù)化。對(duì)于4根輪廓線的參數(shù),通常這種洞門(mén)的輪廓線1為橢圓線[11]; 輪廓線2一般有純橢圓線和半橢圓線加直線2種類型可以選擇; 輪廓線3和輪廓線4實(shí)質(zhì)為斜切明洞段斜切面上的曲線,通過(guò)提取斜切明洞的斜切面的線可以完成創(chuàng)建,這種方法既方便創(chuàng)建,又能約束帽檐與切割明洞在切割面上共面。
參數(shù)化創(chuàng)建該帽檐斜切式洞門(mén)模型主要分為參數(shù)化定義與用戶界面創(chuàng)建、參數(shù)計(jì)算處理并創(chuàng)建各對(duì)象元素、模型空間調(diào)用與放置,具體流程見(jiàn)圖2。
圖2 參數(shù)化模型創(chuàng)建流程
參數(shù)示意圖見(jiàn)圖3。
圖3 參數(shù)示意圖
1)內(nèi)輪廓參數(shù)設(shè)計(jì)。隧道設(shè)計(jì)初始階段均需要進(jìn)行隧道內(nèi)輪廓設(shè)計(jì),本程序能夠提供參數(shù)化內(nèi)輪廓設(shè)計(jì)。隧道內(nèi)輪廓設(shè)計(jì)通過(guò)內(nèi)輪廓參數(shù)進(jìn)行,首先根據(jù)所需的內(nèi)輪廓建筑界限大小選擇合適的內(nèi)輪廓類型,根據(jù)參考值調(diào)整至合適的內(nèi)輪廓,完成內(nèi)輪廓設(shè)計(jì)。
2)明洞斷面與斜切斷面參數(shù)設(shè)計(jì)。該洞門(mén)參數(shù)化程序?qū)?huì)自動(dòng)讀取事先完成設(shè)計(jì)的內(nèi)輪廓參數(shù),再輸入如圖3所示的襯砌厚度of、斜切角度以及位置f參數(shù)即可完成斜切明洞段建模。
3)輪廓線參數(shù)設(shè)計(jì)。輪廓線3和輪廓線4為斜切明洞段的線,因此,它們無(wú)需另外定義參數(shù),通過(guò)定義斜切明洞段的參數(shù)創(chuàng)建斜切明洞段即可提取2根輪廓線。控制輪廓線1的參數(shù)有橢圓長(zhǎng)軸b、短軸a、傾斜角度,僅這3個(gè)參數(shù)無(wú)法確定中心點(diǎn)位置,但研究發(fā)現(xiàn),為了保持隧道內(nèi)通暢,輪廓線1不能穿出內(nèi)輪廓線,因此輪廓線1的底部頂點(diǎn)需要與輪廓線4的底部頂點(diǎn)在Y方向上集聚,由此約束了輪廓線1的位置,無(wú)需再定義額外參數(shù)就能夠確定其中心點(diǎn)位置。與輪廓線1不同,輪廓線2的參數(shù)有橢圓長(zhǎng)軸b、短軸a、傾斜角度及輪廓線總高度H,能夠直接計(jì)算出橢圓位置和橢圓方向。
為進(jìn)一步精簡(jiǎn)參數(shù),提高設(shè)計(jì)效率,在完成斜切明洞段建模時(shí),程序會(huì)根據(jù)上述斜切明洞段參數(shù)(包括內(nèi)輪廓參數(shù)、斜切角度與位置f等參數(shù)),按照一定的規(guī)則自動(dòng)處理輪廓線1和輪廓線2的參數(shù)以提供一個(gè)程序預(yù)設(shè)的參考模型,并在窗口上生成這些參考值參數(shù),用戶在生成的參考模型的參數(shù)基礎(chǔ)上對(duì)參數(shù)進(jìn)行微調(diào),直至完成滿足需求的帽檐斜切式洞門(mén)模型。
圖4所示為用戶交互窗體,左側(cè)為參數(shù)輸入塊,右側(cè)為圖片瀏覽塊。在圖片瀏覽塊中除了能夠給予參數(shù)提示圖外,還可以實(shí)時(shí)預(yù)覽輸入?yún)?shù)后的模型,提高用戶選擇輸入?yún)?shù)的有效性和效率。
圖4 用戶交互窗體
1)MVBA編程是純面向?qū)ο蟮?,其中的類模塊是面向?qū)ο缶幊痰幕A(chǔ)。對(duì)于用戶而言,可視化程度越高,用戶體驗(yàn)越好,因此,動(dòng)態(tài)展示和動(dòng)態(tài)放置能夠幫助用戶對(duì)創(chuàng)建的實(shí)體有非常清晰的理解。在類模塊中,MVBA提供了IprimitiveCommandEvents接口用于定義對(duì)象元素的放置規(guī)則??梢酝ㄟ^(guò)接口中的各種事件實(shí)現(xiàn)各種所需要的功能,如需動(dòng)態(tài)顯示和放置,需要在接口中定義Dynamics事件,實(shí)現(xiàn)鼠標(biāo)控制放置點(diǎn)和放置方向。將模型顯示為DrawMode,當(dāng)DrawMode為msdDrawingModeNormal時(shí),將元素對(duì)象添加至激活模型空間中。
2)輪廓線1和輪廓2的創(chuàng)建。由前所述,由于曲線1和曲線2主要由橢圓弧組成,因此需要?jiǎng)?chuàng)建Ellipse3D對(duì)象,Ellipse3D對(duì)象由5個(gè)成員參數(shù)構(gòu)成。創(chuàng)建Ellipse3D對(duì)象通過(guò)定義Center進(jìn)行定位; 定義Vector0和Vector90確定橢圓方向,其分別代表0°角開(kāi)始點(diǎn)和90°角開(kāi)始點(diǎn); 定義Start和Sweep確定橢圓弧開(kāi)始角度和掃掠角度。將窗體模塊定義的參數(shù)進(jìn)行數(shù)學(xué)處理并傳遞至上述5個(gè)成員參數(shù)中,即完成橢圓曲線對(duì)象的創(chuàng)建。由于Ellipse3D僅為一個(gè)對(duì)象,如需添加至模型空間中需要將其轉(zhuǎn)化為BsplineCurveElement才能添加至模型空間中。
3)斜切明洞段的建立。由于輪廓線3和輪廓線4是洞門(mén)的斜切明洞段上的曲線,因此先創(chuàng)建斜切明洞段模型。對(duì)于斜切明洞段的創(chuàng)建,在程序中先創(chuàng)建了參數(shù)化的斷面,參數(shù)選擇見(jiàn)圖 3。將創(chuàng)建的斷面元素使用SweepProfileAlongPath進(jìn)行創(chuàng)建,再通過(guò)SmartSolid.SolidSubtract的方法切割出切割面,完成斜切明洞段參數(shù)化模型的創(chuàng)建。
4)輪廓線3和輪廓線4的提取。對(duì)于MVBA中并無(wú)直接提取實(shí)體邊界的API,可以通過(guò)先提取面,再提取面的邊界的方式提取曲線。調(diào)用ExtractSurfaceFromSolid提取出明洞切割段的切面。提取面后通過(guò)BuildArrayFromContents將曲面上的所有邊界存儲(chǔ)進(jìn)一個(gè)元素枚舉器(ElementEnumerator)中,找到自己想要的曲線再轉(zhuǎn)化為BsplineCurveElement元素即可。
5)曲面的創(chuàng)建與實(shí)體生成。MVBA可以提供多種創(chuàng)建BsplineSurface的方法,本例中調(diào)用FromTwoBoundaryCurves創(chuàng)建4個(gè)直紋曲面,再創(chuàng)建2個(gè)底平面。在MVBA中,并無(wú)直接縫合曲面生成實(shí)體的API,但MVBA最強(qiáng)大的地方在于它可以直接通過(guò)命令調(diào)用軟件已經(jīng)封裝好的功能命令,這里編寫(xiě)CadInputQueue.SendCommand "CONSTRUCT STITCH"代碼以啟動(dòng)軟件中已有的縫合曲面命令,對(duì)所有曲面進(jìn)行縫合生成實(shí)體,再通過(guò)GetLastValidGraphicalElement將其添加進(jìn)程序中成為智能實(shí)體元素。在MVBA中也可以通過(guò)聲明調(diào)用軟件的MDL程序中的API,由于本文主要介紹MVBA,此處不再贅述。
6)洞門(mén)工程數(shù)量統(tǒng)計(jì)提取。三維模型對(duì)于工程最直接的作用是方便計(jì)算和提取工程數(shù)量統(tǒng)計(jì)。MVBA是純面向?qū)ο蟮模虼巳缧璨榭大w積,能夠通過(guò)調(diào)用SmartSolidElement.ComputeVolume方法提取其體積,在程序中進(jìn)行運(yùn)算。其他信息同樣可以在程序中查看、提取以及運(yùn)算。借助于COM編程,MVBA能夠操作Excel文件,將所需技術(shù)工程數(shù)量信息數(shù)據(jù)寫(xiě)入Excel中并導(dǎo)出。
某隧道為雙線電氣化鐵路隧道,設(shè)計(jì)速度為120 km/h,隧道軸線里程為DK206+365~DK209+710,隧道全長(zhǎng)3 345 m,隧道最大埋深為81 m。隧道全段位于直線上,隧道縱坡為人字坡,設(shè)計(jì)最大坡度為3‰,其出口洞門(mén)采用的是帽檐斜切式洞門(mén)。
在用戶窗口左側(cè)的參數(shù)輸入塊根據(jù)右側(cè)圖片瀏覽塊中的Parameter Informs頁(yè)面中相關(guān)參數(shù)圖的提示輸入?yún)?shù),輸入完畢后,即可在PreviewBody頁(yè)面預(yù)覽實(shí)體線框模型查看參數(shù)設(shè)置是否合適,點(diǎn)擊放置按鈕即可動(dòng)態(tài)放置帽檐斜切式洞門(mén)實(shí)體模型,程序運(yùn)行僅需2 s即完成創(chuàng)建。參數(shù)化模型放置效果如圖5所示。工程數(shù)量統(tǒng)計(jì)自動(dòng)提取至Excel表格如圖6所示。
圖5 參數(shù)化模型放置效果
圖6 工程數(shù)量統(tǒng)計(jì)自動(dòng)提取至Excel表格
本文對(duì)帽檐斜切式洞門(mén)模型的創(chuàng)建從設(shè)計(jì)思想到程序?qū)崿F(xiàn)均進(jìn)行了探索和驗(yàn)證。得出以下結(jié)論:
1)本文對(duì)于此類洞門(mén)的設(shè)計(jì)思想探討具有一定的普適性,可為未來(lái)服務(wù)于隧道工程設(shè)計(jì)的參數(shù)化設(shè)計(jì)軟件的洞門(mén)模型創(chuàng)建提供參考。
2)應(yīng)用MicroStation平臺(tái)的VBA編程進(jìn)行二次開(kāi)發(fā),探索創(chuàng)建非常規(guī)形狀實(shí)體的算法,創(chuàng)建完成帽檐斜切式洞門(mén)的參數(shù)化模型與自動(dòng)統(tǒng)計(jì)工程量程序,驗(yàn)證了MVBA在創(chuàng)建參數(shù)化模型的可行性。
3)探索并驗(yàn)證了MicroStation平臺(tái)VBA編程的可開(kāi)發(fā)性,通過(guò)研究該非常規(guī)實(shí)體的參數(shù)化模型的創(chuàng)建,以期將參數(shù)化實(shí)體的創(chuàng)建推廣至更多類型實(shí)體。對(duì)于常規(guī)實(shí)體的參數(shù)化創(chuàng)建,MVBA可提供相當(dāng)豐富的創(chuàng)建方法。
4)該程序可在未來(lái)不同項(xiàng)目中重復(fù)利用。在正向設(shè)計(jì)中提供實(shí)時(shí)預(yù)覽功能,參數(shù)的選取更加方便準(zhǔn)確,提高帽檐斜切式洞門(mén)模型的設(shè)計(jì)建模效率,具有一定的使用價(jià)值。
積累創(chuàng)建參數(shù)化模型是一個(gè)過(guò)程,對(duì)于隧道工程中的每個(gè)基礎(chǔ)構(gòu)件的參數(shù)化模型的研究仍需大量的實(shí)踐,并在不斷的學(xué)習(xí)中,推動(dòng)更高效的隧道工程的參數(shù)化設(shè)計(jì)軟件的誕生,在隧道工程設(shè)計(jì)中實(shí)現(xiàn)真正的正向設(shè)計(jì),提高設(shè)計(jì)效率,推動(dòng)BIM技術(shù)在隧道工程的發(fā)展與運(yùn)用,讓隧道工程設(shè)計(jì)走向現(xiàn)代化、高效化與數(shù)字化。