国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

Staad.Pro支座反力讀取程序開發(fā)及應用

2022-04-16 06:23:34胡合江
科技創(chuàng)新與應用 2022年9期
關鍵詞:命令支座程序

程 浩,胡合江,余 巍

(中國電力工程顧問集團中南電力設計院有限公司,湖北 武漢 430071)

目前,隨著BIM技術的迅速普及,廣大設計企業(yè)對正向設計方法的探索不斷深入,各軟件之間設計信息和數(shù)據(jù)傳輸?shù)男枨笠搽S之不斷增加。結(jié)合前述原因,在Staad.Pro軟件完成上部結(jié)構(gòu)的內(nèi)力分析之后接續(xù)基礎設計的需求顯得日益迫切,而其中的關鍵在于支座反力的讀取。由于Staad.Pro軟件的模型文件和內(nèi)力結(jié)果文件都是公開的,其輸入命令流和輸出結(jié)果的格式也有相關的說明,因此可以考慮編寫程序完成這一過程,國內(nèi)已有不少相關的研究:胡小龍等[6]基于Staad.Pro軟件的計算結(jié)果編寫相關的計算程序,以完成鍋爐爐架及變電構(gòu)架的設計;喬愛科等[7]利用VC++和AutoCAD二次開發(fā)工具ARX編制了自動化的可視化后處理應用軟件,可提取Staad.Pro軟件計算模型的數(shù)據(jù),擴展了其后處理功能;魏亮等[8]介紹了一些Staad.Pro軟件二次開發(fā)的經(jīng)驗,并對開發(fā)過程中存儲、查詢數(shù)據(jù)的2種方案的效率進行比較;李金光等[9]介紹了基于Staad.Pro軟件開發(fā)的3個輔助程序,提高了工作效率;葉蔥蔥[10]使用VB對Staad.Pro軟件進行二次開發(fā),完成了輸煤棧橋混凝土構(gòu)件和基礎設計的程序。從以上研究中可知,對Staad.Pro軟件進行二次開發(fā)以讀取支座反力是一種簡便可行的方法,本文將對一些相關問題進行討論。

1 Staad.Pro輸入和輸出文件的解析

Staad.Pro的輸入文件為*.std格式,輸出結(jié)果文件為*.anl格式,都可直接采用記事本打開查看,可以比較方便地分析其內(nèi)容的組織和格式,編寫相應的代碼以獲取需要的內(nèi)容,文獻[8]介紹了一些讀取這兩個文件的基本要點。對于支座反力而言,需要從*.std文件中讀取支座坐標以及荷載工況等,從*.anl文件中讀取各支座在各工況下的反力值,為保證程序能夠正確穩(wěn)定的讀取,還有以下需要注意的問題:

(1)Staad.Pro默認在輸出文件中打印輸入文件中的所有內(nèi)容,因此在一般情況下,僅需從*.anl文件中就可讀取到所有的信息。當在輸入命令流中使用SET ECHO OFF命令時,自該命令之后的內(nèi)容將不再輸出文件中打印,對于此種情況,需考慮同時從*.std文件中讀取部分信息。

(2)Staad.Pro默認采用Y軸作為豎向軸,但也提供了SET Z UP命令將Z軸作為豎向軸,因此在讀取過程中必須檢測輸入文件中是否存在此命令,以正確判斷支座反力的方向。

(3)需要在命令流中添加PRINT SUPPORT REACTIONS命令才能將支座反力輸出到*.anl文件中,當輸入命令流中不存在此命令時,需要提示用戶進行操作。此外,PRINT ANALYSIS RESULTS也能達到同樣的目的,但它是PRINT SUPPORT REAC TIONS、PRINT MEMBER FORCES以及PRINT JOINT DISPLACEMENTS三個命令之和,當只需要輸出支座反力而不需要其他結(jié)果時,此命令將導致*.anl文件較大,對文件讀取速度有較大的影響,應盡量避免。

