shp文件轉dwg並創建文本標註

不得不說,ArcGIS 和 CAD 之間的兼容性非常差,shapefile文件和dwg文件之間互相轉換會丟失各種屬性,但是很多時候他們之間的轉換對我們來說是剛需。通常我們都是通過第三方軟體(如FME)來實現帶屬性的轉換,我嘗試直接使用ArcGIS將shp文件轉換從dwg並添加標註,下文記錄整個流程和遇到的坑。

主要流程為:

  1. shp直接轉 dwg
  2. 設置導出數據的屬性
  3. 添加標註

shp 直接轉 dwg

對於普通的 shp 轉 dwg ,直接使用Toolbox中的轉換工具-轉為CAD-要素轉CAD工具即可,工具介面如下:
20201106093647

通常需要設置的參數有:

  1. 輸入要素。需要轉換成 dwg 的要素類。可以同時將多個要屬類轉換至一個 dwg 中。
  2. 輸出類型。設置輸出的 dwg 版本,對於CAD2006,可以設置為 DWG_2005
  3. 輸出文件。輸出 dwg 文件的路徑。

參數設置完成後,直接運行工具。待工具運行完成後,在CAD中打開所導出的 dwg ,可以看到,該 dwg 僅保存了點和線,所有的屬性都已丟失。

20201106093722

設置導出數據的屬性

多數情況下,我們希望 shp 導出為 dwg 後一些屬性能被保留,如高程值、線寬、線型等。對於該需求,我們可以通過為要素添加 CAD 欄位的方式實現。

在ToolBox中找到轉換工具-轉為CAD-添加CAD欄位工具並打開,輸入需要處理的要素,點擊確定即可。

工具執行完成後,打開要素屬性表,可以發現有非常多的欄位被添加至屬性表中。每個屬性都具有不同的含義,如EntLineWt屬性指定線條的粗細,Layer指定線條所屬的圖層,等等等等,具體每個屬性代表的含義可以查看 ESRI 為 AutoCAD DWG/DXF 格式保留的 CAD 欄位

此時,這些屬性全部都為默認值,需要自己修改為需要的值,可以開啟編輯後手動一個一個修改,也可以使用欄位計算器批量賦值。

添加標註

很多時候我們需要對點、線、面進行標註, shp 直接導出為 dwg 會丟失屬性,沒辦法實現。但是可以通過迂迴的方法實現。

使用添加CAD欄位工具會在要屬類屬性表中添加一個名為CadType的欄位,該欄位指示輸出實體的類型。當點要素的該欄位設置為TEXT,導出 dwg 時會根據TxtValue欄位的值,在點的對應位置創建字元串而非點。通過該種方式,即可實現在 CAD 中添加標註,再對文字和點大小進行調整,成果如下圖,打完收工。

20201106094731


本文參考:

  1. 為 AutoCAD DWG/DXF 格式保留的 CAD 欄位
  2. ArcGIS知乎——shp轉cad屬性丟失?
Tags: