曹 煜,周 燁
(中交第一航務工程勘察設計院有限公司,天津 300222)
隨著“一帶一路”的推進,新建碼頭選址逐漸向深海以及一些不利地質區域發展。在惡劣的海洋環境下,確保碼頭的功能性、安全性的同時還需要兼顧經濟性。高樁碼頭對軟土地基適應性好,還能減弱波浪、水流等對碼頭的影響,在海洋工程中得到了廣泛的應用[1-3]。
對于高樁碼頭而言,樁基是其最重要的組成部分。尤其是墩臺類結構,樁基數量有限,荷載方向多變,不同荷載通過上部結構傳遞或直接作用在樁基上,產生相應的樁力及彎矩。一方面,需要復核各種工況下的樁基受力情況是否滿足設計要求。另一方面,合理控制樁徑以及樁基數量,可以降低工程造價,提升結構經濟性。通過對比不同樁基布置方案,分析樁基設計優化空間,是高樁碼頭結構設計的必經之路。
SAP2000作為一款專業的有限元結構分析軟件,可以輔助進行高樁碼頭結構建模與受力分析。通過SAP2000可以自定義荷載工況與荷載組合,并對碼頭樁基進行受力分析與結果導出。但是,SAP2000在對樁構件進行操作時存在諸多不便,如設置斜樁斜率、調整樁基角度等。尤其是使用m法進行樁基計算時,由于設置了樁-土彈簧,在修改樁基斜率與角度的時候,操作非常繁瑣,容易發生誤操作,影響結果的準確性。
通過SAP2000預留的二次開發接口,可以針對專業細分需求,對軟件功能進行定制化開發,豐富軟件的原生功能,優化軟件操作流程,提升設計人員的工作效率。用戶可以通過VBA、Python、Fortran等多種語言進行接口開發,實現諸如參數化建模[4-5]、SAP2000與外部軟件模型交互[6-7]、復雜結構迭代計算[8-9]等多種功能。由于SAP2000主要面向建筑結構領域[10-11],考慮到碼頭結構的特殊性,針對SAP2000進行定制化二次開發是非常必要的。目前,針對SAP2000在水運工程應用中的二次開發研究相對較少。
本文借助SAP2000的二次開發功能,進行了碼頭樁基設計接口的開發,簡化了樁基設計中常用操作的流程,并實現了兩大創新功能:(1)生成既有樁基方案的樁位圖,并對樁基方案進行存儲與載入;(2)通過SAP2000與Revit軟件的交互,實現SAP2000樁基模型碰撞檢查設計。
SAP2000應用程序接口(API)采用COM接口形式,提供了豐富的內置函數供用戶進行調用,功能涵蓋了建模、分析、結果提取等諸多環節。本文以SAP2000結構設計軟件為基礎,采用C#開發環境進行編程,通過WPF框架進行可視化設計,實現對SAP2000碼頭樁基設計接口的開發。
基于SAP2000軟件的規范化要求,在通過C#開發擴展應用服務(Plug-In)時,需要遵循既定的開發流程,如圖1所示。

圖1 開發流程示意圖Fig.1 Process of development
首先,需要在程序中添加引用SAP2000的類型庫,并將程序注冊為COM接口。其次,新建一個名稱為cPlugin的類,在類中定義一個Main()方法。Main()方法作為開放的接口可以申請SAP2000主程序的控制權,并添加所需開發的服務。Main()方法結束后調用Sap2000.cSapPlugin.Finish()來將程序的控制權交還給主程序。
開發環境搭建完成后,對模型的主要特征進行分析并參數化。SAP2000中的樁基模型主要包含五個方面的信息:樁基兩端節點位置、端點約束條件、樁基截面參數、樁身彈簧信息、樁身荷載信息。這些信息在程序的API接口中的參數化結果如表1所示。開發碼頭樁基設計接口時,通過這五個方面的信息與主程序進行交互,并實現相關功能。
2.3.1 樁位調整
對高樁碼頭而言,樁位特征主要表現為兩個參數,分別為樁的斜率以及樁的方向。在SAP2000中,沒有對樁基的斜率和方向直接進行設置的選項,需要通過旋轉等方式進行調整,建模效率低下。通過表1得到的量化指標,通過接口程序直接修改樁基端點坐標,以達到設置樁基斜率和方向的目的。
通過SAP2000 API中的SapModel0.SelectObj.GetSelected() 函數獲取選中的樁基及彈簧點集合,調用SapModel0.FrameObj.GetPoints() 和SapModel0.PointObj.GetCoordCartesian() 得到樁基兩個端點的坐標后,以位于上部的坐標為原點,對其他點的坐標進行調整。

