林士凱 杜新喜 閆 琰 程曉燕 陳曉婉
(武漢大學土木建筑工程學院 武漢 430072)
近年來,隨著建筑師對結構空間藝術造型的設計更加自由、新穎和富有個性,空間網格結構的曲面不再局限于傳統的能用函數表達的解析曲面,不能用初等解析函數表示的曲面即自由曲面越來越多[1].國內已有學者對自由曲面網格結構進行了一些研究,提出自由曲面網格生成與優化的方法[2-3].2010年上海世博會世博軸陽光谷作為自由曲面網格結構的典型工程,就是由三角網格組成的單層空間曲面結構[4].對于自由曲面網格結構而言,風荷載是結構承受的主要荷載,一般通過風洞試驗測得模型不同測點處的風壓值來確定.當前結構設計軟件的風荷載一般是通過節點荷載來輸入,而風洞試驗測得的風壓值是面荷載,需要將面荷載轉換成結構設計軟件可以識別的等效節點荷載.張樂弓等[5]利用APDL語言實現空間網格結構在ANSYS中導算等效節點荷載功能;張慎等[6]則利用混合編程技術開發了大跨度屋蓋結構風洞試驗數據處理系統;但他們的方法并不適用于世博軸陽光谷這類自由曲面網格結構.同時,空間網格結構構件常常采用非圓截面桿件,如陽光谷結構的桿件大多采用矩形截面的空心焊接鋼管,這就要求結構設計軟件在建模時能方便地調整構件截面角度,目前的商業軟件3D3S雖然給出了調整構件截面角度的方法[7],但需要用戶手動指定構件截面強軸的指向,操作起來并不方便.
針對以上問題,本文基于自主研發的通用鋼結構設計軟件 USSCAD[8],利用C++語言與ObjectARX技術創建一種輔助面類,該類類似于3D3S中的封閉面類,但是功能更加強大.利用該輔助面類,可以方便地將風壓轉換成等效節點荷載,同時可以快速地調整構件截面角度,從而顯著地提高結構建模效率.
本文提出的輔助面類是從AcDbEntity類派生出來的,除了具有基類的屬性[9]外,還增加了一些輔助面類特有的屬性,主要屬性如圖1所示.
實際工程中,常常會出現一個面的桿件不在同一平面內,即構成了空間多邊形,對于這類面的面積和法向一般無法確定.文獻[5]給出的方法是利用最小二乘法原理擬合指定誤差的近似平面,以近似平面的面積作為原空間多邊形的面積.利用該方法得到的面積偏小,將導致計算得到的結構內力偏小,同時對于復雜的空間多邊形,擬合近似平面比較困難.本文采用的方法是,取輔助面所有角點坐標的平均值作為輔助面形心點的坐標,連接形心點與各個角點,從而將該輔助面劃分成多個三角形,分別求出各三角形面積,取面積之和作為輔助面的面積.以此方法求得的面積稍稍偏大,導致計算得到的結構內力亦稍稍偏大,這符合結構設計軟件計算結果一般偏于保險的原則.使用ObjectARX提供的crossPruduct()函數求出與輔助面相鄰兩邊均垂直的向量,該垂直向量存在正反兩種可能方向,故需在模型中確定一種參考向量,保證垂直向量與參考向量同向;循環輔助面所有的邊,將所有垂直向量的矢量和作為該輔助面的平均法向.
對于多層網格結構,一般只對弦桿生成輔助面,腹桿并不需要生成輔助面,故將模型中的桿件分成弦桿層桿件和腹桿層桿件,各個弦桿層分別生成輔助面,對應于各弦桿層,定義了輔助面的邏輯層屬性,輔助面的邏輯層號與其所屬的弦桿層號一致.

圖1 輔助面類主要屬性
本文的關鍵問題是,如何確保對于任意自由曲面網格結構模型均能準確地生成輔助面.一般生成輔助面的流程見圖2,通過循環結構中的所有弦桿層桿件,生成所有的輔助面.

