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