表1 模型信息參數化指標Tab.1 Parametric index for model information
以樁身某點(x,y,z)為例,調整樁基斜率后該點的坐標值如下
(1)
(2)
z′=z
(3)
式中:(x0,y0,z0)為樁的上部頂點的坐標;(x′,y′,z′)為調整斜率后樁身某點的坐標;SL為調整后的樁基斜率。
調整樁基角度后的該點坐標值如下
(4)
(5)
z″=z
(6)
式中:θ為需要將樁基繞z軸旋轉的角度(逆時針為正);(x″,y″,z″)為調整角度后樁身某點的坐標。
給定所需設置的樁基斜率或角度,通過上式計算得到各點的新坐標值,調用SapModel0.EditGeneral.Move()將點移動到新的位置上,實現對樁基的斜率或角度的調整及相應的樁身彈簧點的批量移動。
2.3.2 樁位顯示與布置方案存取
在碼頭樁基設計過程中,由于碼頭受力復雜,針對初定的樁位方案,需要結合受力分析結果對局部樁位進行調整,以最大化發揮樁基的承載能力。SAP2000程序不能直觀地展示模型的樁位排布,尤其是樁的斜率和角度,軟件自身并不具備查詢功能,對樁基設計過程造成一定的不便。
通過新建WPF窗口,借助Canvas繪圖功能實現對模型樁位圖的繪制。選中需要繪制樁位圖的樁基構件,通過SapModel0.FrameObj.GetPoints()函數獲取各樁的端點信息。將獲取到的點坐標進行換算以匹配Canvas坐標系,并在Canvas窗口中繪制出各樁基的水平投影。為了便于用戶查詢各樁的斜率及角度,在樁基端點處賦予ToolTip屬性,當鼠標移動到該處時顯示相應的斜率和角度信息。
為了對不同的樁基布置方案進行比較,往往需要建立多個模型文件。當外部荷載或上部結構等發生變化時,需要對多個模型同時進行修改,操作繁瑣。將樁基模型參數化后,將不同樁位方案下的樁基模型參數信息存儲到獨立文件中,需要時單獨導入模型即可。樁基模型存儲與讀取流程如圖2所示。

圖2 樁基模型存儲與讀取流程圖Fig.2 Process of saving and importing pile foundation model
以.txt文件作為載體來存儲樁基模型信息。根據表1中得到的樁基模型參數化結果,數據文件主要包含5個方面的信息:端點坐標、端點約束、截面參數、樁身彈簧、樁身荷載。分別以Coordinate、Restraint Data、Frame Section、Spring Data、Load Data作為關鍵詞進行分隔,將從模型中獲取的參數化信息分別寫入到.txt文件相應的數據行中。調用C#的StreamWriter類實現對.txt文件的寫入工作,并將文件保存到用戶指定的路徑下,完成對樁基布置方案的存儲。
讀取樁基布置方案時,調用C#的StreamReader類將.txt文件中的模型信息讀取出來,并根據關鍵詞劃分后暫存到數據表中。通過SapModel0.FrameObj.AddByCoord()生成樁基構件并賦予其截面信息;通過SapModel0.PointObj.AddCartesian()與SapModel0.PointObj.SetSpring()完成對彈簧點的新建與彈簧定義;調用SapModel0.PointObj.SetRestraint()實現對樁端節點約束;最后通過SapModel0.FrameObj.SetLoadDistributed()施加樁身荷載。由此,完成對樁基方案的讀取,且自動生成包含端點位置及約束、樁身彈簧與樁身荷載等信息的完整樁基模型,見圖3。

圖3 樁位布置方案載入Fig.3 Importing of pile foundation model
2.3.3 樁基碰撞檢查
在碼頭樁基結構中,由于各樁的斜率與角度不盡相同,容易發生樁基碰撞現象,影響施工的可行性[12]。SAP2000作為一款結構分析軟件,不具備樁基碰撞檢查的功能。借助一些BIM軟件,如Revit、Navisworks等,可以快速進行碰撞檢查[13],對樁基布置方案進行復核與優化。通過將SAP2000模型傳遞到Revit中,進行樁基碰撞檢查,根據檢查結果返回SAP2000中適當調整樁位,并更新樁基受力結果。
要實現兩款不同領域的軟件的模型共享,需要借助中間格式進行數據傳遞。IFC(Industry Foundation Class)是一種規定了工程對象信息如何描述以及如何獲取的統一數據格式標準,在BIM領域有著廣泛應用。通過開發IFC接口,可以支持將模型以IFC規定的格式導出,或讀取按照IFC標準存儲的模型數據。SAP2000和Revit均支持IFC文件的存儲和導出,并通過了IFC標準開發組織的認證,為樁基模型碰撞檢查的實現提供了途徑。