圖2 生成輔助面流程圖
為了得到桿件之間的夾角,需要用到Object-ARX提供的angleTo()函數,該函數的原理是指定一個參考向量,根據右手定則求出兩個向量之間的夾角,其中參考向量并不需要與另外兩個向量嚴格垂直.一般的平面網架結構及網殼結構可取模型中的一個固定方向作為參考向量,如圖3a)、b)所示,以此生成的輔助面法向均與該參考向量同向.但對于圖3c)所示的球殼,需要確保生成的輔助面法向全部指向球外(或球內),若按上述方法生成輔助面,將有一半的輔助面法向指向球內,另一半則指向球外,而且赤道上的輔助面可能與參考向量平行,導致右手法則不再適用.對于該類情況,可在模型中定義一個基點,取所有節點的平均坐標作為基點的坐標,由thisPt節點坐標減去基點坐標得到參考向量.以此方法生成每個輔助面所用的參考向量均由基點指向該輔助面,保證了輔助面的法向均指向球外,且赤道上的輔助面亦可正常生成.計算桿件之間夾角的關鍵代碼如下.
//計算兩根桿件的向量
AcGeVector3dVector1(nextPt-thisPt);
AcGeVector3dVector2(basePt–thisPt);
//計算參考向量
AcGeVector3dVecRef(thisPt-centerP);
//確保輔助面法向與參考向量同向
AcGeVector3dnorm = Vector1.crossProduct(Vector2);
if(norm.dotProduct(VecRef)<0)norm = -norm;
//求得桿件之間夾角
double anger= Vector1.angleTo(Vector2,norm);

圖3 網架網殼結構立面圖
對于大多數自由曲面網格結構,取所有節點的平均坐標作為基點的坐標即可滿足準確生成所有輔助面的要求.但對于世博軸陽光谷這類曲面結構,此方法確定的基點可能無法輻射到整個結構的內側,即參考向量不能全部指向結構模型外側,導致模型中局部區域輔助面的法向方向錯誤.此時,只要將基點往上移動,即可輻射到整個結構模型內側,從而確保模型中的輔助面法向均正確無誤,如圖4所示.對于曲面更加復雜的結構,可能無法找到可以輻射到整個結構模型曲面內側的基點,此時可任取一個基點生成輔助面,利用程序提供的輔助面法向反向命令,自行修正輔助面法向.

圖4 陽光谷立面簡圖
一些情況下,模型中的部分輔助面可能不是用戶希望生成的,稱之為大面.如單層網殼結構最外圍桿件構成的大面,需要在生成輔助面時將其排除,否則將導致后續的面荷載導向節點與構件截面角度調整產生錯誤.對于一般的平面網架結構及球面網殼結構,大面周邊的所有桿件均在同一平面內,可以通過生成輔助面時存儲的桿件之間的夾角之和進行判斷.按上述計算桿件之間夾角的方法,大面的桿件夾角之和比正常輔助面的桿件夾角之和大4π,以此可將大面排除.但該方法不適用于柱面網殼的大面及其它桿件不在同一平面上的大面,對于該類大面,只能限定其邊數或面積.經過大量模型測試與驗證,程序默認判定大面為面積占所有輔助面面積之和30%以上的面,此判定適用于一般空間網格結構模型.當遇到該判定不適用的模型時,亦可自定最大輔助面的限制邊數,程序自動排除大于限制邊數的輔助面.另外,每一個輔助面的形心坐標是惟一的,以此可判斷輔助面是否已經存在,避免重復生成.
通過圖5所示的對話框,程序可以自動生成結構模型中所需的輔助面.其中基向量法即取結構模型中一固定方向作為參考向量的方法,而基點法即在模型中定義一基點的方法,當選擇基點法時可自定義基點坐標,點擊相應按鈕還可限制最大輔助面的邊數.為了方便輔助面的生成與編輯,除了該對話框外,提供了手動生成輔助面與輔助面法向反向兩個命令,供用戶手動生成無法自動生成的輔助面以及修正輔助面的法向.在模型中可以控制顯示輔助面,以校核是否正確生成輔助面.

