arcgis select by attributes一次选多个_ArcGIS 导出 CAD 的常见需求以及实现

封面图片来源: https://www. giscourse.com/

最近在做导出要素类到 CAD 文件遇到了 3 个问题:

(1) 如何让要素导过去之后都放在相关的图层;

(2)如何让要素导过去之后有符号;

(3)怎么实现要素导过去之后有文字标注;

这些问题在

https://desktop.arcgis.com/zh-cn/arcmap/10.4/manage-data/cad/exporting-features-to-specific-cad-layers.htm

有教程。但是操作起来还是会遇到各种问题。

本文结合实际操作经历编写,并给出相应的 ArcPy 代码。

本文涉及软件环境:ArcGIS 10.4 / AutoCAD 2016 。导出dwg文件版本为 2007 。

一、如何让要素导过去之后都放在相关的图层

默认情况下,要素类导入CAD之后,会以要素类名字为图层的名称创建新图层,要素类中的所有要素将放入新图层中。效果如下图。

f53833cdd489cc52d170c2e973a03455.png
要素属性表

f7cbf290b6aa6f5b078bd027c1b2c759.png
要素转CAD设置

d4a84ec536a62c449977a73dc7d5bf38.png
导出后的图层效果

ArcGIS 要素转CAD工具支持通过添加相关的字段值实现将要素导入CAD的不同图层。操作步骤是:

(1)给要导出的要素类添加 Layer 字段(数据类型:文本,长度:50);

(3)给 Layer 字段赋值,这个值值将作为导入 CAD 之后的图层名;

通过设置不同的 Layer 字段值,要素将被放到不同的图层。

121ed44743d76e0f5e6424c58a4359ff.png
设置Layer字段

1f17207d5a2a425753b37ce2382badb7.png
导出后的图层效果

ArcPy 代码

# feature to cad: set layer name

还可以进一步设置图层颜色、图层状态、线宽、线型等。

74c9429b8828926f11595a53cd69e087.png
要素转 CAD,图层属性保留字段

Reserved CAD fields for AutoCAD DWG/DXF formats

二、如何让要素导入CAD之后有符号

(1)给导入CAD的要素类添加字段。

添加 RefName 字段(数据类型:文本,长度:50),这里设置字段值为 ref1;

添加 Entity 字段(数据类型:文本,长度:50),这里设置字段值为 Insert;测试发现这里使用 CADType字段代替 Entity 字段也可以。

ae60f392156c4cb66cbaf05c2bc44eb2.png
设置字段

(2)制作CAD种子文件

a. 绘制一个图形作为符号,如三角形;

375fed5490e4c385aa66e06543299b07.png
绘制符号

b. 创建一个块;命令 block。

设置名称为 ref1 (和ArcGIS属性表中 RefName 的值一致)。

设置基点,这里拾取三角形的中心。

设置对象,这里选择三角形。

5caee390564459e5d66515159ff7d59b.png
创建块

1887fca15066a61d0c0cc9354edc83d7.png
最后块的效果

c. 制作好块后保存文件为 seed.dwg,文件类型为:AutoCAD 2007/LT2007图形(*。dwg)。

3de38d414755a2a551af2b0f605eaea3.png
保存种子文件

(3)执行要素转CAD

3afd0a1eb75e294b173e3f09fb1b7a23.png
要素转CAD参数设置,设置种子文件

f8ab863bf1ccee7cb8276bc64d445f15.png
设置种子导出效果

因为符号太大,显示效果并不好。可以添加 ScaleX 、 ScaleY 字段来调整符号大小。

9ef6829670d5145df88f448b9e8e3b7e.png
添加ScaleX、ScaleY 字段

ArcPy 代码

# feature to cad: set symbol

feature = "D:/study/arcgis/ExportCAD/ExportCADdemo1.shp"
output_file = "D:/study/arcgis/ExportCAD/resultsym.dwg"
seed_file = "D:/study/arcgis/ExportCAD/seed.dwg"

arcpy.AddField_management(
	feature,
	"Entity",
	"TEXT"
)

arcpy.CalculateField_management(
	feature,
	"Entity",
	"'Insert'",
	"PYTHON"
)

arcpy.AddField_management(
	feature,
	"RefName",
	"TEXT"
)

arcpy.CalculateField_management(
	f["feature"],
	"RefName",
	"'ref1'",
	"PYTHON"
)
arcpy.AddField_management(
	feature,
	"ScaleX",
	"DOUBLE"
)

