不得不说,ArcGIS 和 CAD 之间的兼容性非常差,shapefile文件和dwg文件之间互相转换会丢失各种属性,但是很多时候他们之间的转换对我们来说是刚需。通常我们都是通过第三方软件(如FME)来实现带属性的转换,我尝试直接使用ArcGIS将shp文件转换从dwg并添加标注,下文记录整个流程和遇到的坑。

主要流程为:

  1. shp直接转 dwg
  2. 设置导出数据的属性
  3. 添加标注

shp 直接转 dwg

对于普通的 shp 转 dwg ,直接使用Toolbox中的转换工具-转为CAD-要素转CAD工具即可,工具界面如下:
火影推荐程序连载61-shp文件转dwg并创建文本标注

通常需要设置的参数有:

  1. 输入要素。需要转换成 dwg 的要素类。可以同时将多个要属类转换至一个 dwg 中。
  2. 输出类型。设置输出的 dwg 版本,对于CAD2006,可以设置为 DWG_2005
  3. 输出文件。输出 dwg 文件的路径。

参数设置完成后,直接运行工具。待工具运行完成后,在CAD中打开所导出的 dwg ,可以看到,该 dwg 仅保存了点和线,所有的属性都已丢失。

火影推荐程序连载61-shp文件转dwg并创建文本标注

设置导出数据的属性

多数情况下,我们希望 shp 导出为 dwg 后一些属性能被保留,如高程值、线宽、线型等。对于该需求,我们可以通过为要素添加 CAD 字段的方式实现。

在ToolBox中找到转换工具-转为CAD-添加CAD字段工具并打开,输入需要处理的要素,点击确定即可。

工具执行完成后,打开要素属性表,可以发现有非常多的字段被添加至属性表中。每个属性都具有不同的含义,如EntLineWt属性指定线条的粗细,Layer指定线条所属的图层,等等等等,具体每个属性代表的含义可以查看 ESRI 为 AutoCAD DWG/DXF 格式保留的

  1. ptional<Integer> max www.jintianxuesha.com= list.stream(www.huiyinpp3zc.cn).max((a, b) -> a - b);

  2.  

      

  3.  

      System.out.println(max.get(www.haoranjupt.com)); www.fudayulpt.cn// 6

  4.  

      

  5.  

      //求集合的最小值

  6.  

      

  7.  

      System.out.println(list.stream( www.jubooyule.com ).min((www.baihua178.cn b) -> a-b).get()); // 1

  8.  

      

  9.  

      System.out.println(www.jucaiyle.cn list.stream(www.tengyueylzc.cn).count(www.baihuayllpt.cn));//

  10.  

      

  11.  

      String str =www.qitianylezc.cn"11,22,33,44,55";

  12.  

      

  13.  

      System.out.println(Stream.of(str.split(www.longtenghai2.com",")).mapToInt(www.wujiu5zhuce.cn-> Integer.valueOf(x)).sum());

  14.  

      

  15.  

      System.out.println(Stream.of(str.split("www.lanboylgw.com,")).mapToInt(Integer::valueOf).sum());

  16.  

      

  17.  

      System.out.println(Stream.of(str.split(www.shentuylzc.cn",")).map(x -> Integer.valueOf(x)).mapToInt(x -> x).sum());

  18.  

      

  19.  

      System.out.println(Stream.of(str.split(www.xingyunylpt.com",")).map(Integer::valueOf).mapToInt(x -> x).su

 

此时,这些属性全部都为默认值,需要自己修改为需要的值,可以开启编辑后手动一个一个修改,也可以使用字段计算器批量赋值。

添加标注

很多时候我们需要对点、线、面进行标注, shp 直接导出为 dwg 会丢失属性,没办法实现。但是可以通过迂回的方法实现。

使用添加CAD字段工具会在要属类属性表中添加一个名为CadType的字段,该字段指示输出实体的类型。当点要素的该字段设置为TEXT,导出 dwg 时会根据TxtValue字段的值,在点的对应位置创建字符串而非点。通过该种方式,即可实现在 CAD 中添加标注,再对文字和点大小进行调整,成果如下图,打完收工。

火影推荐程序连载61-shp文件转dwg并创建文本标注

相关文章:

  • 2021-11-23
  • 2021-08-31
  • 2021-11-01
  • 2022-02-10
  • 2021-11-08
  • 2022-01-16
  • 2022-01-12
  • 2022-12-23
猜你喜欢
  • 2021-06-25
  • 2021-09-30
  • 2021-10-05
  • 2022-12-23
  • 2022-01-08
  • 2021-09-29
  • 2022-02-07
相关资源
相似解决方案