求一段代码,根据给出的点连接成线段[已解决]
本帖最后由 作者 于 2007-7-26 14:14:23 编辑 <br /><br /> <p>比如给出A(a1,b1,c1),B(a2,b2,c2),C(a3,b3,c3)三个点的坐标,怎样把这3个点以A-B-C形式连接起来?</p><p>PS:我没有学过AUTOCAD,但是boss给出这样一个任务,要我把一组3维坐标连接起来画成立体图,不知道AUTOCAD能不能实现这样的功能?如果能的话,可否给出一段代码参考?不胜感激!</p><p>---------------------------------</p><p>经过研究,已经解决了问题,感谢2楼的朋友,代码如下</p><p>Private Sub AddLine()<br/> <br/> <br/> Dim MyString As String<br/> Dim Arr As Variant <br/> Dim startpoint(0 To 2) As Double<br/> Dim endpoint(0 To 2) As Double<br/> Dim lineObj As AcadLine<br/> <br/> Open "f:\test.txt" For Input As #1 ' 打开输入文件。<br/> <br/> While Not EOF(1) ' 循环至文件尾。<br/> Line Input #1, MyString ' 将数据读入变量。<br/> Arr = Split(MyString, Chr(9)) '把数据存入数组<br/> <br/> If CStr(Arr(0)) = "AddLaserLine" Then '字符匹配<br/> startpoint(0) = CDbl(Arr(1))<br/> startpoint(1) = CDbl(Arr(2))<br/> startpoint(2) = CDbl(Arr(5))<br/> <br/> endpoint(0) = CDbl(Arr(3))<br/> endpoint(1) = CDbl(Arr(4))<br/> endpoint(2) = CDbl(Arr(5))<br/> <br/> Set lineObj = ThisDrawing.ModelSpace.AddLine(startpoint, endpoint)<br/> <br/> End If<br/> Wend</p><p> Close #1 ' 关闭文件。<br/> <br/> End Sub</p><p></p> 本帖最后由 作者 于 2007-7-25 14:37:00 编辑 <br /><br /> <p>如果是用VBA的话,下面这样的函数就可以了</p><p>Function LinkPoints()<br/>Dim pts#(0 To 8)<br/> pts(0) = a1: pts(1) = b1: pts(2) = c1<br/> pts(3) = a2: pts(4) = b2: pts(5) = c2<br/> pts(6) = a3: pts(7) = b3: pts(8) = c3 <br/> Call ThisDrawing.ModelSpace.AddPolyline(pts)<br/>End Function<br/></p> 谢ls!!这段代码我测试了一下,发现生成的线还是在2维平面上,这是为什么呢?我想要的是3维的效果!!
页:
[1]