齊成龍
中國(guó)鐵路設(shè)計(jì)集團(tuán)有限公司,天津 300308
接觸網(wǎng)作為動(dòng)力供給線,以往多采用后植螺栓的方法安裝。該方法存在材質(zhì)易腐蝕、人工機(jī)械打孔造成管片不可逆損傷、施工效率低下、環(huán)境污染嚴(yán)重等問題。預(yù)埋槽道技術(shù)可解決這些問題,地鐵項(xiàng)目一般采用全環(huán)預(yù)埋的方式設(shè)置槽道。但是由于結(jié)構(gòu)尺寸大,鐵路盾構(gòu)隧道全環(huán)預(yù)埋槽道會(huì)造成巨大浪費(fèi),因此一般采用局部塊體預(yù)埋的方式。
眾多學(xué)者開展了以管片排布為核心的盾構(gòu)隧道BIM 設(shè)計(jì)方面的研究,并取得豐碩成果。陳曦等[1]基于Revit 軟件開發(fā)Dynamo 插件,實(shí)現(xiàn)區(qū)間隧道管片全過程自動(dòng)拼裝。崔曉[2]使用Dynamo 開發(fā)可視化腳本程序,在腳本當(dāng)中進(jìn)行Revit族文件引用、坐標(biāo)系旋轉(zhuǎn),最終自動(dòng)生成符合線路曲線特征并滿足錯(cuò)縫拼裝要求的大直徑盾構(gòu)隧道BIM 模型。王曉東等[3]新建Reivt管片族,通過三個(gè)自適應(yīng)參照點(diǎn)實(shí)現(xiàn)對(duì)管片環(huán)空間位置和旋轉(zhuǎn)角度的綁定,完成管片批量BIM設(shè)計(jì)。
既有研究成果在一定程度上實(shí)現(xiàn)了盾構(gòu)管片三維空間排布設(shè)計(jì),但普遍存在自動(dòng)化程度不足等缺陷,且不適用于局部塊體預(yù)埋槽道的大直徑盾構(gòu)隧道[4-8]。本文基于 Dassault 平臺(tái) CAA 架構(gòu)開發(fā)盾構(gòu)管片空間排布程序,與Dassault 平臺(tái)的基礎(chǔ)建模功能相結(jié)合,實(shí)現(xiàn)局部塊體預(yù)埋槽道的區(qū)間盾構(gòu)隧道BIM 正向設(shè)計(jì)。
盾構(gòu)隧道參數(shù)化BIM 設(shè)計(jì)分為通用管片環(huán)BIM建模、管片定位骨架設(shè)計(jì)、管片環(huán)BIM 模型的批量實(shí)例化三步。
充分利用Dassault 平臺(tái)的復(fù)雜幾何造型功能及其參數(shù)化設(shè)計(jì)優(yōu)勢(shì),創(chuàng)建盾構(gòu)隧道通用管片環(huán)BIM 模型。利用knowledge pattern、rule 等知識(shí)工程工具以及EKL 參數(shù)化腳本語言,有效解決復(fù)雜曲面、孔洞等建模問題。
根據(jù)三類管片塊的環(huán)向分布規(guī)律,使用Dassault軟件action 知識(shí)工程工具,通過EKL 腳本語言命令I(lǐng)nstantiateTemplate(),以分塊模板類型編號(hào)、沿環(huán)向起止邊界角度為輸入?yún)?shù),快速完成各分塊BIM 建模,形成通用楔形盾構(gòu)管片環(huán)參數(shù)化BIM模型。
基于Dassault平臺(tái)CAA架構(gòu)開發(fā)盾構(gòu)管片空間排布程序。該程序的用戶交互界面見圖1。
圖1 程序的用戶交互界面
創(chuàng)建盾構(gòu)管片定位骨架BIM 模型前,需要準(zhǔn)備程序輸入?yún)?shù),包括平面左線、隧道理論中心線、斷鏈表、輸入數(shù)據(jù)表等。由于縱向螺栓將管片沿環(huán)向均勻劃分成若干區(qū)域,各區(qū)域是相鄰管片環(huán)相對(duì)轉(zhuǎn)動(dòng)的基本角度單元。輸入數(shù)據(jù)表描述了管片環(huán)各塊體與環(huán)向分區(qū)的相對(duì)關(guān)系,以及基本設(shè)計(jì)參數(shù)。
用戶在交互界面的SelectInputSet和SelectOutputSet選擇框位置手動(dòng)選擇輸入數(shù)據(jù)和輸出結(jié)果的幾何圖形集,并完成其他參數(shù)設(shè)置后,批量創(chuàng)建管片定位骨架坐標(biāo)系BIM模型。運(yùn)行結(jié)束后,程序在輸出的幾何圖形集中創(chuàng)建子集OrdinaryAxisGS、SlotEmbeddedAxisGS,分別存儲(chǔ)普通管片環(huán)、預(yù)埋槽道環(huán)的定位骨架坐標(biāo)系BIM模型。
使用 Dassault 平臺(tái)中的 Assembly Pattern 功能,分別選擇上述程序生成的用于存儲(chǔ)定位骨架坐標(biāo)系BIM模型的幾何圖形集,以及管片環(huán)BIM 模板,自動(dòng)完成管片環(huán)BIM模型的批量實(shí)例化。
基于Dassault平臺(tái)CAA架構(gòu)開發(fā)盾構(gòu)管片空間排布程序,通過用戶交互模塊、數(shù)據(jù)存儲(chǔ)模塊和骨架設(shè)計(jì)模塊實(shí)現(xiàn)其功能。用戶交互模塊用于創(chuàng)建工具條和用戶交互窗口;數(shù)據(jù)存儲(chǔ)模塊用于輸入和輸出數(shù)據(jù)、管片環(huán)位置姿態(tài)數(shù)據(jù)的存儲(chǔ)和表達(dá);骨架設(shè)計(jì)模塊實(shí)現(xiàn)最優(yōu)管片環(huán)位置姿態(tài)的篩選功能,并批量創(chuàng)建骨架坐標(biāo)系模型。以下依次介紹各模塊的關(guān)鍵開發(fā)技術(shù)。
管片空間排布程序運(yùn)行時(shí)需要用戶手動(dòng)選擇用于存儲(chǔ)輸入、輸出數(shù)據(jù)的幾何圖形集以及初始管片定位骨架坐標(biāo)系,這些都屬于用戶與程序之間交互的功能范疇。交互界面模塊的開發(fā)分為創(chuàng)建工具按鈕和創(chuàng)建用戶交互窗口兩部分。
2.1.1 創(chuàng)建工具按鈕并與骨架批量建模命令關(guān)聯(lián)
工具條采用Add-in 的方式添加,為了將骨架批量建模功能嵌入到零件設(shè)計(jì)模塊,Add-in 必須首先重載CATIPrtCfgAddin接口的函數(shù)。再通過CATAfrCommand Header::CATCreateCommandHeader()成員函數(shù)使添加的工具條與骨架批量建模命令關(guān)聯(lián),以實(shí)現(xiàn)在已有零件設(shè)計(jì)模塊中添加按鈕,用戶點(diǎn)擊按鈕,即可激活骨架坐標(biāo)系批量建模命令。
2.1.2 在骨架批量建模命令中嵌入用戶交互窗口
首先創(chuàng)建用戶交互窗口Dialog 文件,該文件與骨架批量建模命令所在文件相互獨(dú)立。在骨架批量建模命令文件中,通過對(duì)CATMmrPanelStateCmd 類的派生,重載GiveMyPanel()方法,使包含骨架批量建模命令的派生類與Dialog文件關(guān)聯(lián)。對(duì)話流程操作是通過重載BuildGraph()方法實(shí)現(xiàn)的。
BuildGraph()方法通過命令狀態(tài)和代理兩個(gè)關(guān)鍵元素來實(shí)現(xiàn)用戶在界面中的交互響應(yīng)[9]。代理的作用是將用戶在界面中的交互轉(zhuǎn)化為一種參數(shù)輸入。本程序使用了 CATDialogAgent、CATPathElementAgent、CATFeatureImportAgent 三種代理,分別用于捕獲幾何圖形集、對(duì)象路徑和坐標(biāo)系模型。以代理為核心的命令狀態(tài)轉(zhuǎn)換流程見圖2。
圖2 命令狀態(tài)轉(zhuǎn)換流程
2.2.1 管片環(huán)的相對(duì)旋轉(zhuǎn)角度
理論上講,在沒有任何約束的情況下0 ~360°任何一個(gè)角度都可以作為管片環(huán)的相對(duì)旋轉(zhuǎn)角度,但在實(shí)際工程中管片環(huán)相對(duì)旋轉(zhuǎn)角度需要滿足以下四個(gè)層級(jí)的約束:①相鄰管片環(huán)的縱向螺栓孔須對(duì)齊;②管片須錯(cuò)縫拼接,因?yàn)橥p時(shí)整體剛度小于錯(cuò)縫,破壞時(shí)迅速失穩(wěn)[10];③封頂塊須出現(xiàn)在下方區(qū)域,避免封頂塊朝下的不利工況[11];④預(yù)埋槽道塊須位于管片環(huán)的正上方。
2.2.2 管片環(huán)的旋轉(zhuǎn)位置
為了清晰表達(dá)當(dāng)前管片相對(duì)于前一環(huán)的旋轉(zhuǎn)位置,以及當(dāng)前環(huán)的絕對(duì)旋轉(zhuǎn)位置,建立用于表達(dá)管片環(huán)旋轉(zhuǎn)姿態(tài)的xoy絕對(duì)坐標(biāo)系和x′oy′參考坐標(biāo)系,見圖3。其中:A1—A7,B1—B2,K 分別是管片環(huán)的塊體編號(hào)。A2,A6 為預(yù)埋槽道塊,縱向螺栓沿環(huán)向?qū)⒐芷瑒澐譃?8個(gè)區(qū)域。可以看出,管片在環(huán)向被等間距的縱向螺栓孔分割,相鄰縱向螺栓構(gòu)成的環(huán)向分區(qū)代表了最小相對(duì)旋轉(zhuǎn)范圍。相鄰管片環(huán)之間的旋轉(zhuǎn)角度只能是該環(huán)向分區(qū)的整數(shù)倍。本程序采用該最小分區(qū)的整數(shù)倍表征管片之間的相對(duì)旋轉(zhuǎn)角度。
圖3 絕對(duì)坐標(biāo)系與參考坐標(biāo)系之間的關(guān)系
縱向定位螺栓將盾構(gòu)管片沿環(huán)向劃分出n個(gè)分區(qū),x′oy′參考坐標(biāo)系的ox′軸指向正上方,各分區(qū)與ox′、oy′軸的相對(duì)位置不變。
2.2.3 存儲(chǔ)方式
本程序讀取表格后,使用TunnelInputClass 類存儲(chǔ)xoy絕對(duì)坐標(biāo)系與x′oy′參考坐標(biāo)系重合時(shí)管片環(huán)的相對(duì)旋轉(zhuǎn)角度序列、管片環(huán)下方限制區(qū)域、各塊體的初始和結(jié)束分區(qū)的編號(hào)等數(shù)據(jù)。
使用結(jié)構(gòu)體類型的對(duì)象TunnelSegmentResultStruct存儲(chǔ)每環(huán)管片的排布結(jié)果。具體包括管片環(huán)編號(hào)及里程、管片環(huán)中心與隧道理論中心線的距離、管片相對(duì)于前一環(huán)沿順時(shí)針方向的旋轉(zhuǎn)角度(以分區(qū)數(shù)目的整數(shù)倍表達(dá))、當(dāng)前環(huán)K 塊所在的分區(qū)編號(hào)、當(dāng)前環(huán)正上方的塊體編號(hào)、當(dāng)前管片是否預(yù)埋槽道。
2.3.1 生成管片環(huán)相對(duì)旋轉(zhuǎn)角度序列
使用GenRotateAreaAvailable()函數(shù),考慮四層約束條件,生成當(dāng)前管片環(huán)相對(duì)于前一環(huán)的旋轉(zhuǎn)角度序列。本函數(shù)的執(zhí)行流程見圖4。
圖4 GenRotateAreaAvailable()函數(shù)的執(zhí)行流程
2.3.2 從相對(duì)旋轉(zhuǎn)角度序列中篩選最優(yōu)值
如圖5所示,管片環(huán)為楔形幾何體,假設(shè)在其初始端面、前進(jìn)端面各有一個(gè)定位骨架坐標(biāo)系。這些定位骨架坐標(biāo)系的x軸指向封頂塊,z軸垂直于初始端面或前進(jìn)端面。管片i+1 相對(duì)于管片i的轉(zhuǎn)角可從相對(duì)旋轉(zhuǎn)角度序列中選擇,圍繞初始端面坐標(biāo)系o1x1y1z1的z1軸旋轉(zhuǎn),得到與每個(gè)相對(duì)旋轉(zhuǎn)角度對(duì)應(yīng)的前進(jìn)端面坐標(biāo)系o2x2y2z2,生成的每個(gè)前進(jìn)端面坐標(biāo)系原點(diǎn)都是一個(gè)試算點(diǎn)。
圖5 相鄰管片環(huán)未發(fā)生相對(duì)旋轉(zhuǎn)時(shí)端面坐標(biāo)系示意
管片i+1 初始端面坐標(biāo)系o3x3y3z3的原點(diǎn)與所有可能的前進(jìn)端面坐標(biāo)系o4x4y4z4的原點(diǎn)(也就是試算點(diǎn))構(gòu)成一個(gè)圓錐形(圖6)。從所有可能的試算點(diǎn)中選擇最靠近隧道理論中心線的一個(gè),其對(duì)應(yīng)的相對(duì)旋轉(zhuǎn)角度就是管片環(huán)i+1相對(duì)于管片環(huán)i的最優(yōu)旋轉(zhuǎn)角度。
圖6 初始端面坐標(biāo)系、隧道理論中心線與試算點(diǎn)幾何關(guān)系示意
2.3.3 根據(jù)最優(yōu)旋轉(zhuǎn)角度生成管片定位骨架
已知管片i,確定i+1 及后續(xù)各管片的位置需要兩個(gè)關(guān)鍵步驟:①將管片i+1 的初始端面坐標(biāo)系o3x3y3z3繞z3軸旋轉(zhuǎn);②建立每個(gè)管片環(huán)初始端面坐標(biāo)系與前進(jìn)端面坐標(biāo)系的相互關(guān)系。
1)坐標(biāo)系繞z3軸旋轉(zhuǎn)
分別通過 GetOrigin()、GetDirections()成員函數(shù)獲取坐標(biāo)系的原點(diǎn)和方向向量,將其作為輸入?yún)?shù)。調(diào)用構(gòu)造函數(shù)生成CATMathLine 線對(duì)象,將其作為旋轉(zhuǎn)軸,生成CATMathTransformation 空間變換對(duì)象。調(diào)用該對(duì)象的成員函數(shù)ApplyToAxis()完成CATMathAxis類型坐標(biāo)系的旋轉(zhuǎn)操作。
2)從初始端面坐標(biāo)系生成前進(jìn)端面坐標(biāo)系
如圖7所示,根據(jù)楔形量w和管片環(huán)外徑d確定楔形角度θ。將初始端面坐標(biāo)系x3o3z3先繞y軸順時(shí)針旋轉(zhuǎn)θ度,然后沿z軸平移標(biāo)準(zhǔn)幅寬s,再繞y軸順時(shí)針旋轉(zhuǎn)θ,得到前進(jìn)端面坐標(biāo)系x4o4z4。
圖7 管片徑向剖面
廣湛(廣州—湛江)高速鐵路湛江灣海底隧道為250 km/h 雙線盾構(gòu)隧道,全長(zhǎng)8.5 km,位于湛江市區(qū),最大埋深約31 m。出于精細(xì)化設(shè)計(jì)和信息化建設(shè)管理需求,對(duì)該隧道開展BIM設(shè)計(jì)。
縱向螺栓將管片劃分為28 個(gè)環(huán)向分區(qū)。10 個(gè)塊體與分區(qū)的關(guān)系見表1。第4列“是否預(yù)埋”中“1”表示當(dāng)前塊體為預(yù)埋槽道塊,否則是常規(guī)塊體。
表1 10個(gè)塊體與分區(qū)的關(guān)系
使用Dassault 軟件創(chuàng)建盾構(gòu)管片環(huán)精細(xì)化BIM 模型,每個(gè)管片環(huán)所包含的封頂塊、標(biāo)準(zhǔn)塊、鄰接塊三種塊體模型見圖8。
圖8 每個(gè)管片環(huán)的三種塊體模型
以隧道理論中心線、空間左線為輸入條件,讀入數(shù)據(jù)表,開展管片定位坐標(biāo)系批量建模,繼而使用Assembly Pattern 功能,完成管片環(huán)模型實(shí)例化,在Dassault平臺(tái)實(shí)現(xiàn)區(qū)間盾構(gòu)隧道BIM設(shè)計(jì)。
每個(gè)預(yù)埋槽道環(huán)包含4 號(hào)、8 號(hào)兩個(gè)預(yù)埋槽道塊(參見表1)。BIM 設(shè)計(jì)成果見圖9。其中預(yù)埋槽道塊用紫色標(biāo)識(shí),各管片環(huán)錯(cuò)縫拼接,預(yù)埋槽道環(huán)按預(yù)定間距沿縱向布置。對(duì)于每一個(gè)預(yù)埋槽道環(huán),可以保證其兩個(gè)預(yù)埋槽道塊中的一個(gè)位于正上方,從而滿足接觸網(wǎng)等四電設(shè)施的基礎(chǔ)預(yù)埋要求。
圖9 廣湛高速鐵路湛江灣海底隧道BIM模型
針對(duì)盾構(gòu)管片三維空間BIM 設(shè)計(jì)存在的自動(dòng)化程度不足、不適用于局部塊體預(yù)埋槽道的大直徑盾構(gòu)隧道等問題,本文基于Dassault 平臺(tái)CAA 架構(gòu)開發(fā)管片空間排布程序,實(shí)現(xiàn)了考慮局部塊體預(yù)埋槽道的區(qū)間盾構(gòu)隧道BIM設(shè)計(jì)。
本程序包含用戶交互、數(shù)據(jù)存儲(chǔ)和骨架設(shè)計(jì)三個(gè)重要模塊。用戶交互模塊通過Add-in 和代理機(jī)制創(chuàng)建工具條及用戶交互窗口。數(shù)據(jù)存儲(chǔ)模塊以縱向定位螺栓的環(huán)向分區(qū)為基準(zhǔn),建立xoy絕對(duì)坐標(biāo)系和x′oy′參考坐標(biāo)系,存儲(chǔ)和表達(dá)管片環(huán)的位置及姿態(tài)數(shù)據(jù)。骨架設(shè)計(jì)模塊考慮多層次約束條件,計(jì)算管片環(huán)的相對(duì)旋轉(zhuǎn)角度序列,以端面坐標(biāo)系原點(diǎn)最接近隧道理論中心線為原則,篩選出最優(yōu)的管片環(huán)相對(duì)旋轉(zhuǎn)角度,批量創(chuàng)建管片定位骨架坐標(biāo)系模型。
使用Dassault 平臺(tái)的模型實(shí)例化等功能,并結(jié)合本程序,成功實(shí)現(xiàn)了廣湛高速鐵路湛江灣海底隧道BIM設(shè)計(jì)。