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

程序设计过程

  1. 创建一个List数据集合,用于存储地块名字和每条多段线节点坐标。
  2. 过滤选择图上所有多段线,获取选择实体的objectId集合。
  3. 循环选择集,根据objectId获取多段线实体和实体外包矩形的中心点(注记地块名字的基点位置),并将地块的名字加到数据集合中和注记在图面上。
  4. 使用Polyline的NumberOfVertices获取多段线的节点个数,使用 GetPoint3dAt()方法循环获取每一个点的坐标、同时把节点坐标添加到数据集合和把点号注记在图面上,文字注记的基点位置就是每个点的位置。
  5. 保存数据集合;由于数据量不大,我们使用File.WriteAllLines()方法将数据集合全部导出txt文本文件。

CAD单行文字

使用单行文字时,每一行文字都是一个单独的对象。创建单行文字的方法是,首先创建DBText对象的实例,然后将其添加到代表模型空间或图纸空间的块表记录中。创建DBText对象的实例时,不用给构造函数传递任何参数。
DBText text = new DBText();

File类

File 类提供用于创建、复制、删除、移动和打开文件的静态方法,并协助创建 FileStream 对象。在使用File之前需要导入IO命名空间using System.IO;
使用WriteAllLines()方法将数据集合保存到文本文件中,这里面有是三个参数:第一、指定保存文件的路径;第二要保存的数据集合;第三、文件的编码,这里定义了UTF-8编码、防止出现乱码情况。

程序代码

在上面代码中,将获取实体外包矩形的中心点和向图面添加文字分别做成了自定义函数,同时也方便我们以后程序的使用、不需要重复写代码同时也减少代码的冗余。

向图面添加单行文字函数

获取实体外包矩形的中心点函数

程序执行

加载编写的应用程序,执行“ExPoints”命令。

  1. 选择多段线

  1. 指定保存文件的位置

  1. 查看保存的结果

进入本公众号后台
发送数字
5211
获取下载链接

C# | CAD批量导出多段线节点坐标(附源代码下载)相关推荐

  1. 使用Python实现从CAD中选择多段线并提取坐标

    使用Python实现从CAD中选择多段线并提取坐标 直接上代码案例 import pythoncom import win32com.clientdef vtpnt(x, y, z=0):return ...

  2. 利用CAD VBA批量插入多段线

    CAD VBA批量插入多段线,利用一维动态数组 Sub aa() '定义一个运行过程 Dim arr() As Double '定义一个空的动态数组 m = 4 '随便定一个值 nn = Array( ...

  3. CAD如何编辑多段线的顶点信息

    CAD如何编辑多段线的顶点信息, 1.在命令行输入Pedit(PE)命令: 2.选择需要修改的多段线: 3.在选择中之后,会出现以下选项:[闭合(C)/合并(J)/宽度(W)/编辑顶点(E)/拟合(F ...

  4. 百度云 职称计算机cad,2017年职称计算机CAD知识:多段线

    2017年职称计算机CAD知识:多段线 导语:在AutoCAD 2010中,用户可以一次编辑一条多段线,也可以同时编辑多条多段线.这些内容你都知道吗?我们一起来看看吧. 多段线 多段线是一种由直线段和 ...

  5. python读取cad_AutoCAD多段线定点坐标获取Python脚本

    AutoCAD 多段线定点坐标获取 Python 脚本 先前已经讨论过使用 Python 操作 AutoCAD 的方法, Python 的确是最适合编写批处理脚本的语言,但是 AutoCAD 中只提供 ...

  6. 基于FME实现CAD图的三维多段线批量转多段线工具,dwg三维多段线批量转多段线工具

    当CAD图中出现部分三维多段线时,在某些作图软件中无法识别,则需要将三维多段线修改为多段线.当三维多段线与其他的数据混合在一起,且数据量比较大时,人工修改非常麻烦. 下面介绍一种通过FME批量修改三维 ...

  7. 检查cad检查线压盖lisp_在CAD中对多段线进行拓扑检查

    4.在弹出的提示框中,点击  确定: 检查完成后,系统会弹出错误汇总提示框,便于您统计错误数量: 注意:鼠标右键单击项目可自动定位到项目. 下面,我为大家介绍每个检查项的错误原因及修改方法: 1.不是 ...

  8. CAD如何使用多段线命令?

    CAD梦想画图中如何使用多段线呢?我们用多段线来画一个箭头图案实际操作一下. 操作步骤 1.点击工具栏中的"绘图--多段线",根据提示,鼠标左键点击任意指定一点为起点. 绘图--多 ...

  9. cad的三维多段线怎么批量转成多段线

    没有cass的话,需要先安装cass. 地物编辑-复合线处理-3D转2D-输入(2),OK.

最新文章

  1. 库克称苹果不会学脸书发行加密货币
  2. 9月份准备备考RHCE 10份考试争取一次通过
  3. cmd 查看本地ip_西门子WinCCV7.4使用普通网卡通过TCP/IP连接PLC步骤
  4. Why IBASE category 03 is filtered out in creation
  5. spdk/dpdk 编译相关问题汇总
  6. 使用青云主机的GPU主机教程(不完整版)
  7. ubuntu 操作记录
  8. Linux下C语言的调试器 Gdb
  9. SqlLoader(Sqlldr) 的用法
  10. [转]PKM-个人知识体系建设
  11. 抢红包插件实现原理浅析
  12. P3332 [ZJOI2013]K大数查询
  13. 链表(Linked List)的C语言实现
  14. 【Lua】【协同程序】【coroutine】知识点详解
  15. java程序员面试时候经常会问的一些问题_面试JAVA程序员常遇到的一些问题了解一下...
  16. 单片机AD转换程序 TLC2543
  17. 【AE表达式】300多个人名正从宇宙中飞来……
  18. 求∑(k=1~100)k+∑(k=1~50)k2+∑(k=1~10)
  19. SDJZU_新生_递推动规_HDU 2084 数塔
  20. 在微型计算机中1 mb准确等于,2013全国计算机等考一级微机知识模拟试题1

热门文章

  1. wechat开发errorcode:40164
  2. python 生成器和迭代器
  3. VC++指定目录下文件按时间排序输出
  4. 八、CSS之元素的定位
  5. 【HEOI2015】小Z的房间
  6. 秒滴科技-短信验证码接口
  7. Java和Spring的六边形架构:在代码中体现“六角形建筑”
  8. 护壁桩嵌入深度_钻孔灌注桩入岩深度
  9. MATLAB--randperm函数
  10. 原来考研过后可以使我改变这么多?