不得不說,ArcGIS 和 CAD 之間的相容性非常差,shapefile檔案和dwg檔案之間互相轉換會丟失各種屬性,但是很多時候他們之間的轉換對我們來說是剛需。通常我們都是通過第三方軟體(如FME)來實現帶屬性的轉換,我嘗試直接使用ArcGIS將shp檔案轉換從dwg並新增標註,下文記錄整個流程和遇到的坑。
主要流程為:
- shp直接轉 dwg
- 設定匯出資料的屬性
- 新增標註
shp 直接轉 dwg
對於普通的 shp 轉 dwg ,直接使用Toolbox中的轉換工具-轉為CAD-要素轉CAD
工具即可,工具介面如下:
通常需要設定的引數有:
- 輸入要素。需要轉換成 dwg 的要素類。可以同時將多個要屬類轉換至一個 dwg 中。
- 輸出型別。設定輸出的 dwg 版本,對於CAD2006,可以設定為
DWG_2005
- 輸出檔案。輸出 dwg 檔案的路徑。
引數設定完成後,直接執行工具。待工具執行完成後,在CAD中開啟所匯出的 dwg ,可以看到,該 dwg 僅儲存了點和線,所有的屬性都已丟失。
設定匯出資料的屬性
多數情況下,我們希望 shp 匯出為 dwg 後一些屬效能被保留,如高程值、線寬、線型等。對於該需求,我們可以通過為要素新增 CAD 欄位的方式實現。
在ToolBox中找到轉換工具-轉為CAD-新增CAD欄位
工具並開啟,輸入需要處理的要素,點選確定即可。
工具執行完成後,開啟要素屬性表,可以發現有非常多的欄位被新增至屬性表中。每個屬性都具有不同的含義,如EntLineWt
屬性指定線條的粗細,Layer
指定線條所屬的圖層,等等等等,具體每個屬性代表的含義可以檢視 ESRI 為 AutoCAD DWG/DXF 格式保留的 CAD 欄位
此時,這些屬性全部都為預設值,需要自己修改為需要的值,可以開啟編輯後手動一個一個修改,也可以使用欄位計算器批量賦值。
新增標註
很多時候我們需要對點、線、面進行標註, shp 直接匯出為 dwg 會丟失屬性,沒辦法實現。但是可以通過迂迴的方法實現。
使用新增CAD欄位
工具會在要屬類屬性表中新增一個名為CadType
的欄位,該欄位指示輸出實體的型別。當點要素的該欄位設定為TEXT
,匯出 dwg 時會根據TxtValue
欄位的值,在點的對應位置建立字串而非點。通過該種方式,即可實現在 CAD 中新增標註,再對文字和點大小進行調整,成果如下圖,打完收工。
本文參考: