sowo 发表于 2007-7-25 13:37:00

求一段代码,根据给出的点连接成线段[已解决]

本帖最后由 作者 于 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/>&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; <br/>&nbsp; Dim MyString As String<br/>&nbsp; Dim Arr As Variant <br/>&nbsp; Dim startpoint(0 To 2) As Double<br/>&nbsp; Dim endpoint(0 To 2) As Double<br/>&nbsp; Dim lineObj As AcadLine<br/>&nbsp; <br/>&nbsp; Open "f:\test.txt" For Input As #1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'&nbsp;&nbsp; 打开输入文件。<br/>&nbsp; <br/>&nbsp; While Not EOF(1)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '&nbsp;&nbsp; 循环至文件尾。<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Line Input #1, MyString&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '&nbsp;&nbsp; 将数据读入变量。<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Arr = Split(MyString, Chr(9))&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'把数据存入数组<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If CStr(Arr(0)) = "AddLaserLine" Then&nbsp;&nbsp;&nbsp; '字符匹配<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; startpoint(0) = CDbl(Arr(1))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; startpoint(1) = CDbl(Arr(2))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; startpoint(2) = CDbl(Arr(5))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; endpoint(0) = CDbl(Arr(3))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; endpoint(1) = CDbl(Arr(4))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; endpoint(2) = CDbl(Arr(5))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp; Set lineObj = ThisDrawing.ModelSpace.AddLine(startpoint, endpoint)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; End If<br/>&nbsp;&nbsp;&nbsp; Wend</p><p>&nbsp; Close #1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '&nbsp;&nbsp; 关闭文件。<br/>&nbsp;&nbsp;&nbsp; <br/>&nbsp; End Sub</p><p></p>

烟雨.江南 发表于 2007-7-25 14:32:00

本帖最后由 作者 于 2007-7-25 14:37:00 编辑 <br /><br /> <p>如果是用VBA的话,下面这样的函数就可以了</p><p>Function LinkPoints()<br/>Dim&nbsp; pts#(0 To 8)<br/>&nbsp;&nbsp;&nbsp; pts(0) = a1:&nbsp;&nbsp;&nbsp; pts(1) =&nbsp;b1:&nbsp;&nbsp;&nbsp; pts(2) =&nbsp;c1<br/>&nbsp;&nbsp;&nbsp; pts(3) = a2:&nbsp;&nbsp;&nbsp; pts(4) =&nbsp;b2:&nbsp;&nbsp;&nbsp; pts(5) =&nbsp;c2<br/>&nbsp;&nbsp;&nbsp; pts(6) = a3:&nbsp;&nbsp;&nbsp; pts(7) =&nbsp;b3:&nbsp;&nbsp;&nbsp; pts(8) =&nbsp;c3&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;Call ThisDrawing.ModelSpace.AddPolyline(pts)<br/>End Function<br/></p>

sowo 发表于 2007-7-25 16:26:00

谢ls!!这段代码我测试了一下,发现生成的线还是在2维平面上,这是为什么呢?我想要的是3维的效果!!
页: [1]
查看完整版本: 求一段代码,根据给出的点连接成线段[已解决]