(4)Staad.Pro可通過命令流控制所需要輸出的荷載工況和支座。對于荷載工況,可以采用LOAD LIST即“有效荷載”命令控制輸出的荷載工況,Staad.Pro將僅輸出在LOAD LIST之后所列出的荷載工況。對于支座反力同理,在PRINT SUPPORT REACTIONS命令之后添加LIST,可以僅輸出其后所列出的支座的反力。因此,從輸出文件中并不一定能獲取所有的支座反力,在出現(xiàn)此情況時對用戶發(fā)出提示是比較有必要的。在輸出文件的PROBLEM STATISTICS項中列出了項目的總體信息,如圖1所示,可以獲取到當前項目中的支座及荷載工況的數(shù)量,便于與實際讀取到的數(shù)量進行比較。

圖1 輸出文件中的PROBLEM STATISTICS項

(5)部分命令流有簡寫的方式,如PRINT SUPPORT REACTIONS簡寫為PRI SUP REA,PRINT ANALYSIS RESULTS簡寫為PRI ANA RES,更多簡寫的命令可查詢Staad.Pro的相關技術說明,讀取過程中需要對完整和簡寫的情況均進行識別。

(6)支座反力輸出的單位和格式。支座反力輸出內(nèi)容的示例,如圖2所示。首行的“-UNIT KN METE”列出了支座反力的單位。Staad.Pro中長度和力的單位見表1和表2,在讀取或后續(xù)的輸出過程中需注意進行轉(zhuǎn)換。從圖2中可見,支座反力在輸出文件中是依次按節(jié)點和工況順序輸出的,不同的支座之間沒有其他標記,只在每個支座首行的開頭列出了支座編號。此外,當支座反力的輸出結(jié)果跨越多頁時,在每頁的開頭都將重新列出表頭,即圖2中方框內(nèi)的部分,在讀取的過程中應予以忽略。

表2 Staad.Pro命令流中的力單位

圖2 輸出文件中的支座反力

表1 Staad.Pro命令流中的長度單位

2 開發(fā)實現(xiàn)

如前所述,*.std和*.anl的文件格式都是公開的,因此一般的開發(fā)語言都能夠直接讀取其中的信息,本文以C#為例介紹支座反力的讀取方式。

其中金錢是一塊塊脊柱骨,外圓內(nèi)空,如同一枚枚金錢。所謂釣蟾就是將丹田之氣,過海底上脊椎,撐命門,入玄關。因為入海底之下有尾閭下關,這關口是真氣極不容易過的,所以叫釣蟾!”

(1)文件內(nèi)容的讀取。C#提供了StreamReader類用于讀取文本文件,為方便后續(xù)的查找操作,可采用逐行讀取的方式,對于讀取到的每一行內(nèi)容,調(diào)用string類的ToUpper方法將其統(tǒng)一轉(zhuǎn)換成大寫,再將其存儲到List集合當中。通過StreamReader對象的EndOfStream屬性判斷是否讀取到文件末尾,在到達末尾位置后,使用Close方法關閉文件。

(2)關鍵信息的提取。提取關鍵信息的主要過程就是對文件的查找和搜索過程,一般這些關鍵內(nèi)容都是隨著某些關鍵字一起出現(xiàn),如“NUMBER OF SUPPORTS”等,因此首先需要找到關鍵字所在的位置,再獲取相關的內(nèi)容。還有部分關鍵信息具有特定的格式,如支座反力的首行數(shù)據(jù)以支座編號開始,后續(xù)為工況編號以及6個內(nèi)力數(shù)據(jù),中間由一個或多個空格分隔,而其它行只有工況編號以及6個內(nèi)力。C#提供了正則表達式Regex類,可以用于查找和匹配具有特定字符或格式的字符串,對于需要的信息,在了解其關鍵字和格式之后即可編寫出用于匹配的模式,如對于支座數(shù)量的獲取可以采用匹配模式:NUMBERs+OFs+SUPPORTSs+[1-9]d*,對于支座反力的首行采用匹配模式:^s+[1-9]d*s+[1-9]d*(s+(-?d+)(.d+)?){6}$等,在獲取匹配的內(nèi)容之后,再進行字符串的分割和提取操作即可得到所需要的內(nèi)容。

