不得不说,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 中添加标注,再对文字和点大小进行调整,成果如下图,打完收工。
本文参考: