徐 威,張雪才,柳晴曉龍
(黃河勘測(cè)規(guī)劃設(shè)計(jì)研究院有限公司,河南 鄭州 450003)
重力壩是目前常用的壩型之一,其靠自身重力在壩體與地基接觸面上產(chǎn)生的摩擦力保持整體穩(wěn)定[1],合理選擇壩址和壩軸線、確定樞紐布置是重力壩設(shè)計(jì)的重要內(nèi)容。樞紐布置需要經(jīng)過(guò)多方案反復(fù)比選,最終選擇安全可靠、技術(shù)先進(jìn)、經(jīng)濟(jì)合理的方案。傳統(tǒng)設(shè)計(jì)方法以二維設(shè)計(jì)為主,存在工作量巨大、設(shè)計(jì)周期長(zhǎng)的問(wèn)題。隨著三維設(shè)計(jì)軟件的成熟[2-3],綜合考慮樞紐布置組成對(duì)象的多樣性,采用參數(shù)化設(shè)計(jì)技術(shù)靈活、快速地裝配不同壩段的三維模型是可行的。劉月[4]采用骨架設(shè)計(jì)方法創(chuàng)建骨架基準(zhǔn)平面,利用草圖拉伸方式生成壩段實(shí)體模型,從而實(shí)現(xiàn)重力壩裝配設(shè)計(jì)。但該方法必須先創(chuàng)建好骨架基準(zhǔn)平面才能填充壩段實(shí)體模型,修改方案時(shí)容易出現(xiàn)幾何特征之間失去鏈接關(guān)系的問(wèn)題,而修改鏈接關(guān)系比較煩瑣、容易發(fā)生錯(cuò)誤。董甲甲等[5]基于CATIA 平臺(tái),建立擋水壩、溢流壩、廊道系統(tǒng)和閘墩等各部分三維參數(shù)化模型,運(yùn)用自上而下的三維設(shè)計(jì)理念實(shí)現(xiàn)對(duì)三維模型的裝配。但在裝配前必須先對(duì)擋水壩模型、溢流壩模型及其附屬建筑物模型參數(shù)按照設(shè)計(jì)要求進(jìn)行改正,事先匹配好模型之間的空間關(guān)系,裝配過(guò)程稍顯煩瑣且參數(shù)化壩段模型種類不全。張?zhí)幔?]基于Revit 平臺(tái),根據(jù)提前設(shè)置的平面參照軸網(wǎng)和高程參照標(biāo)高進(jìn)行模型裝配,但該方法必須以先上游再下游、先底部再頂部的順序進(jìn)行裝配,繁雜易出錯(cuò),不利于推廣應(yīng)用。于彥偉[7]基于CATIA 平臺(tái)二次開(kāi)發(fā)重力壩設(shè)計(jì)系統(tǒng),系統(tǒng)裝配模塊考慮了擋水壩段、溢流壩段、附屬建筑物模型,但只能按照固定的裝配關(guān)系進(jìn)行模型裝配,靈活性較差。
目前重力壩裝配設(shè)計(jì)方法大多是自上而下的骨架方法,存在方案調(diào)整效率不高、自動(dòng)化程度低等問(wèn)題。本文基于CATIA 平臺(tái),利用組件應(yīng)用架構(gòu)(Component Application Architecture,CAA)開(kāi)發(fā)模式,開(kāi)發(fā)重力壩自動(dòng)化裝配程序,以期減少樞紐布置過(guò)程中的重復(fù)性工作,提升樞紐布置效率。
CATIA 平臺(tái)提供Automation API 組件和CAA 兩種開(kāi)發(fā)模式[8-9]。Automation API 組件開(kāi)發(fā)模式相對(duì)簡(jiǎn)單,但缺少部分3D 建模命令的接口,因此本文采用CAA 開(kāi)發(fā)模式,探討基于CAA 的CATIA 二次開(kāi)發(fā)重力壩自動(dòng)化裝配技術(shù)。CAA 是基于快速應(yīng)用研發(fā)環(huán)境(RADE)和不同的API 接口程序來(lái)建立的。RADE 是一個(gè)可視化的集成開(kāi)發(fā)環(huán)境,以Microsoft Visual Studio VC++為載體,在VC ++環(huán)境中增加CAA 開(kāi)發(fā)工具。CAA 由若干個(gè)模塊(Module1,Module2,…)組成,不同模塊組成多個(gè)框架(Frame Work1,Frame Work2,…),多個(gè)框架共同構(gòu)成唯一的工作空間(Work Space)。
利用CAA 開(kāi)發(fā)模式開(kāi)發(fā)軟件的過(guò)程為新建工作空間—?jiǎng)?chuàng)建框架—?jiǎng)?chuàng)建模塊—?jiǎng)?chuàng)建工具條—?jiǎng)?chuàng)建界面和功能。編碼工作需要在模塊內(nèi)完成,最重要的2 個(gè)模塊分別為Addin 模塊和Function 模塊,在Addin 模塊中實(shí)現(xiàn)工具條命令按鈕的創(chuàng)建,在Function 模塊中實(shí)現(xiàn)用戶操作界面和界面控件綁定實(shí)際功能的創(chuàng)建。
鑒于重力壩樞紐布置需多方案優(yōu)化的特點(diǎn),將重力壩自動(dòng)化裝配程序分為初步布置、布置優(yōu)化、擋水壩段自動(dòng)填補(bǔ)3 個(gè)階段(見(jiàn)圖1),在Catalog 目錄中存儲(chǔ)常用的各類壩段模型資源供后續(xù)工程快速引用。
圖1 重力壩自動(dòng)化裝配程序
根據(jù)壩段功能,分為功能壩段和擋水壩段。功能壩段是指具有除擋水功能之外其他功能的壩段,在布置樞紐時(shí)先考慮功能壩段的空間位置,如溢流表孔壩段、泄洪孔壩段、發(fā)電壩段、灌溉壩段、導(dǎo)流底孔壩段等。通過(guò)建立壩段參數(shù)化模型可以實(shí)現(xiàn)壩段幾何造型的按需選擇,每個(gè)壩段都附帶其剖面圖、平面圖、軸測(cè)視圖及尺寸信息。因篇幅有限,故本文僅展示溢流表孔壩段參數(shù)化模型,見(jiàn)圖2,壩段工程圖紙見(jiàn)圖3。由于壩段的幾何造型復(fù)雜,壩段參數(shù)化模型中用戶參數(shù)的數(shù)量超過(guò)10 個(gè),極可能出現(xiàn)因參數(shù)輸入錯(cuò)誤而導(dǎo)致模型無(wú)法生成的問(wèn)題,因此尋找錯(cuò)誤發(fā)生的原因和位置是比較麻煩和費(fèi)時(shí)的。為解決該問(wèn)題,借鑒機(jī)械制造業(yè)中設(shè)備選型的思路,對(duì)每個(gè)壩段模型按照壩高進(jìn)行系列化處理,得到常用壩高范圍(30~150 m)間隔10 m 的系列化模型庫(kù)。此方法不僅可根據(jù)實(shí)際壩高進(jìn)行壩段選型,選出的初始模型更接近工程實(shí)際需求,而且能縮小壩段用戶參數(shù)值的變化范圍,避免參數(shù)值大幅度修正,降低參數(shù)修正時(shí)錯(cuò)誤發(fā)生的概率。
圖2 溢流表孔壩段參數(shù)化模型
圖3 溢流表孔壩段工程圖紙(單位:m)
考慮到壩段幾何實(shí)體模型的靈活性和普適性,定義一種新的壩段部件基本數(shù)據(jù)結(jié)構(gòu),以部件形式對(duì)壩段進(jìn)行封裝。根據(jù)壩段部件的零件數(shù)量,把壩段部件基本數(shù)據(jù)結(jié)構(gòu)分為單零件壩段部件基本數(shù)據(jù)結(jié)構(gòu)和多零件壩段部件基本數(shù)據(jù)結(jié)構(gòu),見(jiàn)圖4。
圖4 壩段部件基本數(shù)據(jù)結(jié)構(gòu)
壩段部件基本數(shù)據(jù)結(jié)構(gòu)主要包含3D 形狀、幾何造型零件、工程鏈接區(qū)和發(fā)布元素區(qū)4 個(gè)部分。幾何造型零件由一個(gè)零件或者多個(gè)零件構(gòu)成,每個(gè)零件內(nèi)部均含有代表壩段左側(cè)和右側(cè)的空間標(biāo)識(shí)。如果幾何造型零件有多個(gè)零件,則零件之間依次自動(dòng)裝配。工程鏈接區(qū)用于保存所有鏈接關(guān)系。發(fā)布元素區(qū)主要是暴露壩段部件整體幾何實(shí)體的定位標(biāo)識(shí)、左側(cè)標(biāo)識(shí)和右側(cè)標(biāo)識(shí),供其他壩段部件進(jìn)行引用和裝配。3D 形狀同樣具有左側(cè)和右側(cè)空間標(biāo)識(shí),其代表的是壩段部件第一個(gè)零件的左側(cè)空間標(biāo)識(shí)和最后一個(gè)零件的右側(cè)空間標(biāo)識(shí)。此外,3D 形狀還有定位標(biāo)識(shí),用于壩段部件空間位置和方位的確定。3D 形狀的內(nèi)部結(jié)構(gòu)見(jiàn)圖5。
圖5 3D 形狀的內(nèi)部結(jié)構(gòu)
在參數(shù)集中定義主壩段、樁號(hào)、組號(hào)3 個(gè)參數(shù),主壩段參數(shù)類型是布爾值,樁號(hào)參數(shù)類型是長(zhǎng)度值(單位為m),組號(hào)參數(shù)類型為0 或正整數(shù)值。如果主壩段值為真,則樁號(hào)產(chǎn)生作用,表示該壩段部件采用定位標(biāo)識(shí)與大壩基準(zhǔn)元素進(jìn)行裝配,方位與基準(zhǔn)元素相同,壩段與基準(zhǔn)元素之間的距離由樁號(hào)定義。如果主壩段值為假,則樁號(hào)不產(chǎn)生作用,表示該壩段幾何實(shí)體將裝配到其他壩段部件的左側(cè)或者右側(cè)。組號(hào)主要用于多個(gè)壩段部件的編組,如果2 個(gè)壩段部件的組號(hào)相同,則表明這2 個(gè)壩段部件是同一組,將自動(dòng)根據(jù)左右空間關(guān)系裝配在一起。
構(gòu)建好壩段部件基本數(shù)據(jù)結(jié)構(gòu)之后,程序?qū)Σ考?nèi)部的幾何造型零件沒(méi)有特別限制,用戶完全可以自定義壩段幾何實(shí)體,進(jìn)而實(shí)現(xiàn)幾何實(shí)體的個(gè)性化,也為重力壩自動(dòng)化裝配提供基礎(chǔ)條件。
在進(jìn)行重力壩樞紐布置之前,根據(jù)測(cè)繪點(diǎn)云數(shù)據(jù)建立數(shù)字地形曲面三維模型,進(jìn)一步創(chuàng)建工程區(qū)域覆蓋層、基巖層、斷層等三維地質(zhì)體模型。在CATIA 中,根據(jù)三維地形與河道形態(tài),選擇合適的位置創(chuàng)建可調(diào)節(jié)的參數(shù)化壩軸線,并以壩軸線左岸控制點(diǎn)為基準(zhǔn)進(jìn)行樞紐布置,重點(diǎn)考慮泄洪建筑物布置以及其他功能壩段布置,可實(shí)時(shí)查看各壩段與地形曲面和地質(zhì)曲面的三維關(guān)系,合理避開(kāi)不利地形、地質(zhì)區(qū)域。初步布置主要是從模型庫(kù)中調(diào)用需要的模型,并在壩軸線空間上將壩段定位在合適的位置。對(duì)于初步布置的第一個(gè)壩段,只能根據(jù)樁號(hào)進(jìn)行布置,利用壩段部件定位標(biāo)識(shí)與大壩左岸基準(zhǔn)的距離描述第一個(gè)壩段的空間位置。第一個(gè)壩段的3D 形狀內(nèi)主壩段、樁號(hào)、組號(hào)分別為真、實(shí)際距離、1。
對(duì)于后續(xù)壩段,有2 種布置方式:一是可以采用與第一個(gè)壩段相同的樁號(hào)進(jìn)行布置,該壩段的3D 形狀內(nèi)主壩段、樁號(hào)、組號(hào)分別為真、實(shí)際距離、非重復(fù)編號(hào);二是可以采用參考?jí)味蔚姆绞竭M(jìn)行布置,將后續(xù)壩段自動(dòng)裝配至已有壩段部件的左側(cè)或者右側(cè),2 個(gè)壩段合并成1 個(gè)整體,此時(shí)主壩段、樁號(hào)、組號(hào)分別為假、0 m、與參考?jí)味蜗嗤木幪?hào)。
布置優(yōu)化主要是對(duì)初步布置的壩段進(jìn)行調(diào)整,實(shí)現(xiàn)對(duì)壩段幾何實(shí)體的“增、改、刪”。對(duì)于“增”,可采用初步布置中后續(xù)壩段布置的方法。對(duì)于“刪”,提供“整組刪除”“組內(nèi)刪除”2 種刪除功能。對(duì)于“改”,提供“組移動(dòng)”“組合并”“組拆分”“組插入”“組內(nèi)調(diào)序”等功能。各功能具體如下。
(1)“組移動(dòng)”功能。在可視化環(huán)境下對(duì)壩體進(jìn)行動(dòng)態(tài)移動(dòng),根據(jù)最新壩段位置更新樁號(hào),見(jiàn)圖6。鼠標(biāo)左鍵按住壩段上方的箭頭可以動(dòng)態(tài)移動(dòng)壩段至合適的空間位置,之后在樁號(hào)對(duì)話框內(nèi)輸入數(shù)值,將壩段調(diào)整至合適的位置。操作之后,3D 形狀內(nèi)的樁號(hào)數(shù)值與輸入的數(shù)值相同。
圖6 “組移動(dòng)”功能展示
(2)“組合并”功能?!敖M合并”功能是指將2 個(gè)壩段部件合并為1 個(gè)整體,選擇的第一個(gè)壩段在空間位置上自動(dòng)裝配到選擇的第二個(gè)壩段左側(cè)或者右側(cè)。同時(shí),第一個(gè)壩段的3D 形狀中主壩段值變?yōu)榧?樁號(hào)值變?yōu)? m,組號(hào)變?yōu)榕c第二個(gè)壩段相同的組號(hào)。合并后整體結(jié)構(gòu)的空間位置由第二個(gè)壩段與大壩左岸基準(zhǔn)的距離進(jìn)行確定。
(3)“組拆分”功能?!敖M拆分”功能是指將多個(gè)基本壩段拆分為2 個(gè)組合壩段,見(jiàn)圖7。執(zhí)行該命令后左側(cè)列表和右側(cè)列表中顯示的壩段分別成為2 個(gè)新整體壩段,左側(cè)列表和右側(cè)列表中的壩段部件按列表從上至下的順序確定幾何實(shí)體沿壩軸線方向從左至右的順序,設(shè)置每個(gè)壩段3D 形狀中的組號(hào)相同,且只有1 個(gè)壩段的主壩段值為真,確定該壩段距大壩左岸的距離,其余壩段的主壩段值為假。2 個(gè)新整體壩段的組號(hào)不相同,且不與其余壩段組號(hào)重復(fù)。
圖7 “組拆分”功能展示
(4)“組插入”功能。“組插入”功能是指將一個(gè)壩段部件插入到另一個(gè)含多個(gè)壩段部件組合內(nèi)部。執(zhí)行該命令后待插入的壩段部件與原壩段部件組合形成新整體,待插入的壩段部件3D 形狀中組號(hào)設(shè)置為與原壩段相同的組號(hào),待插入的壩段部件的左側(cè)、右側(cè)標(biāo)識(shí)分別與壩段部件組合內(nèi)最左側(cè)壩段部件的右側(cè)標(biāo)識(shí)、最右側(cè)壩段部件的左側(cè)標(biāo)識(shí)進(jìn)行裝配。
(5)“組內(nèi)調(diào)序”與“組內(nèi)刪除”功能均根據(jù)一定的順序重新自動(dòng)更新壩段裝配關(guān)系?!罢M刪除”將基本數(shù)據(jù)結(jié)構(gòu)的組合整體刪除,既刪除幾何實(shí)體產(chǎn)品,也刪除相關(guān)的工程鏈接關(guān)系。
沿壩軸線從左岸到右岸,分析所有壩段部件以及壩段部件組合的左側(cè)空間標(biāo)識(shí)和右側(cè)空間標(biāo)識(shí),程序認(rèn)為這2 個(gè)標(biāo)識(shí)之間的空間被本組壩段幾何實(shí)體占據(jù)。左側(cè)空間標(biāo)識(shí)和右側(cè)空間標(biāo)識(shí)總是成對(duì)出現(xiàn),如果壩軸線范圍內(nèi)只有一組左側(cè)、右側(cè)空間標(biāo)識(shí),則代表壩軸線被一組壩段部件分割為兩段;如果壩軸線范圍內(nèi)有N組左側(cè)、右側(cè)空間標(biāo)識(shí),則代表壩軸線被N組壩段部件分割為N+1 段。在對(duì)應(yīng)的N+1 段空間內(nèi),可進(jìn)行擋水壩段的自動(dòng)填補(bǔ)。
幾內(nèi)亞蘇阿皮蒂水利樞紐工程重力壩為碾壓混凝土重力壩,壩長(zhǎng)1 156.0 m,壩高116.5 m,主要建筑物有引水發(fā)電壩段、導(dǎo)流底孔壩段、泄洪底孔壩段、溢流壩段、左右岸擋水壩段和河床擋水壩段。
采用重力壩自動(dòng)化裝配程序進(jìn)行三維設(shè)計(jì)。引水發(fā)電壩段單獨(dú)為1 組,組號(hào)為1,樁號(hào)為423.45 m;高位導(dǎo)流底孔壩段、低位導(dǎo)流底孔壩段、泄洪底孔壩段以及溢流表孔壩段合并為1 組,組號(hào)為3,主壩段為高位導(dǎo)流底孔壩段,其主壩段值為真,樁號(hào)為520.45 m,其余壩段的主壩段值為假。左岸擋水壩段1 為1 組,內(nèi)部有17 個(gè)零件(壩段),組號(hào)為2,樁號(hào)為0 m。河床擋水壩段2 為1 組,內(nèi)部只有1 個(gè)零件(壩段),組號(hào)為5,樁號(hào)為499.45 m。右岸擋水壩段3 為1 組,內(nèi)部有15 個(gè)零件(壩段),組號(hào)為6,樁號(hào)為779 m。樞紐布置成果見(jiàn)圖8。
圖8 重力壩樞紐布置成果
采用傳統(tǒng)的設(shè)計(jì)手段完成該重力壩樞紐布置、工程量計(jì)算及圖紙編輯需要7 個(gè)工作日,采用本文設(shè)計(jì)的參數(shù)化模型及自動(dòng)化裝配程序需要4 個(gè)工作日,并且設(shè)計(jì)成果保留動(dòng)態(tài)鏈接,后續(xù)編輯和優(yōu)化方案非常便捷。該工程的應(yīng)用驗(yàn)證了重力壩自動(dòng)化裝配程序的可行性與合理性,相比以往骨架裝配方式更加靈活,自動(dòng)化裝配效率明顯提升。
本文構(gòu)建了按每10 m 壩高間隔的系列化常用壩段參數(shù)化模型庫(kù),可根據(jù)實(shí)際壩高進(jìn)行壩段選型,選出的初始模型更加接近工程實(shí)際需求,同時(shí)減小了用戶參數(shù)值變化范圍,避免參數(shù)值大幅度修正,降低了參數(shù)修正時(shí)模型錯(cuò)誤發(fā)生的概率;定義了一種壩段部件基本數(shù)據(jù)結(jié)構(gòu),利用這種結(jié)構(gòu)化部件結(jié)構(gòu)可靈活自定義壩段幾何實(shí)體,提高壩段實(shí)體模型的普適性;開(kāi)發(fā)了重力壩自動(dòng)化裝配程序,提高壩段裝配效率,減少重復(fù)性工作。
本程序目前只能適用于直線型壩軸線,還不能在折線型壩軸線上使用,下一步將進(jìn)行適用于折線型壩軸線的程序開(kāi)發(fā)。