明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1491|回复: 5

vb2005在cad中的问题

[复制链接]
发表于 2012-5-4 17:11:39 | 显示全部楼层 |阅读模式
大侠们帮我看看,下面代码的最后一行错了,知怎么更正。
Dim acadapp As Autodesk.AutoCAD.Interop.AcadApplication
        Dim acaddoc As HtmlDocument
        On Error Resume Next
        acadapp = GetObject(, "AutoCAD.Application")      '连接到CAD应用软件
        If Err.Number Then
            Err.Clear()
            acadapp = CreateObject("AutoCAD.Application") '创建CAD对象
            If Err.Number Then
                MsgBox("请检查是否安装了CAD!")
                Exit Sub
            End If
        End If
        acadapp.Visible = True
        acaddoc = acadapp.ActiveDocument   '设置CAD为活动文档

        Dim lineobj As AcadLine               '绘制断面图
        Dim arcobj As AcadArc
        Dim shuhao, total As Integer
        Dim yxx, yxy, r, barc, earc, lx, Radius, startangle, endangle, weiyan As Double
        Dim startpoint(0 To 2) As Double
        Dim endpoint(0 To 2) As Double
        Dim centerpoint(0 To 2) As Double
        Dim arc As String
        weiyan = Val(TextBox8.Text)   '衬砌厚度
        Dim shuhao3 As Integer
        Dim qdzh, zdzh, qddmg, zddmg, h4, k As Double
        lineobj = acaddoc.ModelSpace.AddLine(startpoint, endpoint

题示:ModelSpace不是system.windows.forms.HTMLdocument的成员
       我该怎么做呢?
发表于 2012-5-4 18:18:24 | 显示全部楼层
感觉你VBA 和.net用混了。你可以引用 CAD  type library 继续使用VBA方法来创建直线。也可以使用VBA方法,首先引用acmgd.dll  acdbmgd.dll 然后代码如下:
  1. Imports Autodesk.AutoCAD.Runtime
  2. Imports Autodesk.AutoCAD.ApplicationServices
  3. Imports Autodesk.AutoCAD.DatabaseServices
  4. Imports Autodesk.AutoCAD.Geometry

  5. <CommandMethod("AddLine")> _
  6. Public Sub AddLine()
  7.   '' 获得当前文档和数据库   Get the current document and database
  8.   Dim acDoc As Document = Application.DocumentManager.MdiActiveDocument
  9.   Dim acCurDb As Database = acDoc.Database

  10.   ''启动一个事务   Start a transaction
  11.   Using acTrans As Transaction = acCurDb.TransactionManager.StartTransaction()

  12.       '' 以只读方式打开块表   Open the Block table for read
  13.       Dim acBlkTbl As BlockTable
  14.       acBlkTbl = acTrans.GetObject(acCurDb.BlockTableId, OpenMode.ForRead)

  15.       '' 以写方式打开模型空间块表记录   Open the Block table record Model space for write
  16.       Dim acBlkTblRec As BlockTableRecord
  17.       acBlkTblRec = acTrans.GetObject(acBlkTbl(BlockTableRecord.ModelSpace), _
  18.                                       OpenMode.ForWrite)

  19.       '' 创建一条起点为(5,5,0),终点为(12,3,0)的直线  Create a line that starts at 5,5 and ends at 12,3
  20.       Dim acLine As Line = New Line(New Point3d(5, 5, 0), _
  21.                                     New Point3d(12, 3, 0))

  22.       acLine.SetDatabaseDefaults()

  23.       '' 添加新对象到块表记录和事务中   Add the new object to the block table record and the transaction
  24.       acBlkTblRec.AppendEntity(acLine)
  25.       acTrans.AddNewlyCreatedDBObject(acLine, True)

  26.       '' 保存新对象到数据库中   Save the new object to the database
  27.       acTrans.Commit()
  28.   End Using
  29. End Sub
 楼主| 发表于 2012-5-4 21:06:23 | 显示全部楼层
楼上的大哥,能不能给个VBA的示例,我以前用VB6编过,现在换成.NET就不懂怎么办了。
 楼主| 发表于 2012-5-4 21:08:19 | 显示全部楼层
我现在是CAD能打开,就是直线绘制不出来

发表于 2012-5-5 08:33:13 | 显示全部楼层
1,    Dim acaddoc As HtmlDocument 应该 是AcadDocument
2, 你的问题在 VBA/VB/ActiveX/API 编程技术 版块更好些。
发表于 2012-5-5 12:36:30 | 显示全部楼层
VB6是VB,VB2005是vb.net,不清楚你到底要用什么编辑器。VBA是CAD自带的编译器,语法同VB6。代码漫天都是。下面是VBA里面添加线的代码,如果用VB6稍作修改就行了。
  1. Sub Example_AddLine()
  2.     ' 该示例在模型空间中添加直线。
  3.    
  4.     Dim lineObj As AcadLine
  5.     Dim startPoint(0 To 2) As Double
  6.     Dim endPoint(0 To 2) As Double
  7.    
  8.     ' 定义直线的起点和终点
  9.     startPoint(0) = 1#: startPoint(1) = 1#: startPoint(2) = 0#
  10.     endPoint(0) = 5#: endPoint(1) = 5#: endPoint(2) = 0#
  11.    
  12.     ' 在模型空间中创建直线
  13.     Set lineObj = ThisDrawing.ModelSpace.AddLine(startPoint, endPoint)
  14.     ZoomAll
  15.    
  16. End Sub
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 18:58 , Processed in 0.182757 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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