您的位置:网站首页 > CAD教程 > 常见问题

如何在cad中画出多条折线的图文说明

时间:2014-10-30 09:08:15 来源:未知

 

发现在cad中画出多点是很容易的,菜单中有相关的命令,输入命令后,在下面的文本框复制出以回车换行为分割的多个点就可以一次性画出多个点。但是一次性画图很多条不同的折线就很难,比如下面的文本中的3条线段:

'c:aa.txt中的原始格式 '第一列如果是0表示线的起点; 如果是255,表示连接上一个点
'0,700.000,103.500
'255,804.126,103.500
'255,1305.051,893.959
'255,4002.830,1993.054
'0,700.000,118.500
'255,795.874,118.500
'0,700.000,111.000
'255,800.000,111.000
'255,1300.000,900.000
'255,4000.000,2000.000

 

后来研究了1个小时,总算弄好了。需要注意的是,x和y如果是测量坐标,应该反这输入。

 

具体的方法是:cad主界面 "工具" - "宏" - "VB编辑器",以可以Alt + F11 一步到位。

双击左边栏的"ThisDrawing",然后出现代码输入框,复制下面的代码到框中:

 

Sub drawMultiLines()
'Call addLineXY(2, 2, 90, 90)
If Dir("c:aa.txt", vbNormal) <> "" Then '如果文件存在
Dim fileNumber As Integer
fileNumber = FreeFile
Dim strLine As String

Dim arr() As String
Dim xStart As Double '起点
Dim yStart As Double

Open "c:aa.txt" For Input As #fileNumber
Do While Not EOF(fileNumber)
Line Input #fileNumber, strLine
arr = Split(strLine, ",")
If arr(0) = "0" Then '如果是0表示线的起点
xStart = arr(1)
yStart = arr(2)
ElseIf arr(0) = "255" Then '如果是255,表示连接上一个点(xStart, yStart)
Call addLineXY(yStart, xStart, arr(2), arr(1)) '连接上一个点成为直线
xStart = arr(1)
yStart = arr(2)
Else
'dd
End If
Loop
Close #fileNumber
End If
End Sub

 

Public Function addLineXY(ByVal x1 As Double, ByVal y1 As Double, ByVal x2 As Double, ByVal y2 As Double) As AcadLine
Dim pt1(2) As Double
Dim pt2(2) As Double
pt1(0) = x1: pt1(1) = y1: pt1(2) = 0
pt2(0) = x2: pt2(1) = y2: pt2(2) = 0
Set addLineXY = ThisDrawing.ModelSpace.AddLine(pt1, pt2)
End Function
 


相关文章