明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1305|回复: 2

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

[复制链接]
发表于 2007-7-25 13:37:00 | 显示全部楼层 |阅读模式
本帖最后由 作者 于 2007-7-26 14:14:23 编辑

比如给出A(a1,b1,c1),B(a2,b2,c2),C(a3,b3,c3)三个点的坐标,怎样把这3个点以A-B-C形式连接起来?

PS:我没有学过AutoCAD,但是boss给出这样一个任务,要我把一组3维坐标连接起来画成立体图,不知道AUTOCAD能不能实现这样的功能?如果能的话,可否给出一段代码参考?不胜感激!

---------------------------------

经过研究,已经解决了问题,感谢2楼的朋友,代码如下

Private Sub AddLine()
  
   
  Dim MyString As String
  Dim Arr As Variant
  Dim startpoint(0 To 2) As Double
  Dim endpoint(0 To 2) As Double
  Dim lineObj As AcadLine
 
  Open "f:\test.txt" For Input As #1                    '   打开输入文件。
 
  While Not EOF(1)             '   循环至文件尾。
       Line Input #1, MyString           '   将数据读入变量。
        Arr = Split(MyString, Chr(9))      '把数据存入数组
        
        If CStr(Arr(0)) = "AddLaserLine" Then    '字符匹配
        startpoint(0) = CDbl(Arr(1))
        startpoint(1) = CDbl(Arr(2))
        startpoint(2) = CDbl(Arr(5))
       
        endpoint(0) = CDbl(Arr(3))
        endpoint(1) = CDbl(Arr(4))
        endpoint(2) = CDbl(Arr(5))
       
     Set lineObj = ThisDrawing.ModelSpace.AddLine(startpoint, endpoint)
        
    End If
    Wend

  Close #1         '   关闭文件。
   
  End Sub

发表于 2007-7-25 14:32:00 | 显示全部楼层
本帖最后由 作者 于 2007-7-25 14:37:00 编辑

如果是用VBA的话,下面这样的函数就可以了

Function LinkPoints()
Dim  pts#(0 To 8)
    pts(0) = a1:    pts(1) = b1:    pts(2) = c1
    pts(3) = a2:    pts(4) = b2:    pts(5) = c2
    pts(6) = a3:    pts(7) = b3:    pts(8) = c3 
    Call ThisDrawing.ModelSpace.AddPolyline(pts)
End Function

 楼主| 发表于 2007-7-25 16:26:00 | 显示全部楼层
谢ls!!这段代码我测试了一下,发现生成的线还是在2维平面上,这是为什么呢?我想要的是3维的效果!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-30 02:33 , Processed in 0.194724 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表