乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 69|回复: 5

vb2005在cad中的问题

[复制链接]

1

主题

3

帖子

1

银币

初来乍到

Rank: 1

铜币
7
发表于 2012-5-4 17:11:00 | 显示全部楼层 |阅读模式
大侠们帮我看看,下面代码的最后一行错了,知怎么更正。
Dim acadapp As Autodesk..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的成员
       我该怎么做呢?
回复

使用道具 举报

10

主题

45

帖子

4

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
85
发表于 2012-5-4 18:18:00 | 显示全部楼层
感觉你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. _
  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
回复

使用道具 举报

1

主题

3

帖子

1

银币

初来乍到

Rank: 1

铜币
7
发表于 2012-5-4 21:06:00 | 显示全部楼层
楼上的大哥,能不能给个VBA的示例,我以前用VB6编过,现在换成.NET就不懂怎么办了。
回复

使用道具 举报

1

主题

3

帖子

1

银币

初来乍到

Rank: 1

铜币
7
发表于 2012-5-4 21:08:00 | 显示全部楼层
我现在是CAD能打开,就是直线绘制不出来
回复

使用道具 举报

32

主题

651

帖子

8

银币

中流砥柱

Rank: 25

铜币
779
发表于 2012-5-5 08:33:00 | 显示全部楼层
1,    Dim acaddoc As HtmlDocument 应该 是AcadDocument
2, 你的问题在 VBA/VB/ActiveX/API 编程技术 版块更好些。
回复

使用道具 举报

10

主题

45

帖子

4

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
85
发表于 2012-5-5 12:36:00 | 显示全部楼层
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
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-6-29 18:49 , Processed in 1.243381 second(s), 75 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表