楊 鋒 林春峰 程 昂
(中鐵二院工程集團有限責任公司,四川成都 610031)
基于ObjectArx地形圖數(shù)據(jù)標準統(tǒng)一軟件的設計與實現(xiàn)
楊 鋒 林春峰 程 昂
(中鐵二院工程集團有限責任公司,四川成都 610031)
基于AutoCAD的ObjectArx二次開發(fā)技術,針對不同制圖軟件生產的地形圖數(shù)據(jù)標準不統(tǒng)一問題,設計并實現(xiàn)了一種地形圖數(shù)據(jù)標準統(tǒng)一的軟件。首先定義一種制圖數(shù)據(jù)統(tǒng)一的標準,該標準用于描述當前制圖數(shù)據(jù)和統(tǒng)一后制圖數(shù)據(jù)之間的相互關系;然后以AutoCAD軟件為基礎平臺,進行軟件開發(fā),利用配置完成的統(tǒng)一標準對當前制圖數(shù)據(jù)進行轉換處理,得到統(tǒng)一的地形圖數(shù)據(jù)。實踐結果表明,該軟件能夠自動、批量完成不同制圖標準的地形圖數(shù)據(jù)統(tǒng)一。
ObjectArx軟件 插件 設計 實現(xiàn)
在地形圖制圖中,制圖成果一般是AutoCAD軟件所支持的DWG格式。由于勘測方法的不同;可能使用不同的制圖軟件,如JX4、VirtuoZo、MapMatrix等;地形圖數(shù)據(jù)往往在圖層、實體類型、顏色、線形、線寬等方面呈現(xiàn)出不一致,稱之為地形圖數(shù)據(jù)標準不統(tǒng)一。在工程項目中,如果地形圖數(shù)據(jù)標準不統(tǒng)一,則需要將地形圖數(shù)據(jù)統(tǒng)一化。首先根據(jù)應用,明確一種地理幾何實體在圖層、實體類型、顏色、線形、線寬等方面的標準,然后將所有地形圖數(shù)據(jù)改動到相應標準下。
傳統(tǒng)的地形圖數(shù)據(jù)統(tǒng)一化主要是依靠人工進行改正,該方法效率低、工作量大、易出錯。提出一種基于AutoCAD的ObjectArx的二次開發(fā)技術,針對不同制圖軟件生產的地形圖數(shù)據(jù)標準不統(tǒng)一的問題,設計并實現(xiàn)了一種地形圖數(shù)據(jù)標準統(tǒng)一的軟件。首先定義一種制圖數(shù)據(jù)統(tǒng)一的標準,該標準用于描述當前制圖數(shù)據(jù)和統(tǒng)一后制圖數(shù)據(jù)之間的相互關系;然后以AutoCAD軟件為基礎平臺,進行軟件開發(fā),利用配置完成的統(tǒng)一標準對當前制圖數(shù)據(jù)進行轉換處理,得到統(tǒng)一的地形圖數(shù)據(jù)。實踐結果表明,該軟件能夠自動、批量的完成不同制圖標準的地形圖數(shù)據(jù)統(tǒng)一,提高生產效率,降低生產成本,減少出錯率。
為了實現(xiàn)不同制圖數(shù)據(jù)之間數(shù)據(jù)統(tǒng)一化,首先定義一種制圖數(shù)據(jù)統(tǒng)一的標準;制圖數(shù)據(jù)統(tǒng)一標準用于描述當前制圖數(shù)據(jù)和統(tǒng)一后的制圖數(shù)據(jù)之間的相互關系。通過分析得知:不同的地形圖數(shù)據(jù)只是在圖層、實體類型、顏色、線形、線寬等方面存在差異。因此,設計了一個制圖數(shù)據(jù)統(tǒng)一標準的數(shù)據(jù)結構,該數(shù)據(jù)結構包含了當前幾何實體所在圖層和該實體轉換后的目標圖層、顏色、線形、線寬,并以拓展標記文本格式存儲[1,2]。
文件格式如下:
<地形圖統(tǒng)一標準>
<標準>
<內容 index="1">
內容>
<內容 index="2">
內容>
……
……
標準>
地形圖統(tǒng)一標準>
其中,<線形文件>為實體統(tǒng)一標準后線對象所使用的線形文件;<實體名稱>為對實體的文字性描述信息;<原始圖層>為制圖標準統(tǒng)一前視圖所在圖層;<目標圖層>為實體在統(tǒng)一標準后所在的目標圖層;<顏色>為實體統(tǒng)一標準后的目標顏色;<線形>為線實體的線形;<線寬>為線實體的線寬,其內容“500∶0∶1 000∶0∶2 000∶0∶5 000∶0∶10 000∶0”表示:在各種比例尺下線對象所設置的線寬值。
地形圖制圖成果一般以AutoCAD軟件的DWG格式存儲。本軟件以AutoCAD軟件為基礎平臺,能夠方便地加載、顯示、編輯地形圖制圖成果,其ObjectArx開發(fā)技術提供的強大的二次開發(fā)接口能夠使得開發(fā)人員方便地訪問、繪制數(shù)據(jù)等,便于程序實現(xiàn)[3-7]。地形圖數(shù)據(jù)標準統(tǒng)一軟件被當做功能插件加載到AutoCAD軟件中使用。
地形圖數(shù)據(jù)標準統(tǒng)一軟件遵循AutoCAD提供的插件[8-10]開發(fā)規(guī)則進行開發(fā)。
軟件首先讀取依照上述定義的統(tǒng)一標準數(shù)據(jù)文件,并以Hash表的形式存儲相應的配置信息,該信息包含了當前幾何實體所在圖層和該實體轉換后的目標圖層、顏色、線形、線寬;然后在AutoCAD平臺中遍歷DWG數(shù)據(jù)的每一個圖層,通過圖層名在Hash表中取得配置信息;然后在配置信息中獲得目標圖層名,判斷當前DWG中是否存在目標圖層名,如果不存在,則創(chuàng)建該圖層,遍歷當前圖層中每一個實體,依照配置信息改動實體的圖層名、顏色、線形、線寬等。當前圖層中所有實體被遍歷后,刪除當前圖層,這樣就完成了地形圖數(shù)據(jù)制圖標準統(tǒng)一。流程如圖1所示。
圖1 數(shù)據(jù)處理流程
軟件以對話框詢問的方式進行交互,當選擇進行制圖統(tǒng)一后,彈出如圖2所示的標準選擇對話框。
圖2 制圖統(tǒng)一標準選擇
選擇不同的統(tǒng)一標準,得到的成果也將不一樣。針對任何標準,只需要增加或者修改配置文件即可實現(xiàn)不同標準的數(shù)據(jù)生成。在標準選擇時,可以忽略標準中實體的線形、顏色和線寬,這樣就能有選擇性的更改某些屬性,使得軟件更具靈活性。
選擇了制圖標準后,將會彈出如圖3所示的對話框,該對話框提示已經選擇的標準,以及添加數(shù)據(jù)。
圖3 選擇數(shù)據(jù)
點擊確定,即可實現(xiàn)數(shù)據(jù)標準的統(tǒng)一。
以某鐵路設計所需地形圖數(shù)據(jù)為例,需要將外購的1∶2 000地形圖數(shù)據(jù)統(tǒng)一到我院地形圖數(shù)據(jù)標準中。外購的地形圖數(shù)據(jù)在幾何實體圖層、顏色、線形、線寬等方面與我院地形圖標準不一致。利用設計開發(fā)的地形圖數(shù)據(jù)標準統(tǒng)一軟件,首選新建統(tǒng)一標準配置文件,建立外購數(shù)據(jù)與我院數(shù)據(jù)標準的對應關系;然后運行軟件,得到最終結果。圖4為外購數(shù)據(jù)的圖層及轉換后的圖層;圖5、圖6為制圖標準轉換前后地形圖數(shù)據(jù)。
圖4 轉換前后的數(shù)據(jù)圖層
圖5 轉換前的數(shù)據(jù)
圖6 轉換后的數(shù)據(jù)
整個測區(qū)面積約150 km2,建立了統(tǒng)一標準配置文件后,整個過程批量、自動完成,無需人工交互。經過抽查,統(tǒng)一標準后的數(shù)據(jù)100%滿足要求。
地形圖數(shù)據(jù)標準統(tǒng)一軟件綜合了計算機、GIS、測繪等技術,實現(xiàn)了計算機批量、自動、快速的地形圖數(shù)據(jù)制圖標準統(tǒng)一,效率高、成本低,杜絕了人工操作過程中效率低、工作量大、易出錯等弊端。同時,以配置文件的形式進行制圖標準的配置,極大的增加了軟件的靈活性,便于軟件應用。
[1] 羅思群.基于XML技術的數(shù)據(jù)轉換[D].北京:中國科學院軟件研究所,2001
[2] 林春峰,黃華平,閔世平.基于AutoCAD平臺的線路橫斷面線提取系統(tǒng)的設計與實現(xiàn)[J].鐵道勘察,2013(4):6-9
[3] 李世國.AutoCAD高級開發(fā)技術ARX編程及應用[M].北京:機械工業(yè)出版社,1999
[4] 江宏,立偉,等.AutoCAD ObjectARX開發(fā)工具及應用[M].北京:清華大學出版社,1999
[5] [作者不詳].AutoCAD ObjectARX程序開發(fā)技術[M].北京:國防工業(yè)出版社,2005
[6] 劉同成,林愉.基于ObjectARX的AutoCAD二次開發(fā)及應用實例[J].自動化技術與應用,2006(5)
[7] 孔國梁,鄭志霖,伍衛(wèi)凡.ObjectARX拖動技術在鐵路平面交點法選線中的應用[J].鐵道勘察,2008(3):67-70
[8] 李延春.軟件插件技術的原理與實現(xiàn)[J].計算機系統(tǒng)應用,2005(7):24-26
[9] 祖兆研.基于插件技術的軟件架構設計及應用[D].南京:河海大學,2007
[10]劉紅波.基于插件技術的GIS應用框架研究[D].南京:南京師范大學,2008
DesignandImplementationofTopographicMapDataUnifiedSoftwareBasedonObjectArx
YANG Feng LIN Chun-feng CHENG Ang
2014-06-06
楊 鋒(1965—),男,1987年畢業(yè)于西南交通大學鐵道航空勘察專業(yè),高級工程師。
1672-7479(2014)05-0005-03
P284.9
: B