唐諍皓 劉鋒 楊繼飛
摘要:本文以AutoCAD為依托平臺,使用Visual Studio .NET平臺的C#語言編寫程序,利用ObjectARX提供的托管封裝類進(jìn)行二次開發(fā),開發(fā)出一套可以應(yīng)用于實際的設(shè)計、計算和繪圖一體的構(gòu)筑物水池結(jié)構(gòu)設(shè)計參數(shù)化平臺系統(tǒng)(TSCAD)。
關(guān)鍵詞:CAD二次開發(fā)構(gòu)筑物水池結(jié)構(gòu)設(shè)計.NETAPI
中圖分類號:TP391.72 文獻(xiàn)標(biāo)識碼:A 文章編號:1672-3791(2012)04(c)-0037-02
污水處理廠中大部分是鋼筋混凝土水池,此類構(gòu)筑物由于其功能的特殊性,主要組成單位是各種類型的板(池壁板、底板、頂板等)、圓殼等,目前并沒有構(gòu)筑物水池結(jié)構(gòu)的計算及繪圖相結(jié)合的專業(yè)軟件,多數(shù)工程設(shè)計者采用手工計算并繪圖,增加了出錯幾率也增加了設(shè)計時長。編者開發(fā)的水池結(jié)構(gòu)CAD輔助設(shè)計系統(tǒng)(TSCADV1.0,軟件著作權(quán)登記號:2012SR015042)對于構(gòu)筑物水池的設(shè)計者而言,可以方便快捷的更改各項參數(shù),經(jīng)過數(shù)據(jù)前處理可以對結(jié)構(gòu)是否滿足強(qiáng)度要求或正常使用功能有預(yù)提示,方便設(shè)計者修改參數(shù)。
1工程類軟件的現(xiàn)狀及平臺選擇
1.1 國內(nèi)外的結(jié)構(gòu)計算兼繪圖類軟件包括
(1)PKPM、GSCAD等。此類軟件主要注重于分析計算,出圖功能比較弱,需要重新整理出圖。
(2)探索者、天正結(jié)構(gòu)、理正結(jié)構(gòu)等等。此類軟件側(cè)重于繪圖,并兼顧結(jié)構(gòu)計算子程序(例如板、梁、樓梯、獨(dú)立基礎(chǔ)計算等)。
(3)國外的結(jié)構(gòu)軟件如ANSYS、SAP2000、ETABS、MIDAS等幾乎都是建立于有限元分析的基礎(chǔ)上,其功能強(qiáng)大,綜合性強(qiáng),建模分析則較復(fù)雜、內(nèi)力查看不是很直觀,主要用于大型項目中設(shè)計的分析比較。
1.2 CAD二次開發(fā)平臺的選擇(如表1)
2TSCAD開發(fā)思路和技巧
2.1 列出相關(guān)專業(yè)設(shè)計流程
首先列出專業(yè)設(shè)計系統(tǒng)流程圖,并明確要輸入、輸出的內(nèi)容和格式,如圖1,通過此流程圖設(shè)計相關(guān)功能模塊和實現(xiàn)方法。
TSCAD的主要功能有:全自動繪圖,包括平面圖,剖面圖,配筋圖,詳圖等;自動生成計算書,包括兩種格式,純文本方式和Excel格式,以Excel格式為主。
2.2 界面設(shè)計
軟件界面設(shè)計是參數(shù)化平臺系統(tǒng)可以智能人機(jī)交互的重要部分之一,采用友好且豐富的參數(shù)化界面可以大大加快設(shè)計的速度。但界面設(shè)計也一直是此類平臺軟件開發(fā)的難點,尤其在用C++做ObjectARX程序時設(shè)計一個界面使用到MFC庫,設(shè)計界面非常繁雜。
.NET語言則可以很方便的開發(fā)設(shè)計出各類常規(guī)、實用、友好的界面。TSCAD軟件界面的開發(fā),所采用的交互界面形式有自定義工具欄,自定義菜單,對話框(模式對話框)等多種方式,并可與AutoCAD原菜單無縫結(jié)合。
2.3 繪圖交互設(shè)計模塊
設(shè)計成果一般最終以圖紙展現(xiàn),即要在AutoCAD中繪出圖形,這也是與普通.Net編程的區(qū)別。因此,首先要了解AutoCAD數(shù)據(jù)庫(database)的組成,在CAD中任何可見的(線,多義線,圓,標(biāo)注,尺寸等等)都是對象,都有其相關(guān)的屬性和方法,被封裝為ObjectarxforCAD中以供編程者調(diào)用。例如在封裝常用代碼后,在模型空間中添加一條直線可以簡化為如下。
Lineline=newLine(pt1,pt2);//根據(jù)起點、終點實例化line對象。
Tools.AddEntities(line);//添加line實體至模型空間(如圖2)。
利用擴(kuò)展數(shù)據(jù)共享數(shù)據(jù)如下。
一般的繪圖命令不生成擴(kuò)展實體數(shù)據(jù)的,當(dāng)編程使一個CAD圖中的圖元包括所需要的擴(kuò)展數(shù)據(jù)時,則擴(kuò)展數(shù)據(jù)位于普通數(shù)據(jù)之后。例如選擇直線,可以取出應(yīng)用程序名都是池壁的參數(shù),可以包括厚度,長度,高度等,這些數(shù)據(jù)獲得后可以為其它功能模塊所用,進(jìn)行下一步處理,比如根據(jù)平面圖中的線獲得剖面圖信息等。
AutoCAD2006版本開始提供了一個動態(tài)塊的新功能動態(tài)塊與普通塊的區(qū)別是:除幾何圖形外,動態(tài)塊中通常包含一個或多個參數(shù)和動作。
TSCAD系統(tǒng)部分繪圖功能運(yùn)用了動態(tài)塊技術(shù),例如池壁剖面配筋圖。因一般的池壁寬度尺寸都按50的模數(shù)定義,如200,250,300,350和400等,這樣可以利用動態(tài)塊技術(shù)對池壁配筋塊添加壁厚方向的參數(shù),可以迅速修改池壁寬度,效果如圖3。
2.4 數(shù)據(jù)處理及輸出的方法
TSCAD系統(tǒng)的板結(jié)構(gòu)內(nèi)力分析及計算采用的方法是利用已有的有限元分析代碼庫,這種類庫封裝了內(nèi)部算法代碼,只留了輸入和輸出接口。程序員輸入板的幾何尺寸、邊界條件、荷載情況就能輸出得到板的各項內(nèi)力和變形數(shù)值,結(jié)合規(guī)范公式后可直接輸出用于設(shè)計,這樣大大提高了編程效率。
輸出計算書的方法是利用已有的Excel計算文件。工程設(shè)計人員常常用Excel編寫某些數(shù)據(jù)計算文檔(包括用VBA編寫的Excel宏程序),目前通過COM接口,.NET語言可對Excel進(jìn)行完全的操作。這樣就能保留以前編寫的Excel文件(模板)并進(jìn)行數(shù)據(jù)交互,并輸出數(shù)據(jù)至Excel(或從Excel讀入數(shù)據(jù))。
3結(jié)語
本文以作者所從事的特種結(jié)構(gòu)設(shè)計為藍(lán)本開發(fā)的TSCAD為例,探討的是對于工程類行業(yè),用盡量易懂、開發(fā)迅速、又不失強(qiáng)大的平臺進(jìn)行AutoCAD二次開發(fā),適用于普通計算機(jī)水平的工程設(shè)計師。
參考文獻(xiàn)
[1] 唐諍皓.水池構(gòu)筑物結(jié)構(gòu)設(shè)計參數(shù)化CAD平臺開發(fā)與應(yīng)用[D].杭州:浙江工業(yè)大學(xué)碩士學(xué)位論文,2010.
[2] 曾鴻飛,張帆,盧擇臨.AutoCADV BA&VB.NET開發(fā)基礎(chǔ)與實例教程[M].北京:中國電力出版社,2008.