怎么利用EXCEL vba 在CAD上画多段线

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么利用EXCEL vba 在CAD上画多段线相关的知识,希望对你有一定的参考价值。

1、复制计算出的坐标到excel中,分为X、Y两列坐标
2、把X、Y坐标用逗号(英文状态)连接在一起,excel里用公式&","&连接
3、选中坐标组,复制(这样数据暂时都保存在粘贴板里)
4、打开cad软件,新建文件或者在你需要绘制的文件里,输入spl命令(或者点击工具栏图标『样条曲线』)
5、直接Ctrl+V粘贴(或者在命令行右键菜单“粘贴”)刚才复制的坐标组,然后回车确定
6、双击滚轮显示全部对象,可以看到曲线已经画好了
参考技术A 可以使用ACTIVEX 这个,你百度一下这个东西的原理吧,大致是将CAD作为服务器,用VBA在EXCEL中当成客户端,然后来控制CAD画图,大致的命令可以用 AAAPPP=CreatObject(”AutoCad.Application.22“)启动并连接CAD对象,
也可以用AAAPPP=GetObject("AutoCAD.Application.22")取得已启动的CAD对象,,
用ACADDOCS=AAAPPP.Documents ,是CAD文档集合,
ADOC=AAAPPP.ActiveDocume,是DWG文档,
ACADMOD=ADOC.ModelSpace是模型空间,,
在模型空间中画一条直线是这样的ACADMOD.AddLine(StartPoint, EndPoint),,,
-----------------你需要学的东西还有很多哦,祝你学习愉快
参考技术B 利用EXCEL的vba在CAD上画多段线。
1、需要调用CAD的命令;
2、需要对CAD命令有非常强的理解。
一般很多都是用CAD的LISP编程读取EXCEL里的X、Y值数据来画图的。
所以学习LISP来处理吧!

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


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

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

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

图一


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

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

图二


程序设计过程



1. 创建一个List<string>数据集合,用于存储地块名字和每条多段线节点坐标。

2. 过滤选择图上所有多段线,获取选择实体的objectId集合。

3. 循环选择集,根据objectId获取多段线实体和实体外包矩形的中心点(注记地块名字的基点位置),并将地块的名字加到数据集合中和注记在图面上。

4. 使用Polyline的NumberOfVertices获取多段线的节点个数,使用 GetPoint3dAt()方法循环获取每一个点的坐标、同时把节点坐标添加到数据集合和把点号注记在图面上,文字注记的基点位置就是每个点的位置。

5. 保存数据集合;由于数据量不大,我们使用File.WriteAllLines()方法将数据集合全部导出txt文本文件。


CAD单行文字



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

DBText text = new DBText();

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

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

单行文字属性


File类



File 类提供用于创建、复制、删除、移动和打开文件的静态方法,并协助创建 FileStream 对象。在使用File之前需要导入IO命名空间using System.IO;

使用WriteAllLines()方法将数据集合保存到文本文件中,这里面有是三个参数:第一、指定保存文件的路径;第二要保存的数据集合;第三、文件的编码,这里定义了UTF-8编码、防止出现乱码情况。


程序代码


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

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

程序代码


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


向图面添加单行文字函数


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

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

添加单行文字


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


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

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

外包矩形的中心点


程序执行



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

1. 选择多段线

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

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


2. 指定保存文件的位置

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

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


3. 查看保存的结果

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

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

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

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

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



发送数字

5211

获取下载链接


C# | CAD批量导出多段线节点坐标(附源代码下载) - END -

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







戳原文,更有料!

以上是关于怎么利用EXCEL vba 在CAD上画多段线的主要内容,如果未能解决你的问题,请参考以下文章

vba在cad中画直线和圆弧多段线

怎么从Auto CAD中提取多段线坐标?

多段线切割多边形

pedit命令

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

如何用vba实现在EXCEL固定区域坐标内点击单元格,显示日期控件