在VB中得出了五个坐标: 500,500
                    710.37,596.34
                    794.22,414.34
                    713.97,187.17
                    475.9,299.8
                    500,500
五个数据在自动生成的记事本里(在VB文本框里也有),请问怎样能自动使这五个坐标输入Autocad,并依次用直线连接起来。最后自动生成并保存图形。

解决方案 »

  1.   

    在VB中引用autocad
    调用autocad,代码如下
    On Error Resume Next                                    '连接AutoCAD
    Set AcadApp = GetObject(, "AutoCAD.Application")
    If Err Then
     Err.Clear
     Set AcadApp = CreateObject("AutoCAD.Application")
    If Err Then
    MsgBox ("不能运行AutoCAD,请检查是否安装了AutoCAD")
    Exit Sub
    End If
    End If
    AcadApp.WindowState = acMax
    AcadApp.Visible = True
    Dim lineobj As AcadLine
    Set lineobj = AcadApp.ActiveDocument.ModelSpace.AddLine(Startpoint, Endpoint)
    好好看看就明白啦!
      

  2.   


    On Error Resume Next                                    '连接AutoCAD
    Set AcadApp = GetObject(, "AutoCAD.Application")
    If Err Then
    Err.Clear
    Set AcadApp = CreateObject("AutoCAD.Application")
    If Err Then
    MsgBox ("不能运行AutoCAD,请检查是否安装了AutoCAD")
    Exit Sub
    End If
    End If
    AcadApp.WindowState = acMax
    AcadApp.Visible = True
    Dim lineobj As AcadLine
    Dim startPoint(0 To 2) As Double
    Dim endPoint(0 To 2) As Double
    startPoint(0) = Val(Text1(0))
    startPoint(1) = Val(Text1(1))
    startPoint(2) = Val(Text1(2))
    endPoint(0) = Val(Text2(0))
    endPoint(1) = Val(Text2(1))
    endPoint(2) = Val(Text2(2))
    Set lineobj = acadDoc.ModelSpace.AddLine(startPoint, endPoint)
    End Function
    就是画线部分,它告诉我“用户类型未定义”,还有麻烦检查下代码有无问题
      

  3.   

    加一条代码:
    set acadDoc=AcadApp.ActiceDocument
    On Error Resume Next                                    '连接AutoCAD 
    Set AcadApp = GetObject(, "AutoCAD.Application") 
    If Err Then 
    Err.Clear 
    Set AcadApp = CreateObject("AutoCAD.Application") 
    If Err Then 
    MsgBox ("不能运行AutoCAD,请检查是否安装了AutoCAD") 
    Exit Sub 
    End If 
    End If 
    AcadApp.WindowState = acMax 
    AcadApp.Visible = True 
    Dim lineobj As AcadLine 
    set acadDoc=AcadApp.ActiceDocument
    Dim startPoint(0 To 2) As Double 
    Dim endPoint(0 To 2) As Double 
    startPoint(0) = Val(Text1(0)) 
    startPoint(1) = Val(Text1(1)) 
    startPoint(2) = Val(Text1(2)) 
    endPoint(0) = Val(Text2(0)) 
    endPoint(1) = Val(Text2(1)) 
    endPoint(2) = Val(Text2(2)) 
    Set lineobj = acadDoc.ModelSpace.AddLine(startPoint, endPoint) 
      

  4.   

    还是一样的,在Dim lineobj As AcadLine 处就停住了并说"用户类型未定义",执行不到set acadDoc=AcadApp.ActiceDocument
      

  5.   

    一楼说的很清楚
    在VB中引用autocad 
      

  6.   

    Private Sub Command1_Click()
    Shell ("C:\Program Files\AutoCAD 2004\acad")
    On Error Resume Next                                    '连接AutoCAD
    Set AcadApp = GetObject(, "AutoCAD.Application")
    If Err Then
    Err.Clear
    Set AcadApp = CreateObject("AutoCAD.Application")
    If Err Then
    MsgBox ("不能运行AutoCAD,请检查是否安装了AutoCAD")
    Exit Sub
    End If
    End If
    AcadApp.WindowState = acMax
    AcadApp.Visible = True
    Dim lineobj As AcadLine
    Set acadDoc = AcadApp.ActiceDocument
    Dim startPoint(0 To 2) As Double
    Dim endPoint(0 To 2) As Double
    startPoint(0) = Val(Text1(0))
    startPoint(1) = Val(Text1(1))
    startPoint(2) = Val(Text1(2))
    endPoint(0) = Val(Text2(0))
    endPoint(1) = Val(Text2(1))
    endPoint(2) = Val(Text2(2))
    Set lineobj = acadDoc.ModelSpace.AddLine(startPoint, endPoint)
    End Sub这样可以了吧,我开始就调用了AUTOCAD了,还是一样的问题。我的程序界面只有一个Command1,一个text1(2)即三个文本框X坐标,一个text2(2)即三个文本框Y坐标。单击事件的代码就是以上那些,能不能麻烦检查下哪里出错了,为什么一运行就说用户类型未定义。本人初学,不知引用AUTOCAD是什么?
      

  7.   

    Dim lineobj As AcadLine 请问在VB中没有ACADLINE,怎么用,或者是怎样能使它定义正确。
      

  8.   

    VB 里面菜单操作.工程=>引用... 
    出现对话框选择 AutoCad 2005 (版本号,我的是2005) 让其打上勾就行了/
      

  9.   

    哦,在百度上找到了,谢谢。从“工程”菜单中选择“引用”选项,启动“引用”对话框 
    在“引用”对话框中,选择 AutoCAD 类型库,然后单击“确定”。
    原来这个是引用,实在抱歉。但是我的图形还是不会自己画线,也只是调用了AUtocad。是不是后面的又写错了,请帮帮忙。万分感谢
      

  10.   

    上面的方法都很好,但如果就这么简单的话,不如这么操作一下
    L
    710.37,596.34
    794.22,414.34
    713.97,187.17
    475.9,299.8
    500,500你从L复制到本行的上一行(也就是500,500后有两次回车),粘贴到AUTOCAD命令行,你所要的曲线就出来了。
      

  11.   


    不用做任何引用,你就把这段代码贴到你的程序里,建个COMMAND1按钮,就能打开AUTOCADPrivate Sub Command1_Click()
    Set objacad = GetObject("", "autocad.application")
    objacad.Visible = True
    End Sub
      

  12.   

    Private Sub Command1_Click()
    Dim OBJACAD As Object
    Set OBJACAD = GetObject("", "autocad.application")OBJACAD.Visible = True
    End Sub
    对不起,得加上上面红色代码
      

  13.   

    目前我找到的只有;If MsgBox("") = vbYes Then
    acadDoc.Save
    Else: ThisWorkbook.Saved = True
    End If
    这个可以是可以保存了,可是保存在不是我要的路径里。