(3)數(shù)據(jù)的存儲。文獻[8]通過將數(shù)組和散列表對比,發(fā)現(xiàn)使用散列表來存儲數(shù)據(jù)的效率遠高于數(shù)組。C#中的Dictionary容器即是一種散列表,因此適合用來存儲支座反力。首先構(gòu)建由節(jié)點號、荷載工況號和支座反力組成的JointLoad類來存儲一個支座在一個工況下的支座反力;然后建立以荷載工況號為key,JointLoad為value的Dictionary,用于存儲一個支座在多個工況下的反力;再建立以支座節(jié)點號為key,Dictionary為value的Dictionary>,用于存儲所有的支座反力。這樣即可實現(xiàn)對任意支座在任意工況下反力的快速查找。

對于支座反力的讀取和輸出往往有獲取其極值或排序等其它操作,一種比較方便的方式是利用C#面向?qū)ο蟮奶匦?,?chuàng)建繼承于Dictionary>的SupportReaction類,將排序、獲取極值等方法或?qū)傩苑旁诖祟愔?,這樣既可以簡化代碼,程序結(jié)構(gòu)也更加清晰,便于擴展功能。

3 應用案例

圖3為某工程500 kV變電構(gòu)架,其上部結(jié)構(gòu)采用Staad.Pro進行內(nèi)力分析,在桿件截面設計完成之后,基礎采用基于Revit開發(fā)的變電構(gòu)支架基礎設計程序進行三維正向設計,基礎采用天然基礎。

圖3 某500 kV變電構(gòu)架

在基礎設計過程中需要輸入柱腳的設計荷載,程序雖然提供了荷載輸入的功能,但是因柱腳和荷載工況較多,需要設計人員在Staad.Pro軟件中篩選部分荷載工況之后再輸入到軟件當中,這往往會耗費較多的時間,且存在遺漏最不利工況的可能。程序在后續(xù)開發(fā)過程中引入了本文上述介紹的方法,提供了從Staad.Pro讀取上部結(jié)構(gòu)荷載的功能,在上部結(jié)構(gòu)設計完成之后,直接從輸出文件中讀取支座反力,再經(jīng)必要的設置和調(diào)整,即可獲取基礎的設計荷載。

如圖4所示,對于荷載工況,Staad.Pro本身只進行單工況和組合工況的區(qū)分,對于組合工況則并不區(qū)分具體的類型,也不區(qū)分是否為地震工況,在設置導入的荷載工況時,程序可對荷載工況的類型進行初步判斷,并可由用戶進行調(diào)整。

圖4 Staad.Pro荷載工況導入設置界面

導入之后的基礎設計荷載如圖5所示,其中荷載作用點標高可從支座的坐標中讀取以作為默認值,也可由用戶進行修改。此后,基礎設計程序即可使用導入的荷載完成基礎計算及后續(xù)設計過程。

圖5 導入后的基礎設計荷載

本工程通過在基礎設計程序中引入支座反力讀取的模塊,實現(xiàn)了從Staad.Pro上部結(jié)構(gòu)計算到基礎設計荷載輸入的接口,簡化了人工篩選及輸入荷載工況的過程,提高了基礎設計程序的便利性和設計工作效率。

4 結(jié)論

本文介紹了通過讀取Staad.Pro輸入和輸出文件以獲取支座反力的一些要點,指出了在解析文件格式過程中的一些關鍵問題;并以C#語言為例,介紹了讀取支座反力的具體方法;最后通過在程序開發(fā)以及實際工程中的應用,驗證了其在基礎設計過程中的可行性及便利性。

猜你喜歡
命令支座程序
只聽主人的命令
改性橡膠隔震支座抗拉性能試驗研究*
基于ANSYS-UM聯(lián)合仿真的減振支座減隔振性能研究
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
移防命令下達后
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
這是人民的命令
創(chuàng)衛(wèi)暗訪程序有待改進
基于減隔震設計連續(xù)梁橋支座的選擇
郑州市| 大田县| 阳江市| 宁明县| 平和县| 台东市| 会宁县| 灵川县| 祁连县| 伊川县| 万州区| 松桃| 襄樊市| 苏尼特左旗| 湘阴县| 清丰县| 岳阳市| 宁远县| 淅川县| 荆州市| 五台县| 台中市| 呼图壁县| 宁都县| 平乐县| 龙岩市| 台中县| 内黄县| 皮山县| 巧家县| 罗源县| 丘北县| 陈巴尔虎旗| 伽师县| 绍兴县| 神农架林区| 监利县| 伊吾县| 东光县| 若羌县| 治县。|