圖5 生成輔助面對話框
為了將風荷載轉換成節點荷載,需要計算節點的承載面積與節點的法向.本文中,節點的承載面積是根據與節點相連的桿件長度及相鄰輔助面面積確定的,承載面積計算見式(1).式中各變量的含義見圖6.風荷載的方向一般垂直于結構表面,故取與節點相鄰的所有輔助面法向的矢量和作為節點法向.

結構模型曲面內部的桿件(如圖6中1號桿)在一個弦桿層上有2個相鄰輔助面,取兩個相鄰輔助面面的法向矢量和作為調整方向,即桿件截面調整后強軸(或弱軸)對應的方向,曲面邊緣的桿件(如圖6中2號桿)則只有一個相鄰輔助面,取該輔助面的法向作為調整方向.確定調整方向后,根據上述的angleTo()函數得到強軸(或弱軸)與調整方向的夾角,再利用rotateBy()函數調整截面角度.

圖6 節點承載面積示意圖
以某空間網格結構發電廠冷卻塔為例,應用輔助面快速調整構件截面角度及風荷載轉換成等效節點荷載.該冷卻塔高200m,底部直徑200m,是由工字鋼截面的桿件構成的空間曲面網格結構,結構承受的荷載主要為風荷載,結構模型如圖7所示.對于該結構模型,采用基點法,限制最大輔助面的邊數為4,取各節點坐標的平均坐標作為基點坐標.點擊生成按鈕,生成了2 791個輔助面.

圖7 某空間網格結構冷卻塔模型
檢查確認所需輔助面全部生成,法向亦全部正確,執行構件截面角度調整命令,調整了7 520根桿件的截面角度.取結構頂部一根豎向桿件顯示調整結果,見圖8,調整后的工字鋼強軸(或弱軸)與桿件兩側的輔助面垂直.
執行風荷載輸入命令,讀取風壓文件,給4 378個節點賦予了等效節點荷載.截取結構頂部的部分網格顯示賦值結果,如圖9所示,等效節點荷載合力方向均與結構表面垂直.

圖8 構件截面角度調整結果

圖9 等效節點荷載
本文針對自由曲面網格結構在通用鋼結構設計軟件USSCAD建模中的一些問題,提出了一種輔助面類.利用該類可解決自由曲面網格結構模型在軟件前處理中,風荷載轉換成等效節點荷載以及構件截面角度調整遇到的問題,極大地減小設計人員的工作量,提高了工作效率與質量.該輔助面類的生成技術與應用原理可供其它結構設計軟件參考,提高國內外結構設計軟件的設計效率.
[1]杜新喜.大跨空間結構設計與分析[M].北京:中國建筑工業出版社,2014.
[2]丁 慧.自由形態空間網格結構的網格設計方法研究與實現[D].杭州:浙江大學,2014.
[3]李承銘,盧 旦.自由曲面單層網格的智能布局設計研究[J].土木工程學報,2011,44(3):2-7.
[4]汪大綏,方 衛,張偉育,等.世博軸陽光谷鋼結構設計與研究[J].建筑結構學報,2010,31(5):20-26.
[5]張樂弓,樂風江,宋艷生.空間網格結構施加等效節點荷載的 ANSYS實現[J].鋼結構,2012,27(164):37-41.
[6]張 慎,陳 興,李 霆.計算機技術在大跨度屋蓋結構風洞試驗數據處理中的應用[J].建筑結構,2011,41(7):106-110.
[7]同濟大學3D3S研發組.3D3S基本操作手冊及原理[DB/OL].http://www.tj3d3s.com/docc/products4.asp.
[8]駱順心,杜新喜,常時峰.基于ObjectArx的空間鋼結構CAD 軟件[J].武漢大學學報:工學版,2007,40(1):101-104.
[9]張 慎,杜新喜,李強波.基于ObjectArx的多高層鋼框架CAD系統研究[J].武漢理工大學學報:交通科學與工程版,2008,32(1):107-110.