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