梁經(jīng)勇(中國能源建設(shè)集團(tuán)湖南省電力設(shè)計(jì)院有限公司,湖南長(zhǎng)沙410007)
基于AutoCAD(.NET)二次開發(fā)的塔基地形圖自動(dòng)繪制
梁經(jīng)勇(中國能源建設(shè)集團(tuán)湖南省電力設(shè)計(jì)院有限公司,湖南長(zhǎng)沙410007)
首先介紹了基于AutoCAD(.NET)二次開發(fā)的塔基地形圖自動(dòng)繪制程序的總體設(shè)計(jì),緊接著闡述了塔基地形圖自動(dòng)繪制程序的主要實(shí)現(xiàn)過程,最后介紹了程序在實(shí)際輸電線路工程中的應(yīng)用。
AutoCAD;.NET;塔基地形圖
輸電線路工程測(cè)量中,需野外測(cè)量電力鐵塔設(shè)計(jì)位置的地形并繪制塔基地形圖,傳統(tǒng)的AutoCAD塔基地形圖的繪制通常由一系列繁鎖的步驟來完成,尤其是在路徑很長(zhǎng)的線路工程中,塔基地形圖多達(dá)幾百張,完成這些圖紙的繪制需要耗費(fèi)大量的時(shí)間和精力,效率低下且易出錯(cuò)。本文討論了在.NET環(huán)境下,采用C#語言對(duì)AutoCAD 2010進(jìn)行二次開發(fā),實(shí)現(xiàn)了塔基地形圖的自動(dòng)繪制,并在實(shí)際工程中得到應(yīng)用,提高了生產(chǎn)效率。
眾所周知,對(duì)AutoCAD進(jìn)行二次開發(fā)用到的主要工具有ObjectARX、VBA和Lisp,但它們的優(yōu)缺點(diǎn)是顯而易見的:ObjectARX功能強(qiáng)大,編程效率高,但它的缺點(diǎn)是編程者必須掌握VC++,而這門語言非常難學(xué);VBA和Lisp雖然簡(jiǎn)單易上手,但它們對(duì)于開發(fā)大型的程序好像無能為力。而.NET結(jié)合了VC++功能強(qiáng)大與VBA易用的特點(diǎn),可以非??焖俚亻_發(fā)出功能強(qiáng)大的AutoCAD程序。
從AutoCAD 2006開始,Autodesk為其開發(fā)增加了.NET API。.NET API提供了一系列托管的外包類,使開發(fā)人員可在Microsoft.NET Framework下,使用任何支持.NET的語言,如VB.NET、C#等對(duì)AutoCAD進(jìn)行二次開發(fā)。本文采用的是C#語言進(jìn)行AutoCAD二次開發(fā)。
塔基地形圖自動(dòng)繪制程序主要由3個(gè)模塊組成,分別為數(shù)據(jù)輸入模塊、數(shù)據(jù)處理模塊和圖形繪制模塊(如圖1)。
數(shù)據(jù)輸入模塊:主要為程序的界面設(shè)計(jì),界面設(shè)計(jì)為程序的入口,數(shù)據(jù)的輸入通過程序界面的操作來實(shí)現(xiàn)。
數(shù)據(jù)處理模塊:主要為等高線生成算法的實(shí)現(xiàn)、圖框及注記點(diǎn)位置的計(jì)算。等高線生成采用遞歸算法實(shí)現(xiàn),圖框及注記點(diǎn)位置依據(jù)塔位中心及圖框尺寸進(jìn)行計(jì)算。
圖形繪制模塊:將經(jīng)過數(shù)據(jù)處理模塊處理后的數(shù)據(jù),自動(dòng)繪圖輸出成塔基地形圖。其過程主要分為圖層設(shè)計(jì)和創(chuàng)建AutoCAD實(shí)體對(duì)象兩部分。
4.1 程序界面設(shè)計(jì)
塔基地形圖自動(dòng)繪制程序的主界面如圖2,此對(duì)話框通過AutoCAD命令調(diào)出顯示。使用CommandMethod屬性添加能在AutoCAD中調(diào)用的命令,并將此命令與菜單項(xiàng)綁定添加到AutoCAD菜單中,從而實(shí)現(xiàn)在AutoCAD中添加塔基地形圖自動(dòng)繪制的功能。其關(guān)鍵代碼如下:
}(見圖2)
4.2 創(chuàng)建AutoCAD圖層
圖2 主程序界面
塔基地形圖包括的實(shí)體對(duì)象很多:等高線、高程注記、塔位圖根點(diǎn)、圖框、圖廓注記等,為了便于圖形的繪制和管理,必須對(duì)不同的實(shí)體對(duì)象進(jìn)行分層繪制。創(chuàng)建圖層的主要代碼如下:
4.3 創(chuàng)建圖形實(shí)體對(duì)象
塔基地形圖中包含的圖形實(shí)體對(duì)象較多,有點(diǎn)、直線、多段線、樣條曲線、文字等。在AutoCAD中,添加1個(gè)圖形實(shí)體對(duì)象的主要步驟有:
(1)獲得創(chuàng)建圖形對(duì)象的數(shù)據(jù)庫;
(2)定義一個(gè)指向當(dāng)前數(shù)據(jù)庫的事務(wù)處理;
(3)打開圖形數(shù)據(jù)庫的塊表;
(4)打開一個(gè)存儲(chǔ)實(shí)體的塊表記錄,所有模型空間的實(shí)體都存儲(chǔ)在塊表記錄中;
(5)在內(nèi)存中創(chuàng)建實(shí)體類的一個(gè)對(duì)象;
(6)將該對(duì)象添加到塊表記錄中;
(7)把對(duì)象添加到事務(wù)處理中;
(8)提交事務(wù)處理。
在AutoCAD中,創(chuàng)建圖形實(shí)體對(duì)象的主要代碼如下:
//獲取當(dāng)前活動(dòng)圖形數(shù)據(jù)庫
程序在新寧~扶夷220kV線路工程中得到應(yīng)用,整條線路總共240基鐵塔,需繪制塔基地形圖240張。首先在程序主界面對(duì)話框中進(jìn)行參數(shù)設(shè)置(如圖2),所有參數(shù)設(shè)置完成后,點(diǎn)擊“繪圖”按鈕,導(dǎo)入預(yù)處理后的CASS(.dat)格式數(shù)據(jù)進(jìn)行自動(dòng)繪圖,全部240張塔基地形圖在2min內(nèi)自動(dòng)繪制完成(如圖3)。
圖3 應(yīng)用實(shí)例
本文采用AutoCAD.NET API(C#語言)進(jìn)行二次開發(fā),實(shí)現(xiàn)了電力線路工程中塔基地形圖的自動(dòng)繪制,并在實(shí)際工程中得到了應(yīng)用,大大提高了電力線路測(cè)量數(shù)據(jù)處理及繪圖的效率和質(zhì)量,減少了大量繁瑣的操作,縮短了工期,取得了良好的經(jīng)濟(jì)效益。同時(shí)也為塔基地形圖的自動(dòng)繪制提供了一種行之有效的方法。
[1]曾洪飛,盧擇臨,張 帆.AutoCAD VBA&VB.NET開發(fā)基礎(chǔ)與實(shí)例教程[M].北京:中國電力出版社,2013,5.
[2]李冠億.深入淺出AutoCAD.NET二次開發(fā)[M].北京:中國建筑工業(yè)出版社,2012,2.
[3]余甚洋,謝元禮,徐光巖.AutoCAD平臺(tái)下坐標(biāo)文件圖形化模塊C#實(shí)現(xiàn)[J].西北大學(xué)學(xué)報(bào):自然科學(xué)網(wǎng)絡(luò)版,2008,6(5):2~4.
TM75
A
2095-2066(2016)36-0055-02
2016-12-12
梁經(jīng)勇(1982-),男,工程師,碩士,主要從事電力勘測(cè)設(shè)計(jì)工作。