arcpy.CalculateField_management(
	feature,
	"ScaleX",
	0.00002,
	"PYTHON"
)

arcpy.AddField_management(
	feature,
	"ScaleY",
	"DOUBLE"
)

arcpy.CalculateField_management(
	feature,
	"ScaleY",
	0.00002,
	"PYTHON"
)

arcpy.ExportCAD_conversion(feature, 
    "DWG_R2007", output_file,
    "Ignore_Filenames_in_Tables",
    "OVERWRITE_EXISTING_FILES", seed_file)

还可以将要素的属性也导入导CAD里面,可以参考

准备种子文件 (注意链接文章中【定义属性】处的指令应该是 ATTDEF 而不是 ATTEDIT)

三、如何实现要素导入CAD之后有文字标注

(1)将线、面要素类转为点要素类;

(2)添加 CADType字段(数据类型:文本,长度:50),设置字段值为 TEXT;

(3)添加 TxtValue字段(数据类型:文本,长度:50),设置字段值为想显示的文本标注值(可利用字段计算器计算);

11c41c25531d35bbcfb2ccc9890f6d40.png
配置文本导出属性

(4)执行要素转CAD操作。

6ca783f208957cafcbe822eed1395904.png
文本显示效果

如果中文文字显示为问号。可以在菜单栏单击【格式】-> 【文字样式】(或者使用 style 命令),设置字体。

2cb43d9fd4cd9687d1cfb1437f9cec81.png
设置字体

ArcPy 代码

# feature to cad: export  att as text label

feature = "D:/study/arcgis/ExportCAD/ExportCADdemo1.shp"
output_file = "D:/study/arcgis/ExportCAD/resultxt.dwg"

arcpy.AddField_management(
	feature,
	"CADType",
	"TEXT"
)

arcpy.CalculateField_management(
	feature,
	"CADType",
	"'TEXT'",
	"PYTHON"
)

arcpy.AddField_management(
	feature,
	"TxtValue",
	"TEXT"
)

arcpy.CalculateField_management(
	feature,
	"TxtValue",
	"'文本标注'",
	"PYTHON"
)


arcpy.ExportCAD_conversion(feature, "DWG_R2007", output_file)

参考资料

【1】https://desktop.arcgis.com/zh-cn/arcmap/10.5/manage-data/cad/exporting-features-to-specific-cad-layers.htm

【2】https://desktop.arcgis.com/en/arcmap/10.4/manage-data/cad/reserved-cad-fields-for-dwg-and-dxf-files.htm

【3】https://zhidao.baidu.com/question/531449005.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ARCGIS的数据转换CAD流程(2009-04-23 09:10:44)标签:it 分类:GIS及相关专业技术 工作中,一点点摸索,终于能够导出CAD图了,感谢我的姐姐,一起分享收获的快乐: GIS数据导出CAD流程 1、 打开GIS系统,在TOC中的layers右键属性→general→reference scale→输入1000(CAD中要求字体越小,这个数也越小,经验),→确定 2、 中作要范围的图层数据。法一、用DRAW工具条中的New Rectangle 或New Polygon 在图上画出范围,单击菜单selection的select by Graphics工具,即可中所要范围的数据图层。法二、直接使用标准工具条中的select Features工具,出所要范围数据。法三、另建一*.shp图层(polygon),画出所要求范围(多边形),然后运用菜单selection的select by location工具进行择。 前提:所需的各层数据都可择。(Set Selectable layers 进行择) 3、 图层标注的文字属性导出。右键→属性,首先保证label中。单击Convert labels to Annotation,打开对话框,store Annotation in a database, Create Annotation for selected features, 将下面表格里的feature linked的√去掉,此时出现文件夹图标,择保存位置。确定。(默认为该图层所在的文件位置) 4、 所图层数据保存到新建的Database里。 5、 打开ArcToolBox或者ArcCatalog,导出CAD文件 6、 打开导出CAD文件,未看到图。单击全部缩放工具,此时出现一个白点,挪动,放大。看到点线面,而没有注记文字。 7、显示注记文字。关闭所有点线面图层,打开图层特性管理器,只保留注记层,确定。在点线面的位置圈,可看到中标记,颜色择任何(除了纯白色纯黑色)颜色,将字体样式改为宋体。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值