譚也平,王干亮
(深圳大學 交通與土木工程學院,廣東 深圳 518060)
混凝土連續(xù)體系梁橋作為橋梁工程的主要結(jié)構(gòu)形式,在公路及鐵路工程領域應用較廣泛。關于混凝土連續(xù)體系梁橋分節(jié)段模型參數(shù)化的創(chuàng)建方法,目前已有少量文章介紹。張建軍等介紹了通過Revit族文件創(chuàng)建常規(guī)橋梁的方法[1];趙偉蘭等介紹了通過Revit自適應族創(chuàng)建復雜曲線拱橋模型的方法[2]。國內(nèi)尚未找到基于SCDM二次開發(fā)創(chuàng)建混凝土連續(xù)體系梁橋模型的相關技術及介紹。
目前,我國在建和已建跨徑在200 m以上的連續(xù)剛構(gòu)橋已達到20多座,跨境100~200 m的預應力梁橋超過100座;全世界有20多座跨徑在240 m以上的特大跨徑連續(xù)剛構(gòu)橋,中國就占了一半以上。大跨徑預應力混凝土橋在我國城市交通發(fā)展建設中發(fā)揮著非常重要的作用。大跨連續(xù)橋的結(jié)構(gòu)形式變化多樣,其中連續(xù)體系橋以其優(yōu)良的結(jié)構(gòu)性能在橋梁建設中占有極其重要的地位?;炷吝B續(xù)剛構(gòu)橋主梁連續(xù)、墩梁固結(jié),具有較大的跨越能力、合理的受力、良好的整體性和較強的抗震性,抗彎剛度、抗扭剛度較大,該橋型為大跨度預應力混凝土橋首選橋型,具有造型簡單、維護方便等優(yōu)點。
在對橋梁模型進行數(shù)值分析時,由于有限元分析軟件的建模能力較弱,我們常常需要將橋梁模型從外部CAD系統(tǒng)導入到有限元分析軟件中進行仿真分析[3],求解結(jié)構(gòu)強度、剛度、彈塑性等力學性能及優(yōu)化設計。根據(jù)分析結(jié)果適當調(diào)整模型的幾何和拓撲信息[4],進而提高橋梁模型的相關力學性能。人工操作在此過程中不可避免地會產(chǎn)生一些偏差,達不到理想的效果,并且直接修改模型還會耗費大量的人力和時間。因此,模型的設計和管理可以按照參數(shù)化的方法進行[5]。根據(jù)需要,在適當調(diào)整相應參數(shù)和仿真分析條件后,自動進行模型的重建與管理[6],節(jié)約時間的同時,可有效地避免不可預見的錯誤和風險。
以往的橋梁有限元分析處理,實體模型多是通過外部導入的方式,由于文件格式不兼容,此過程不可避免地會出現(xiàn)模型失真等問題,并且導入的模型不易修改和重復使用,頻繁地修改和導入無疑會增加勞動和誤差積累。為解決以上問題,我們選擇對軟件內(nèi)部建模功能進行二次開發(fā)的參數(shù)化建模方案。
使用APDL 代碼在ANSYS軟件中進行二次開發(fā)已經(jīng)被廣泛地推廣和應用[7],這種方式可以通過 ANSYS 參數(shù)化設計語言 APDL 編寫的文本數(shù)據(jù)文件,以命令流的形式完成,但存在創(chuàng)建大型模型時查錯困難的問題,并且ANSYS APDL命令流的靈活性不高,繁雜的命令流掌握起來也比較困難,不易操作。趙曉宇等人對外部模型轉(zhuǎn)換得到的信息模型是在SCDM中建立的,相對基于ANSYS APDL格式的模型,操作界面更加友好,基礎建模功能更加實用,并且SCDM的功能也在不斷地完善和補充當中。此外,通過對每個模型組件進行命名,還可以批量分類完成任意組件的材料屬性的賦予和更改,便于調(diào)整和修改模型信息,在模型管理上會更加方便和實用。它能夠快速實現(xiàn)理想模型的建立,大幅提高ANSYS的建模效率,一定程度上縮短有限元分析前處理階段的時間。
本文研究內(nèi)容主要是在ANSYS/SCDM平臺上通過對其建模功能的二次開發(fā),利用IronPython腳本語言創(chuàng)建橋梁單元參數(shù)化信息模塊,實現(xiàn)輸入截面尺寸等幾何參數(shù)后,程序能夠自動完成橋梁實體模型的創(chuàng)建。創(chuàng)建梁體節(jié)段模型,最終裝配全部節(jié)段作為整橋?qū)嵗?;繁雜的實體模型創(chuàng)建工作,都是由程序自動完成的,可快速實現(xiàn)仿真模型參數(shù)化創(chuàng)建及管理。
ANSYS系列軟件提供了可以擴展產(chǎn)品功能的應用程序編程接口——SCDMAPI,創(chuàng)建的參數(shù)化仿真模型是基于ANSYS SCDM 的IronPython腳本建模語言。利用腳本語言描述模型的幾何及拓撲信息,結(jié)合ANSYS中的 SCDM.API V18的幫助文件實現(xiàn)連續(xù)箱梁實體參數(shù)化模型的創(chuàng)建,程序在SCDM項目環(huán)境下運行,程序開發(fā)流程如圖1所示,主要分為以下幾個主要步驟。
圖1 程序開發(fā)流程圖
在對應樁號處通過指定3個軸坐標向量及坐標原點的方式創(chuàng)建箱梁橫截面局部坐標[參考ANSYS 中的SCDM.API V18中類和方法的坐標系創(chuàng)建命令(DatumOriginCreator.Create(origin,x_Direction,y_Direction,None)及選擇草圖平面編輯命令(plane.Create(Frame.Create(Point.Create(MM(),MM(),MM()),Direction.DirY,Direction.DirZ)],這樣就可以在局部坐標系下,通過草圖編輯模式開始創(chuàng)建參數(shù)化的實體模型,詳細參考代碼如下:
通過上述步驟創(chuàng)建的局部坐標系分別利用點創(chuàng)建命令(Point2D.Create()生成對應樁號處的箱梁截面關鍵點,再通過線創(chuàng)建命令(SketchLine.Create()依次連接關鍵點創(chuàng)建截面外輪廓及內(nèi)輪廓,外輪廓和內(nèi)輪廓所圍成的平面就是箱梁截面。然后再通過(ViewHelper.SetViewMode(InteractionMode.Solid,None)命令使創(chuàng)建的箱梁截面實體化,這樣就可以在三維模式下激活拉動命令,輸入拉伸命令(ExtrudeFaces.Execute(selection,MM(),options)生成梁體節(jié)段的實體模型,重復操作以上命令,補充橋梁幾何參數(shù)就可以生成橋各節(jié)段的實體模型,最后通過輪廓融合命令(Loft.Create(selection,None,options) 將相鄰梁體節(jié)段融合在一起,形成完整的橋梁實體模型。參考代碼如下:
為了便于后期對橋梁實體模型的編輯、優(yōu)化和完善,我們需要對完成的腳本代碼進行關鍵參數(shù)的提取,并將這些關鍵參數(shù)放置在腳本首段明顯的位置。在對代碼中提取的關鍵參數(shù)(形參)賦值實際參數(shù)后,就可以正常運行,重新創(chuàng)建的實體模型幾何截面尺寸隨著輸入的實際參數(shù)大小進行變化。這樣創(chuàng)建的參數(shù)化模型就可以實現(xiàn)重復變更和使用。該過程能夠節(jié)省重建模型的時間,提高建模效率,并且參數(shù)化模型可以提高模型的準確性,而人工直接建模操作煩瑣且很難保證截面尺寸的精確性。
在此基礎上,我們可以直接在SCDM操作界面上對腳本參數(shù)的變量值進行更改,實現(xiàn)參數(shù)化實體模型的重建,通過調(diào)用SCDM自帶的腳本交互輸入API類的方法,在提取關鍵參數(shù)的同時調(diào)用Beta.InputHelper.CreteTextBox()命令創(chuàng)建文本輸入控件,具體可按ANSYS中的 SCDM.API V18方法提示完成,運行程序后就會在“選擇面板”選項中顯示創(chuàng)建的控件及文本輸入框,在文本框內(nèi)輸入橋梁截面尺寸及各節(jié)段項目需要的信息及參數(shù),確認后運行程序,就可以得到參數(shù)化的實體模型。更新模型時,需再次運行程序,重新在控件文本框里輸入新的參數(shù)值,就可以創(chuàng)建新的橋梁參數(shù)化的實體模型。為了便于重復調(diào)用編輯的腳本代碼,我們可以將代碼發(fā)布為腳本工具,使用時只需在工具菜單欄里點擊腳本工具按鈕就可以進行調(diào)用,交互式輸入主要參考代碼如下:
對創(chuàng)建的模型腳本代碼進行算法優(yōu)化,開發(fā)用戶輸入界面。
為了便于用戶更加直觀地創(chuàng)建參數(shù)化的模型,我們還可以在WinForms[8]客戶端軟件開發(fā)平臺上進行用戶窗體界面的開發(fā),在用戶窗體界面中輸入橋梁路線數(shù)據(jù)及箱梁截面尺寸,梁高及腹板厚度通過變化公式自動錄入界面,并標識各截面所處箱梁節(jié)段類型。生成參數(shù)化模型后,可根據(jù)實際需求對模型的幾何及拓撲參數(shù)進行調(diào)整。保存并發(fā)布成工具,方便調(diào)用。發(fā)布腳本工具如圖2所示。
圖2 發(fā)布腳本工具
SCDM腳本是IronPython語言,這種語言可以加載.NET程序集,使用其框架下的WinForms類庫開發(fā)界面。用戶輸入界面開發(fā)前,需要對界面和輸入控件的位置、尺寸進行設計,對各類參數(shù)輸入控件進行命名并進行合理的歸類和布置,參考代碼和對應界面如下:
圖3為創(chuàng)建的用戶輸入界面,保存時,同樣可以發(fā)布為腳本工具。在重新創(chuàng)建模型時,可以直接在工具菜單欄里找到該腳本工具,點擊腳本按鈕,用戶輸入窗口就會自動彈出,然后根據(jù)圖片及文字提示,將具體的參數(shù)值輸入到對應的文本框里,待數(shù)值確認后,點擊“創(chuàng)建模型”,新的模型會在數(shù)秒內(nèi)生成,此時彈出“模型創(chuàng)建完成”的提示窗口,說明模型創(chuàng)建完成。用戶輸入界面能夠更加直接地創(chuàng)建模型,并且使用時操作簡單。
圖3 窗體代碼及界面
本文以在建的雁山大道東及連接線大橋為例,論述橋梁上部結(jié)構(gòu)參數(shù)化模型的創(chuàng)建方法。連續(xù)剛構(gòu)上部結(jié)構(gòu)節(jié)段主要分0 號塊、中間塊和現(xiàn)澆塊3種類型,需要依次創(chuàng)建3種類型的節(jié)段實體模型。0號塊模型的創(chuàng)建相對簡單,但是建立橋梁實體模型時,端部橫隔板必須設置。橋梁受力是通過橫隔板傳遞給支座的,它能夠承受一定的支反力和梁體的扭轉(zhuǎn)變形,所以在梁體的支座位置都需要合理設置橫隔板。根據(jù)連續(xù)橋梁的受力特點,連續(xù)橋梁的中間塊要設置為變截面,截面的變化規(guī)律最常采用折線或二次拋物線。除此之外,為滿足不同截面位置處的受力情況,箱型截面的頂板、底板和腹板厚度也是變化的,這無疑會增加建模的難度,一般會采用節(jié)段式的建模方法或者函數(shù)關系式的建模方法,本案例模型采用節(jié)段式的建模方法。節(jié)段式的建模方法需要將各節(jié)段的截面關鍵參數(shù)詳細地輸入到用戶界面中,函數(shù)關系式的建模方法只需將0號塊及中間現(xiàn)澆塊截面參數(shù)輸入到用戶界面,依次選擇梁體截面(頂板、底板、腹板厚度)的變化關系函數(shù)式,可以輕松建立梁體模型。函數(shù)關系式的建模方法模型的參數(shù)化程度更高,操作步驟更加簡單。現(xiàn)澆塊建立完成后,程序執(zhí)行截面融合命令,相鄰節(jié)段截面開始融合,就可以輕松地創(chuàng)建完整的實體模型。
圖 4為雁山大道東及連接線大橋模型。結(jié)果顯示,開發(fā)的程序能夠準確快速地創(chuàng)建橋梁實體模型。
圖4 雁山大道東及連接線大橋模型
首先,在SCDM的工具菜單欄里選擇腳本工具,點擊BridgeGen工具按鈕,就可以彈出用戶輸入對話框(如圖5所示)。
圖5 BridgeGen腳本工具
然后在用戶輸入對話框里按照參數(shù)名稱及其下方的提示幫助下,輸入橋梁路線數(shù)據(jù)和箱梁截面關鍵參數(shù)。參數(shù)輸入完成后,經(jīng)確認無誤,方可點擊輸入框下方的“創(chuàng)建模型”,等待程序運行生成橋梁實體模型。用戶輸入對話框界面如圖6所示。
圖6 用戶輸入對話框
模型創(chuàng)建完成后程序會自動彈出創(chuàng)建成功提示窗,提示模型創(chuàng)建完成。整個梁實體單元的創(chuàng)建過程會在幾秒內(nèi)完成。梁實體單元如圖7所示。結(jié)果顯示,本文開發(fā)的程序能夠準確快速地實現(xiàn)參數(shù)化實體模型的創(chuàng)建。
圖7 梁實體單元
至此,橋梁參數(shù)化的實體模型創(chuàng)建完成,后續(xù)我們可以繼續(xù)在前處理階段定義材料屬性(鋼筋混凝土結(jié)構(gòu)的彈性模量、密度和泊松比),添加支座約束、施加橋面荷載、網(wǎng)格劃分等步驟,然后對橋梁實體進行數(shù)值分析,驗證梁體的可靠性,根據(jù)分析結(jié)果反饋的問題,及時調(diào)整橋梁單元的幾何尺寸。在對模型的幾何或拓撲參數(shù)進行調(diào)整時,按照以上操作步驟,只需重新啟動腳本參數(shù)按鈕,在彈出的用戶輸入對話框里輸入調(diào)整后的橋梁實體模型參數(shù)值,再次創(chuàng)建模型即可。開發(fā)的該程序能夠簡便快捷地實現(xiàn)模型的調(diào)整更新。
本文使用IronPython腳本語言、SCDM API(直接建模工具SCDM的編程接口)和WinForms(客戶端軟件開發(fā)平臺)窗體開發(fā)技術,實現(xiàn)參數(shù)化建立多跨變截面箱梁模型,從而避免了模型從外部導入文件內(nèi)容丟失的風險,并且簡化了建模流程,整個過程無須人工干預,大大減少直接建?;ㄙM的時間,在建模及參數(shù)管理上有很大的優(yōu)勢。