穆綠
(蚌埠市勘測設計研究院,安徽蚌埠 233000)
隨著我國經濟的快速發展,城市的變化日新月異,城市在大建設、大發展,大型企業的引進、房地產開發、棚戶區改造等方面的建設都離不開土地勘測定界測量。而土地勘測定界測量是地籍測繪中的一種,主要的工作是界址測量、地形要素測量、區劃要素測量、權屬要素測量、地類要素測量等。由測繪單位進行土地勘測定界測量并出具勘測定界報告書及相關圖紙,向上級土地管理部門進行報批,主管部門審批合格后,方可進行掛牌出讓或劃撥土地。
在土地勘測定界測量中,其中有一項重要的工作是土地利用分類和面積匯總。在應用計算機制圖前,都是采用手工標注和計算,這種方法的缺點是費時費力,容易出錯,而且效率低下,嚴重影響工作進度。進入20世紀80年代,隨著計算機技術的發展,測繪工作的內外業已經實現了數字化、一體化和自動化,這種手工計算的方法已經不適合技術的發展了,需要一種能提高效率、減少錯誤的方法來代替。
為了使重復性較大的計算繪圖工作量減小和更加規范準確,使用VB、VC等開發語言對AutoCAD繪圖軟件進行開發,也可以使用AutoCAD自帶的VBA進行開發。對于不同的開發語言,使用的二次開發技術也不一樣,從AutoCAD 2006開始,AutoCAD 增加了.NET API,它提供了一系列托管的外包類,使開發人員可在.NET框架下,使用任何支持.NET的語言,如 VB.NET、C#、Managed C++等對AutoCAD進行二次開發。隨著版本的更新,在最新的AutoCAD 2011中,.NET API已經擁有與C++相匹配的強大功能,由于開發接口是完全面向對象的,又具有方便易用的特點,所以用.NET API來進行AutoCAD的二次開發還是比較容易掌握的。
Microsoft Visual Basic 2005從Visual Basic語言演變而來,是一種為高效地生成類型安全和面向對象的應用程序而設計的語言。Visual Basic允許開發人員開發面向Windows、Web和移動設備的程序。與所有面向Microsoft.NET Framework的語言一樣,使用Visual Basic編寫的程序都具有安全性和語言互操作性方面的優點。它易學易懂,靈活方便。
AutoCAD的特點偏重于幾何制圖,其基本對象是點、線等實體,這些實體只能代表真實物體的幾何形狀和尺寸大小,并不具備物體屬性的描述,給用戶判讀和數據操作帶來了困難,而且也不利于CAD圖形和GIS的結合。

圖1 DXF組碼
雖然AutoCAD未提供實體的屬性機制,但是它提供了為實體捆綁屬性信息的編程接口,常用的是擴展數據和字典。時下的軟件如南方CASS等都是基于此開發的。對象擴展數據的類型用一個整數來表示的,常用的有1001代表應用程序名稱,1000代表字符串等,其實就是DXF組碼。操作這些組碼可以設計出想要的功能,如圖1所示。
(1)給標注文字進行應用程序注冊,以下是主要代碼:

(2)進行地類文字標注,如圖2所示。



圖2 地類標注
在面積分類標注完成后,選擇所有地類注記,程序可以自動完成面積統計,并將結果輸出。
(1)根據擴展數據進行選擇集的篩選。




(2)把同一圖層的相同地類合并在一起,在實現此功能時,可以使用.NET中NameValueCollection類,它表示可通過鍵或索引訪問的關聯String鍵和String值的集合。每個元素都是一個鍵/值對,該類在一個鍵下存儲多個字符串值。在本程序中可以把地類編碼作為Key,而把面積作為Value,在統計時該類會把所有相同的地類合并到一起,并使用逗號分隔符來保存各地類面積。提取時只需根據逗號分開并相加即可。具體代碼如下:


(3)程序輸出結果,如圖3所示。

圖3 面積統計表
利用.NET結合ObjectArx進行AutoCAD的二次開發,實現了地類的自動標注、面積統計的自動化。免去了手工輸入數據、手工計算總面積等,同時避免了因手工數據輸入、計算可能出現的錯誤,提高了工作效率,也讓技術人員脫離了繁冗復雜的計算工作。
[1]Thearon Willis Bryan Newsome(美).Visual Basic 2005 入門經典[M].北京:清華大學出版社,2006.
[2]秦洪現,崔惠嵐,孫劍等.Autodesk系列產品開發培訓教程[M].北京:化學工業出版社,2008.
[3](美)P.J.Deitel Visual Basic 2005 大學教程[M].北京:電子工業出版社,2008.
[4]王儂,廖元焰.地籍測量[M].北京:測繪出版社,2008.
[5]曾洪飛,張帆,盧擇臨.AutoCAD VBA& VB.NET開發基礎與實例教程[M].北京:中國電力出版社,2008.
[6]浮懷鵬,譚盧師,吳元碩.CAD圖元擴展數據[J].華北水利水電學院學報,2010,74 ~75.