谁能提供一段vb在CAD中绘制多段线的实例代码作参考!
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了谁能提供一段vb在CAD中绘制多段线的实例代码作参考!相关的知识,希望对你有一定的参考价值。
参考技术A 多线段没画过,线倒是画过,二话不说直接上代码你参考一下
绘制边框
Private Sub Command4_Click()
Set acadDoc = acadApp.ActiveDocument
link2
acadDoc.ActiveLayer = acadlay(0)
With adoRes
While Not .EOF
pt1(0) = !X: pt1(1) = !Y: pt1(2) = !z: pt2(0) = !X1: pt2(1) = !Y1: pt2(2) = !z1
draw pt1, pt2
.MoveNext
Wend
End With
pt1(0) = 0: pt1(1) = 0: pt1(2) = 0
pt2(0) = 20: pt2(1) = 10: pt2(2) = 0
draw pt1, pt2
'在坡
pt1(0) = 0: pt1(1) = 0: pt1(2) = 0
pt2(0) = 20: pt2(1) = 10: pt2(2) = 0
draw pt1, pt2
For c = 0 To 50 Step 10
pt1(0) = 0: pt1(1) = c: pt1(2) = 0
pt2(0) = 270: pt2(1) = c: pt2(2) = 0
draw pt1, pt2
Next c
pt1(0) = 20: pt1(1) = 0: pt1(2) = 0
pt2(0) = 20: pt2(1) = 190: pt2(2) = 0
draw pt1, pt2
pt1(0) = 0: pt1(1) = 0: pt1(2) = 0
pt2(0) = 0: pt2(1) = -10: pt2(2) = 0
draw pt1, pt2
pt1(0) = 0: pt1(1) = -10: pt1(2) = 0
pt2(0) = 270: pt2(1) = -10: pt2(2) = 0
draw pt1, pt2
pt1(0) = 270: pt1(1) = -10: pt1(2) = 0
pt2(0) = 270: pt2(1) = 0: pt2(2) = 0
draw pt1, pt2
pt3(0) = 5: pt3(1) = -7
acadDoc.ModelSpace.AddText t, pt3, 4
pt3(0) = 55: pt3(1) = -7
acadDoc.ModelSpace.AddText t1, pt3, 4
a = 0
For c = 60 To 100 Step 10
pt1(0) = 20: pt1(1) = c: pt1(2) = 0
pt2(0) = 23: pt2(1) = c: pt2(2) = 0
draw pt1, pt2
pt1(0) = 10: pt1(1) = c - 1.6: pt1(2) = 0
acadDoc.ModelSpace.AddText a, pt1, 3.2
a = a + 2
Next c
'在图中加入地面高程
acadDoc.ActiveTextStyle = acadDoc.TextStyles.Add("楷体")
pt1(0) = 1: pt1(1) = 13: pt1(2) = 0
Set acadtext = acadDoc.ModelSpace.AddText("地面高程", pt1, 3.2)
Call rote1(acadtext, pt1)
'在图中加入设计高程
Call rote1(acadtext, pt1)
pt1(0) = 1: pt1(1) = 23: pt1(2) = 0
Set acadtext = acadDoc.ModelSpace.AddText("设计高程", pt1, 3.2)
Call rote1(acadtext, pt1)
'在图中加入填挖高
pt1(0) = 1: pt1(1) = 33: pt1(2) = 0
Set acadtext = acadDoc.ModelSpace.AddText("填 挖 高", pt1, 3.2)
Call rote1(acadtext, pt1)
'在图中加入坡度/坡长
pt1(0) = 0: pt1(1) = 5.5: pt1(2) = 0
Set acadtext = acadDoc.ModelSpace.AddText("坡 度", pt1, 3.2)
Call rote1(acadtext, pt1)
pt1(0) = 9: pt1(1) = 1: pt1(2) = 0
Set acadtext = acadDoc.ModelSpace.AddText("坡 长", pt1, 3.2)
Call rote1(acadtext, pt1)
'在图中加入桩号
pt1(0) = 1: pt1(1) = 43: pt1(2) = 0
Set acadtext = acadDoc.ModelSpace.AddText("桩 号", pt1, 3.2)
Call rote1(acadtext, pt1)
Call Command5_Click
End Sub
Private Sub draw(pt1, pt2)
Set AcadLine = acadDoc.ModelSpace.AddLine(pt1, pt2)
acadDoc.Regen acActiveViewport
End Sub
线倒是画过,二话不说直接上代码你参考一下本回答被提问者和网友采纳
C# | CAD批量导出多段线节点坐标(附源代码下载)
在日常工作内容中经常需要用到提取CAD图面坐标点,用于放样和其他软件做交换数据使用;比如导出测量点坐标、多段线节点,图块点等。导出点坐标可以用CAD的“DATAEXTRACTION”命令创建数据提取将数据导出(如图一);对于单条多段线的坐标也可以使用“LIST”命令把多段线的坐标打印在命令上(如图二)、然后将坐标复制出来;如果图面数据比较多的情况下,这种作业效率显而太低,下面做一个将图面所有多段线节点坐标导出的功能,并在每个地块上标注一个地块名字和标注每个地块的节点点号,方便和图面和数据文件对比。这里用到了CAD文字实体添加、文件保存等操作。(文末有源代码下载)
图一
图二
1. 创建一个List<string>数据集合,用于存储地块名字和每条多段线节点坐标。
2. 过滤选择图上所有多段线,获取选择实体的objectId集合。
3. 循环选择集,根据objectId获取多段线实体和实体外包矩形的中心点(注记地块名字的基点位置),并将地块的名字加到数据集合中和注记在图面上。
4. 使用Polyline的NumberOfVertices获取多段线的节点个数,使用 GetPoint3dAt()方法循环获取每一个点的坐标、同时把节点坐标添加到数据集合和把点号注记在图面上,文字注记的基点位置就是每个点的位置。
5. 保存数据集合;由于数据量不大,我们使用File.WriteAllLines()方法将数据集合全部导出txt文本文件。
使用单行文字时,每一行文字都是一个单独的对象。创建单行文字的方法是,首先创建DBText对象的实例,然后将其添加到代表模型空间或图纸空间的块表记录中。创建DBText对象的实例时,不用给构造函数传递任何参数。
DBText text = new DBText();
单行文字属性
File 类提供用于创建、复制、删除、移动和打开文件的静态方法,并协助创建 FileStream 对象。在使用File之前需要导入IO命名空间using System.IO;
使用WriteAllLines()方法将数据集合保存到文本文件中,这里面有是三个参数:第一、指定保存文件的路径;第二要保存的数据集合;第三、文件的编码,这里定义了UTF-8编码、防止出现乱码情况。
程序代码
在上面代码中,将获取实体外包矩形的中心点和向图面添加文字分别做成了自定义函数,同时也方便我们以后程序的使用、不需要重复写代码同时也减少代码的冗余。
添加单行文字
外包矩形的中心点
加载编写的应用程序,执行“ExPoints”命令。
1. 选择多段线
2. 指定保存文件的位置
3. 查看保存的结果
发送数字
5211
获取下载链接
- END -
以上是关于谁能提供一段vb在CAD中绘制多段线的实例代码作参考!的主要内容,如果未能解决你的问题,请参考以下文章