在日常工作内容中经常需要用到提取CAD图面坐标点,用于放样和其他软件做交换数据使用;比如导出测量点坐标、多段线节点,图块点等。导出点坐标可以用CAD的“DATAEXTRACTION”命令创建数据提取将数据导出(如图一);对于单条多段线的坐标也可以使用“LIST”命令把多段线的坐标打印在命令上(如图二)、然后将坐标复制出来;如果图面数据比较多的情况下,这种作业效率显而太低,下面做一个将图面所有多段线节点坐标导出的功能,并在每个地块上标注一个地块名字和标注每个地块的节点点号,方便和图面和数据文件对比。这里用到了CAD文字实体添加、文件保存等操作。(文末有源代码下载)
程序设计过程
- 创建一个List数据集合,用于存储地块名字和每条多段线节点坐标。
- 过滤选择图上所有多段线,获取选择实体的objectId集合。
- 循环选择集,根据objectId获取多段线实体和实体外包矩形的中心点(注记地块名字的基点位置),并将地块的名字加到数据集合中和注记在图面上。
- 使用Poly