胡彥卿 楊揚
摘 要:文章介紹了基于AutoCAD2015軟件平臺,在.NET開發環境下,采用可視化表格、正則表達式、ActiveX、模擬動態拖拽等多種編程技術,開發橋梁輔助繪圖設計軟件,有效提高橋梁設計的工作效率,為橋梁結構的建筑信息模型設計提供軟件開發思路及探討方向。
關鍵詞:程序開發;.NET技術;橋梁參數化設計
橋梁結構設計專業性要求較高,在實際的設計工作中,橋梁結構設計師的大量精力往往耗費在紛繁復雜的重復繪圖以及計算工作上。而隨著計算機性能的提升及有限元技術等軟件技術的發展,設計人員在橋梁結構分析上難度的大大降低,但簡單重復的繪圖工作卻成為了橋梁設計工作的巨大障礙,針對以上問題,國內外的專業軟件公司近年來也推出了一些較大型的軟件解決方案,但是由于積累不夠及技術所限,這類大型程序也存在一定的局限性,比如輸入參數過多,成圖效果達不到預期等等。需要后期大量的改動,甚至會出現因圖紙改動量過大,不如自行從頭繪制的情況。因而一些基于AutoCAD二次開發的,使用便捷,針對性強的“輕程序”,對于解放設計人員的重復勞動,提高計算繪圖效率,有著非常重要的意義。
1 開發環境
ObjectARX.net開發包,是基于微軟.NET框架的二次開發平臺,作為Autodesk二次開發工具中最新且最具潛力的產品,其發展經歷了從AutoCAD2005版本開始,經歷了多個版本的升級完善,已經相當成熟可靠。.NET語言開發同時具有很多優點,如語言選擇的多樣性,易用性,開發的成果具有良好的獨立性和繼承性,強大的可視化功能等等。
2 開發內容
基于輔助設計的工具應用的定位,本程序主要實現了以下功能:
(1)鋼筋混凝土結構的鋼筋自動統計及繪圖。(2)鋼結構程序的參數表繪圖。(3)基于AutoCAD文字圖形的數學工具,文本操作工具。(4)基于規范公式的結構構件的計算工具。(5)可視窗體的類Excel表格的實現,結合與Excel表格的通訊功能,及生成AutoCAD圖紙的表格功能。(6)常用AutoCAD操作的擴展功能,繪圖的參數化,標準化設計功能。
基于.NET語言的面向對象及模塊化的特性,以上功能可以相互進行配合,如程序Excel通訊的功能就集成在鋼筋混凝土結構鋼筋參數表程序及鋼結構設計程序內,提供更加強大的綜合能力。
3 開發技術
(1)通過對表格控件“DataGridView”的再開發,進行Excel功能的模擬及功能強化。(2)后綁定技術調用Excel及與Excel的通訊功能。(3)通過.NET開發中的jig(動態輸入)方式實現動態繪圖功能。(4)所有功能可視化,配合AutoCAD命令,實現直觀快速的輸入及輔助設計功能。(5)基于ObjectARX.net,實現AutoCAD中的繪圖操作。(6)運用正則表達式實現公式的計算,參數分解等功能。(7)方便設計的“庫”功能,實現常用和固定數據的直接調用。(8)基于.NET的程序架構及功能實現。
4 程序功能的實現
本程序采用最新的AutoCAD2015作為運行的基礎平臺,在.NET Framworks 4.5框架下進行開發。
(1)基于可視化技術的鋼筋混凝土結構、鋼結構的自動繪制及統計功能。鋼筋數量表的統計是橋梁結構設計中一個重復輸入的典型環節,設計人員不但需要計算鋼筋數量及長度,還需要在數量表中反復進行四則運算計算總量,費時費力,橋梁鋼結構因較少使用型材而大量運用鋼板,統計工作也非常繁復,容易出錯。
本程序運用BlockReference圖元的Tag功能,提供了快速生成鋼筋標注的功能。程序界面如圖1所示。
圖1 鋼筋標注工具界面
通過對“DataGridView”表格控件的再開發,程序插入的標注自動計入表格,并根據標注自動計算共長、單位重、共重等信息(如圖2),并可以通過增加判斷子程序,實現括號內外數量分別統計等更多擴展功能。表格窗體的DataGridView1_CellEndEdit事件,可獲取表格的編輯操作,可以實現表格參數變化后的實時刷新,實現像Excel表格一樣的實時計算功能。另外可以在表格的DataGridView1_Keydown事件,捕捉并實現“Ctrl+C”(復制),“Ctrl+V”(粘貼)等快捷鍵操作,實現功能擴展。
圖2 鋼筋明細表工具界面
通過ObjectARX.net在AutoCAD的繪圖功能,即可在AutoCAD模型(或圖紙)空間中繪制參數表。
鋼結構的參數表原理與鋼筋參數表類似,但傳統鋼結構圖紙繪制一般并不包含標注,且常見鋼結構包含鋼板,鋼管,型鋼三種類型,因而需要基于“DataGridView”表格控件中開發更多的判斷功能,結合正則表達式或直接對圖元面積的測量,對輸入的鋼板、鋼管等鋼構件進行直接統計并輸出鋼結構數量表。對于型鋼,程序提供型鋼輸入器,具有近500種型材的“庫”功能,供直接調用選取并輸出統計結果。
(2)后綁定調用Excel功能,及Excel參數表繪制功能。Excel是目前最為流行的表格工具,在設計中經常會與Excel進行數據相互調用的問題。常用的調用方法均不夠理想,無法做到完美的兼容。
采用通過.NET調用ActiveX方式對Excel實現后綁定,我們可以實現表格實時導入、導出Excel功能,調用Excel方法為:Dim objExcel As New Object objExcel=GetObject(,“Excel.Application”)。在此基礎上,針對原Excel表格中的合并單元格,上、下標等的判斷,可以完美實現AutoCAD中插入Excel表格功能,生成對象為文本、線對象或AutoCAD表格對象。
(3)jig(動態輸入)方式的實現及應用。ObjectARX.net提供了動態拖拽功能,可以生動形象的在圖上拉拽出橡皮線一樣的動態效果,可以方便設計人員方便直觀的輸入特定的構件[1]。從Editor命名空間的Drawjig類派生一個新類,并用來表達所要創建的對象,自動重載Sample函數及WorldDraw函數,實現動態效果,最后將派生類加入到圖形數據庫中,完成圖形創建。
(4)公式計算正則表達式的運用。正則表達式是指在計算機科學中,一個用來描述或者匹配一系列符合某個句法規則的字符串的單個字符串。在很多文本編輯器或其他工具里,正則表達式通常被用來檢索和替換符合某個模式的文本內容。通過對正則表達式運用,程序可以實現自動判別公式并計算的功能。如判斷公式中的加、減法的正則表達式為“\s*([-+])s*”,而常用的函數正則表達式為“(exp|log|log10|abs|sqr|sqrt|sin|cos|tan|asin|acos|atan)”。這樣通過建立一個Function過程匹配正則表達式,可以在程序中實現常用的公式自動計算功能,為程序使用者提供更大的便利。
(5)基于規范公式的快速計算工具。設計人員經常需要面對一些基于規范公式的構件計算,如結構承載能力驗算,裂縫驗算等等,若采用手算方式,每次計算時均要根據規范公式的規定逐條擬定相關參數,并代入相對固定的公式進行計算,造成重復勞動,因而在AutoCAD中通過二次開發編制基于規范公式的快速計算工具,就成為一個較為合理的選擇。
如沿周邊均勻配筋的圓截面鋼筋混凝土偏心受壓承載能力計算,程序采用牛頓迭代法,以0.0001為步長試算確定合理的ζ數值,并計算A、B、C、D參數,驗算結構抗力值[2]。程序界面如圖3所示。
圖3 承載能力驗算工具界面
(6)ObjectARX.net實現AutoCAD的繪圖、編輯等功能。運用ObjectARX.net在AutoCAD中繪圖過程如下:創建對象的圖形數據庫;在內存中創建實體類的一個對象;打開圖形數據庫的塊表;打開存儲實體的塊表記錄;將對象添加到塊表記錄中。
5 結束語
通過基于.NET的開發技術,結合可視化表格窗體,Excel的后綁定調用、動態圖元拖拽功能、正則表達式等多種程序開發,我們可以實現對橋梁結構的動態繪圖、參數化及自動化設計、輔助計算等功能,本系列程序在橋梁設計工作中可以大幅度提高設計人員的工作效率,減少設計中的重復工作。鑒于.NET程序的優秀性能,我們可以通過更深入的開發,在AutoCAD環境下,編制功能更為強大的設計程序,為橋梁的參數化、標準化設計甚至BIM設計提供更為廣泛的應用前景。
參考文獻
[1]曾紅飛,張帆,盧擇臨.AutoCAD VBA&VB.net開發基礎與實例教程[M].中國電力出版社,2008.
[2]JTG D62-2004.公路鋼筋混凝土及預應力混凝土橋涵設計規范[S].
[3]JTJ 025-86.公路橋涵鋼結構及木結構設計規范[S].