張彥濤
(河北天元地理信息科技工程有限公司,河北廊坊065201)
AutoCAD是目前世界上在圖形應(yīng)用方面使用廣泛的計(jì)算機(jī)輔助設(shè)計(jì)軟件,但其在特定領(lǐng)域的功能不足或很薄弱。利用VB.NET開(kāi)發(fā)出針對(duì)“地下管線”特定的AutoCAD應(yīng)用軟件,實(shí)現(xiàn)僅依靠Auto-CAD自身不能或不易做到的功能,解決實(shí)際工程中的問(wèn)題。
利用VB.NET進(jìn)行AutoCAD的二次開(kāi)發(fā)具有很大的優(yōu)勢(shì),它是一種面向?qū)ο蟮目梢暬幊坦ぞ撸哂锌焖俚拈_(kāi)發(fā)環(huán)境,其語(yǔ)法簡(jiǎn)單、功能強(qiáng)大、界面清晰,可充分利用.NET的各種優(yōu)勢(shì),大大提高開(kāi)發(fā)速度。
.NET框架是NET最為重要的組件,如圖1所示。.NET框架平臺(tái)代表了一種嶄新的軟件開(kāi)發(fā)模式,它與Win32 API或COM一樣,是把系統(tǒng)服務(wù)以接口形式提供給開(kāi)發(fā)人員的軟件開(kāi)發(fā)平臺(tái)。與以往不同的是,.NET框架能夠更好地完成代碼重用、資源配置、多語(yǔ)言集成開(kāi)發(fā)和安全管理等任務(wù),在安全性、易用性及開(kāi)發(fā)效率等方面遠(yuǎn)遠(yuǎn)超過(guò)了以前的開(kāi)發(fā)模式。
使用.NET開(kāi)發(fā)程序具有許多好處,概括起來(lái)有以下幾點(diǎn):
1)統(tǒng)一的面向?qū)﹂_(kāi)發(fā)平臺(tái)。
2)內(nèi)存自動(dòng)管理-垃圾收集。
3)一致的異常處理。
4)支持多種開(kāi)發(fā)語(yǔ)言。
圖1 .NET框架
從AutoCAD 2006開(kāi)始,AutoCAD增加了.NET API,它提供了一系列托管的外包類(managed wrapper class),使開(kāi)發(fā)人員可在.NET框架下,使用VB.NET對(duì)AutoCAD進(jìn)行二次開(kāi)發(fā)。隨著版本的更新,從AutoCAD 2008開(kāi)始.NET API已經(jīng)擁有與C++相匹配的強(qiáng)大功能。由于開(kāi)發(fā)接口是完全面向?qū)ο蟮?,又具有方便易用的特點(diǎn),因此NET API是目前較理想的AutoCAD開(kāi)發(fā)工具,也是今后的發(fā)展方向。
AutoCAD的托管程序集為兩個(gè)文件:acdbmgd.dll和acmgd.dll,它們存在于AutoCAD的安裝目錄下,如C:Program FilesAutoCAD 2010,其中acdbmgd.dll包含Obj ectDBX托管類,主要包含用于處理AutoCAD數(shù)據(jù)庫(kù)和DWG文件的相關(guān)操作的命名空間和類,如實(shí)體操作等,而acmgd.dll包含 Auto-CAD托管類,用戶處理AutoCAD程序級(jí)別的對(duì)象,如程序?qū)ο?、文檔對(duì)象等。命名空間相關(guān)功能見(jiàn)表1。
表1 命名空間相關(guān)功能
(1)技術(shù)框架
技術(shù)框架如圖2所示。
圖2 技術(shù)框架
(2)數(shù)據(jù)采集
地下管線數(shù)據(jù)采集主要分為:
1)管線探查。采用管線探測(cè)儀或探地雷達(dá)對(duì)隱蔽點(diǎn)進(jìn)行探查,采用量測(cè)工具對(duì)明顯點(diǎn)進(jìn)行調(diào)查。查清各種管線的位置、走向、埋深、材質(zhì)等相關(guān)屬性。
2)管點(diǎn)測(cè)量。利用全站儀、RTK等相關(guān)儀器測(cè)定各種管線隱蔽點(diǎn)和明顯點(diǎn)的坐標(biāo)和高程。
(3)數(shù)據(jù)入庫(kù)
1)手工錄入,手工錄入如圖3所示。
圖3 手工錄入圖
2)PDA數(shù)據(jù)導(dǎo)入,將PDA與計(jì)算機(jī)連接,直接將探查數(shù)據(jù)導(dǎo)入對(duì)應(yīng)的數(shù)據(jù)庫(kù)。
(4)管線圖形繪制
1)啟動(dòng) Microsoft Visual Studio.NET 2008,如圖4所示。
圖4
2)在【文件】菜單中,選擇用 VB語(yǔ)言創(chuàng)建工程,【新建】一個(gè)類庫(kù)(class library)項(xiàng)目,指定工程名稱和存放位置如圖5所示。
圖5
3)導(dǎo)入命名空間,主要代碼如下:
4)繪制管線段,主要代碼如下:
成圖效果如圖6所示。
圖6
本文通過(guò)實(shí)例證明了基于 VB.NET的Auto-CAD二次開(kāi)發(fā)在管線成圖方面的優(yōu)越性和易用性,并在實(shí)際工程施工中得到了很好的應(yīng)用,極大地提高了工作效率。
略)