明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2745|回复: 4

[求助]Auto CAD VBA&VB.Net开发基础与实例教程 例题问题请教

[复制链接]
发表于 2009-8-16 17:35:00 | 显示全部楼层 |阅读模式

刚接触VB.net,跟着书本例题写,碰到2个问题:VS2005 + AutoCAD2010

1:书290页:Dim db As Database = HostApplicationService.WorkingDatabass 

   提示:未声明名称 HostApplicationService  ?

2:书280页,最后两行输入后

  提示:语句在命名空间中无效   ?

[/upload]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
 楼主| 发表于 2009-8-16 17:36:00 | 显示全部楼层

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2009-8-16 18:04:00 | 显示全部楼层
1、引用Autodesk.AutoCAD.DatabaseServices
2、
  1. Imports Autodesk.AutoCAD.Runtime
  2. Imports Autodesk.AutoCAD.ApplicationSerVices
  3. Imports Autodesk.AutoCAD.EditorInput
  4. <Assembly: ExtensionApplication(GetType(ManagedApp.Init))>
  5. <Assembly: CommandClass(GetType(ManagedApp.Commands))>
  6. Namespace ManagedApp
  7.     Public Class Init
  8.         Implements IExtensionApplication
  9.         Public Sub Initialize() Implements Autodesk.AutoCAD.Runtime.IExtensionApplication.Initialize
  10.             Dim ed As Editor = Application.DocumentManager.MdiActiveDocument.Editor
  11.             ' 在AutoCAD命令行上显示一些信息,它们会在程序载入时被显示
  12.             ed.WriteMessage("程序开始初始化")
  13.         End Sub
  14.         Public Sub Terminate() Implements Autodesk.AutoCAD.Runtime.IExtensionApplication.Terminate
  15.             ' 在 VisualStudio 2005的输出窗口上显示程序结束的信息
  16.             Debug.WriteLine("程序结束,你可以在这里做一些清理工作,如关闭AutoCAD文档")
  17.         End Sub
  18.     End Class
  19.     Public Class Commands
  20.         <CommandMethod("LoadAssembly")> _
  21.          Public Sub LoadAssembly()
  22.             Dim ed As Editor = Application.DocumentManager.MdiActiveDocument.Editor
  23.             '  Hello.dll程序的文件名
  24.             Dim fileName As String = "I:/vb.net/Hello/hello.dll"
  25.             ' 载入 Hello.dll程序集
  26.             ExtensionLoader.Load(fileName)
  27.             ' 在命令行上显示信息,提示用户 Hello.dll程序集已经被载入
  28.             ed.WriteMessage(vbCrLf & fileName & "被载入,请输入Hello进行测试!")
  29.         End Sub
  30.     End Class
  31. End Namespace
 楼主| 发表于 2009-8-20 13:57:00 | 显示全部楼层

谢谢3楼,问题2中19行 publia class 写成 public Sub 了。

问题1 我第一行就引用了啊 ?

Imports Autodesk.AutoCAD.DatabaseServices
Imports Autodesk.AutoCAD.Geometry
Imports Autodesk.AutoCAD.Runtime
Public Class Class1
    ' 创建直线命令
    <CommandMethod("FirstLine")> Public Sub TestLine()
        ' 得到当前文件的数据对象
        Dim db As Database = HostApplicationService.WorkingDatabass
        ' 定义直线对象的起点
        Dim pt1 As New Point3d(300, 100, 0)
        ' 定义直线对象的终点
        Dim pt2 As New Point3d(900, 500, 0)
        ' 在内存中创建一个直线对象
        Dim lineEnt As New Line(pt1, pt2)
        Using Trans As Transaction = db.TransactionManager.StartOpenCloseTransaction()
            ' 以读方式打开块表
            Dim bt As BlockTable = Trans.GetObject(db.BlockTableId, OpenMode.ForRead)
            ' 以写方式打开模型空间块表记录
            Dim btr As BlockTableRecord = Trans.GetObject(bt.Item(BlockTableRecord.ModelSpace), OpenMode.ForWrite)
            ' 将图形对象的信息添加到块表中,并返回ObjectId对象
            btr.AppendEntity(lineEnt)
            ' 把直线添加到事务处理中
            Trans.AddNewlyCreatedDBObject(lineEnt, True)
            ' 提交事务处理
            Trans.Commit()


        End Using

    End Sub
End Class

发表于 2009-8-26 10:16:00 | 显示全部楼层
好啊好啊,谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-26 05:40 , Processed in 0.165256 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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