4-a SAP2000樁基模型 4-b Revit樁基碰撞檢查圖4 樁基碰撞檢查示意圖Fig.4 Collision detection of pile foundation
將SAP2000樁基模型導出為IFC文件格式,通過鏈接的方式在Revit中導入IFC文件。導入后的樁基模型作為整體鏈接在Revit項目中,不能進行編輯操作。對導入的樁基模型進行綁定后,選中所有樁基進行解組。解組后的樁基構件通過Revit自帶的碰撞檢查功能即可進行樁基碰撞檢查,并實時顯示碰撞結果,見圖4。
南美某開敞式碼頭礦石碼頭位于-35 m水深處,掩護條件較差。碼頭端部設置一個系纜墩,起到輔助散貨船系泊的作用。系纜墩上部結構為混凝土墩臺,下部采用鋼管樁支撐。由于泥面較深,且地質條件較差,樁基費用占系纜墩總投資的90%以上。通過SAP2000建立系纜墩結構模型,結合本文開發的碼頭樁基設計接口對系纜墩樁基方案進行設計與優化。
系纜墩受到的主要荷載為系纜力,方向與碼頭前沿線的夾角為30°~60°。作用在樁身和墩臺上的波浪力也是主要荷載之一。結合系纜墩主要受力特征,擬定了四種樁位布置方案進行比選,如圖5所示。樁基采用直徑1 200 mm鋼管樁,壁厚20 mm。首先通過SAP2000建立出方案1的全直樁模型,繼而通過樁基設計接口快速便捷地對其他三種樁位布置方案進行建模,并將樁位模型分別存儲,以便后期調用。

方案1 方案2 方案3 方案4圖5 不同樁基布置方案(單位:mm)

圖6 不同方案樁基內力最值對比Fig.6 Comparison of internal forces of piles under different pile arrangement
四種方案的樁基內力結果如圖6所示。方案4的樁基布置方案最為合理,在同樣數量的樁基下,方案4樁基的最大壓力、拉力、樁身彎矩和剪應力結果均為最優。通過碰撞檢查功能,發現方案2和方案3均存在樁基碰撞現象,方案4樁基不會發生碰撞(圖7)。綜合以上的比選,最終選擇方案4的樁基布置方案作為推薦方案,并通過SAP2000載入先前保存的方案4樁基模型以進行后續細化分析。


方案一方案二方案三方案四7-a SAP2000有限元模型


方案一方案二方案三方案四7-b REVIT三維模型圖7 樁基碰撞檢查結果Fig.7 Collision detection result for different pile arrangement
至此,通過本文開發的碼頭樁基設計接口,完成了對系纜墩樁基方案的設計比選過程。通過與人工手動調整的模型進行比對,兩種方式得到的模型與計算結果均一致吻合,通過碼頭樁基設計接口輔助模型搭建與分析,一方面極大提高了設計效率,另一方面拓展了有限元軟件的功能,彌補了傳統設計軟件在三維碰撞檢查方面的不足。
本文通過SAP2000 API提供的二次開發功能,開發了基于SAP2000的碼頭樁基設計接口。解決了SAP2000在水運工程樁基結構設計中建模效率低的問題。針對工程設計人員多方案比選的需求,開發了樁基模型存取功能;針對樁基設計中的碰樁問題,基于IFC標準進行SAP2000模型與Revit模型轉換,并在Revit中實現有限元結構模型的三維碰撞檢查,彌補了有限元軟件在三維碰撞檢查方面的不足。
通過在南美某礦石碼頭中的實際應用,驗證了該碼頭樁基設計接口的可靠性與實用性。與傳統的手動調整模型方式相比,借助碼頭樁基設計接口配合進行模型調整與碰撞分析,可以極大提高設計效率,完善設計內容,提升設計質量。
后續的研究將進一步關注SAP2000有限元結構軟件及Revit等BIM軟件在水運工程結構設計中的功能開發,拓展BIM技術應用場景,實現優勢互補。