齊成龍,王永
(1.中國鐵路設計集團有限公司,天津 300308;2.北京交通大學經(jīng)濟管理學院,北京 100044)
Tekla 作為一款優(yōu)秀的平臺性BIM 設計軟件,具有強大的混凝土、鋼筋三維建模及二維出圖功能[1]。Tekla 傾向于提供鋼筋混凝土結構的底層建模工具,對于特定的結構類型,如果僅通過軟件提供的人機交互界面來實現(xiàn)三維建模及二維出圖目標,則需要用戶大量手動修改和重復性操作,不僅降低了效率,也不利于整個工程的質量控制[2]。因此,為了充分利用Tekla軟件的鋼筋設計功能,針對具體工程結構類型開發(fā)相應設計工具就顯得很有必要。目前已有的框構橋配筋設計系統(tǒng)(FUBS)是在Midas 計算出的框構橋內(nèi)力結果基礎上,開發(fā)出的框構橋設計后處理程序。FUBS 可以計算出滿足框構橋受力和構造要求的最低鋼筋配置,其設計結果以文本文件的形式存在。通過C#語言調用Tekla 接口開發(fā)設計工具,能夠讀入FUBS 的計算結果,并開放交互界面,用戶根據(jù)個性化需求修改FUBS 計算結果,最終自動生成框構橋三維鋼筋模型、二維工程圖并統(tǒng)計數(shù)量。
在Tekla-API 中,有2個用于生成鋼筋的類:RebarGroup 類代表鋼筋組,SingleRebar 類代表單根鋼筋,二者的使用方法類似。在此以矩形截面梁側表面鋼筋為例介紹RebarGroup類的關鍵屬性。
Tekla 建立的帶有側面鋼筋的矩形截面梁見圖1,PT1-PT2 和PT1'-PT2'為確定鋼筋形狀的構造點,這些點也是位于梁側表面處的混凝土角點,代表了鋼筋組的掃略端點及形狀轉折點。
圖1 Tekla建立的帶有側面鋼筋的矩形截面梁
本例在梁的起止斷面分別使用2個點描述鋼筋幾何形狀,由于鋼筋位于混凝土結構內(nèi)部,還需要確定保護層厚度c,以得到鋼筋的精確幾何形狀。鋼筋縱向排列方式見圖2,為了得到鋼筋組沿梁縱向的排列方式,需要先確定首根鋼筋偏離起點的距離s1,然后再確定組內(nèi)各鋼筋的間距排列規(guī)則n×s2。
圖2 鋼筋縱向排列方式
與前述梁內(nèi)鋼筋組布置規(guī)則的確定過程相對應,Tekla-API中RebarGroup類有如下關鍵屬性[3]:
(1)Polygons:用于描述鋼筋形狀的多邊形,本屬性以泛型的方式存在,每個泛型元素是1個Polygon 類型的對象,而每個Polygon 是由若干個點組成的折線。以前述梁側鋼筋組為例,其Polygons 屬性值為2個Polygon,組成第 1個 Polygon 的點是 PT1,PT2,組成第 2個Polygon 的點是PT1',PT2'。在實際應用過程中,組成Polygon 的點可以不是混凝土結構的構造點,可以由用戶根據(jù)需要自行生成。
(2)Spacings:鋼筋組中各鋼筋的間距布置規(guī)則。以前述梁側鋼筋組為例,該屬性值可用n×s2 表示,如果鋼筋并非均勻布置,可用n1×s1+n2×s2表示。
(3)OnPlaneOffsets:平面內(nèi)偏移值,代表鋼筋各肢的保護層厚度。以前述梁側鋼筋組為例,該屬性值可用c表示。
(4)FromPlaneOffset:為了表達鋼筋組沿梁縱向的分布規(guī)律,除了使用Spacings屬性值描述鋼筋之間的間距情況以外,還需要描述第1根鋼筋與起點之間的相對位置關系,本例中即為s1。
建立CreateRebars_Base.cs 作為鋼筋建?;A類,其包含2個方法,這2個方法分別通過輸入鋼筋組和單根鋼筋所需各關鍵屬性值來生成RebarGroup 和SingleRebar類的實例。
每種鋼筋(骨架鋼筋、橫橋向鋼筋、拉筋、頂板鈍角加強鋼筋)的幾何形狀和空間布置范圍都必須通過與混凝土主體結構的相對位置關系來表達。因此,首先提取主體結構的關鍵點,在鋼筋建模過程中調用。
采用Tekla-API 當中的RebarGroup 類,以鋼筋組的方式創(chuàng)建拉筋,每根拉筋的輪廓是1條直線,因此每個拉筋鋼筋組的Polygons 屬性值由圖3 所示的4個控制點組成,這4個控制點分別位于框構橫橋向兩側面。
由于框構頂?shù)装搴蛪w的拉筋布置規(guī)律不同,并且采用梅花形布置,在此分別對頂?shù)装搴蛪w建模過程中組成Polygons 屬性值的控制點生成方法進行研究[4]。
圖3 拉筋鋼筋組Polygons屬性值
該函數(shù)的聲明部分如下:
public void Transverse_Rebar_GeParam (TSG.Point Point_1,TSG.Point Point_2,bool Bool_Mid,bool Bool_Top,boolBool_Stagger,outTSG.Point[,]list_array_result)
該函數(shù)可以對各頂?shù)装宀冀顓^(qū)域進行處理,生成相應區(qū)域所有鋼筋組的Polygons屬性值控制點。
本函數(shù)各輸入輸出參數(shù)的含義是:
(1)Point_1:當前布筋區(qū)域位于頂板下緣或底板上緣的第1個邊界點。
(2)Point_2:當前布筋區(qū)域位于頂板下緣或底板上緣的第2個邊界點。
頂板跨中拉筋區(qū)域見圖4,圖中表示了頂板跨中拉筋區(qū)域的邊界點含義,其他區(qū)域邊界點的含義與此類似。
(3)Bool_Mid:布爾值,對于近端在中心的情況,確定是否在最后加1根。在此,近端點指的是與縱橋向中心距離更小的點。
出于程序內(nèi)部算法的需求,Point_1 和Point_2 這2個區(qū)域邊界點必須在順橋向中心的同一側。對于3 孔框構的中跨頂?shù)装鍏^(qū)域,會存在拉筋重復建模的情況。該參數(shù)的作用是,對于某個區(qū)域的Polygons控制點,用戶可以選擇是否創(chuàng)建中心位置拉筋,在調用該函數(shù)時,對于圖4 所示區(qū)域1 的情況,Bool_Mid=true;對于區(qū)域2 的情況,Bool_Mid=false。采用這種方法,可以避免重復建模。
(4)Bool_Top:布爾值,確定是否位于頂板。
對于頂、底板,其拉筋的Polygons 控制點計算方法不同,用戶調用此函數(shù)時,程序內(nèi)部通過該參數(shù)進行區(qū)分計算。當程序通過該參數(shù)獲取頂、底板位置信息以后,調用框構主體關鍵點,選擇性地獲取頂板或底板控制點數(shù)據(jù),繼而通過數(shù)學運算生成所需控制點坐標。
圖4 頂板跨中拉筋區(qū)域
(5)Bool_Stagger:布爾值,是否相錯1個橫向鋼筋間距。
頂?shù)装謇畹拿坊ㄐ尾贾貌捎妹? 組鋼筋作為1個循環(huán)周期的方式(見圖5),第2組鋼筋與第1組鋼筋相錯1個鋼筋間距,2 組鋼筋布置結束以后開始下一次循環(huán)。因此,Bool_Stagger 輸入?yún)?shù)的這2 種可選情況為頂?shù)装謇畹拿坊ㄐ尾贾脛?chuàng)造了條件。
圖5 頂?shù)装謇蠲坊ㄐ尾贾檬疽鈭D
(6)list_array_result:輸出參數(shù)。該參數(shù)是1個大小為n×4 的不定長數(shù)組,數(shù)據(jù)類型是Tekla.Structures.Geometry3d.Point。
n表示當前拉筋布置區(qū)域的鋼筋組數(shù)目,每個鋼筋組的4個Polygons控制點由list_array_result數(shù)組的第2維4個元素組成。
該函數(shù)的聲明部分如下:
public void Vertical_Rebar_GeParam(double Coord_y_1,double Coord_y_2,int Stagger_Num,out TSG.Point[,]Array_result_up,out TSG.Point[,]Array_result_down)
該函數(shù)可以對墻體布筋區(qū)域進行處理,生成拉筋鋼筋組的Polygons控制點。
本函數(shù)各輸入輸出參數(shù)的含義是:
(1)Coord_y_1:墻體一側邊界的y坐標值。
(2)Coord_y_2:墻體另一側邊界的y坐標值。
其中,y指向框構順橋向,原點位于頂板頂中心位置。
(3)Stagger_Num:此參數(shù)的3個可選數(shù)據(jù)是0、1、2,這3個可選數(shù)據(jù)的具體含義分別為:不相錯、相錯1個間距、相錯2個間距。
墻體拉筋的梅花形布置采用每3 組鋼筋作為1個循環(huán)周期的方式(見圖6),第2組鋼筋與第1組鋼筋相錯1個鋼筋間距,第3 組鋼筋與第1 組鋼筋相錯2個鋼筋間距,3 組鋼筋布置結束以后開始下一次循環(huán)。因此,Stagger_Num 輸入?yún)?shù)的這3個可選數(shù)據(jù)為墻體拉筋的梅花形布置創(chuàng)造了條件。
圖6 墻體拉筋布置示意圖
對于每個墻體,其拉筋模型區(qū)域以豎直方向中心線為界,分為上下2個部分。Vertical_Rebar_GeParam()函數(shù)需要輸出與這2個部分相對應的Polygons 控制點數(shù)組[5]。
(4)Array_result_up:輸出參數(shù)。表示豎直方向中心線以上拉筋組的Polygons 控制點。該參數(shù)是1個大小為n×4 的數(shù)組,數(shù)據(jù)類型是Tekla.Structures.Geometry3d.Point。
n表示豎直方向中心線以上部分的拉筋鋼筋組數(shù)目,每個鋼筋組的4個Polygons 控制點由Array_result_up數(shù)組的第2維4個元素組成。
(5)Array_result_down:輸出參數(shù)。表示豎直方向中心線以下拉筋組的Polygons 控制點。該參數(shù)是1個大小為n×4 的數(shù)組,數(shù)據(jù)類型是Tekla.Structures.Geometry3d.Point。
n表示豎直方向中心線以上部分的拉筋鋼筋組數(shù)目,每個鋼筋組的4個Polygons 控制點,由Array_result_down數(shù)組的第2維4個元素組成。
與頂?shù)装謇铑愃?,Array_result_up,Array_result_down 兩個區(qū)域也存在重復建模的情況,函數(shù)內(nèi)部已經(jīng)對這種情況進行了處理[6],一側區(qū)域的重疊拉筋被刪除,從而避免了拉筋重疊。
拉筋建模過程需要根據(jù)其在框構中的具體位置區(qū)別對待。對于頂?shù)装搴蛪w拉筋,分別調用Transverse_Rebar_GeParam()和Vertical_Rebar_GeParam()函數(shù),獲取所有拉筋鋼筋組的Polygons 控制點[7]。將這2個函數(shù)生成的控制點賦予鋼筋建?;A類CreateRebars_Base.cs的相應方法,從而創(chuàng)建所有拉筋模型[8]。
三維建模程序讀入FUBS 輸出的文本文件,并個性化確定結構尺寸后,打開用戶交互界面。該交互窗口允許用戶手動修改經(jīng)過FUBS 初次計算出的鋼筋配置結果,其中包含對鋼筋型號、直徑、間距等拉筋參數(shù)的設置(見圖7)。由該程序生成的框構頂板與邊墻相交位置處的橫橋向鋼筋及拉筋模型見圖8。
圖7 配筋信息修改界面
圖8 框構頂板與邊墻相交位置處的橫橋向鋼筋及拉筋模型
作為信息化的重要手段,BIM是實現(xiàn)建設工程項目全生命周期管理的核心技術[9-10],同時正引發(fā)建筑行業(yè)一次史無前例的徹底變革。BIM技術通過利用數(shù)字模型將貫穿于建筑全生命周期的各種建筑信息組織成一個整體,能顯著提高工程質量和作業(yè)效率,為建筑業(yè)帶來巨大效益。在建筑業(yè)中,橋梁工程的信息化落后于傳統(tǒng)房屋建筑工程,因此更加需要大力發(fā)展橋梁信息模型,提高橋梁設計水平,開發(fā)針對各種類型橋梁工程結構的BIM 設計工具[11]。上述基于Tekla 二次開發(fā)的框構橋設計工具,可實現(xiàn)與框構橋分析計算程序的無縫銜接,以及BIM 快速建模和出圖,闡述該程序在拉筋建模過程的總體研發(fā)思路,對逐步完善橋梁信息模型的發(fā)展具有指導性價值。