关闭

AutoCAD的.NET二次开发2

标签: .netvb.netreferenceapidllclass
2237人阅读 评论(0) 收藏 举报

AutoCAD.NET开始

要开始为AutoCAD编写.NET程序,需要为AutoCAD2007下载ObjectARX SDK。SDK里面的samples/dotNet文件夹中有很多有用的例子,说明了如何使用AutoCAD的托管API的各种各样的特性。

随便提一下,SDK例子里面的那些工程文件等,一般是按Visual Studio的版本来保存的,这个版本的Visual Studio被推荐使用来为相应版本的AutoCAD构建ObjectARX(C++)程序。因此在ObjectARX 2006 SDK里面的工程是用VS2002,在ObjectARX2007中,则是用VS2005的。这些特定的VS版本并非一定要用于各个版本的AutoCAD的托管API(这是.NET一个很好的特性,因为这让你不需要一个特定的编译器版本),但为了一致性和测试工作,我们维持版本间的对应以构建相应的AutoCAD的ObjectARX/C++程序。

用于开始的最简单的经典例子是叫做“Hello World”的例子,暂时不对这个例子做深入的分析;先专注于如何使用ObjectARX向导来创建一个VB.NET程序。

在ObjectARX SDk的utils/ObjARXWiz文件夹中,有ObjectARX向导的安装程序ArxWizards.msi。将会使用ObjectARX SDK为AutoCAD2007提供的这个向导。

在安装后,当然就可以创建新的ObjectARX/C++工程;这个向导一个新的特性是添加了对VB.NET和C#的支持,这在你用VS2005创建一个新的工程的时候可以看到:

在选择OK后,有一个页面来配置工程:

选择“Finish”,就能设置需要的工程设置,并产生程序的基本代码,其中定义了一个简单的命令“Asdkcmd1”。

在我们说明代码前,这个向导做了什么?它创建了一个类库工程,添加了一对DLL引用定义AutoCAD中的托管API,如果你在工程中选择“Add Reference”,可在“Recent”列表中看到他们:

这里面有两个AutoCAD的核心引用:acdbmgd.dll和acmgd.dll,前者暴露了AcDb内部接口并支持类,后者暴露由AutoCAD程序指定的类(这两点不是很明白

下面来看看代码,非常直接--导入了一个命令空间(这会让我们在编程时省力些),然后定义了一个类来代表程序模块。这个类AdskClass定义了一个命令的回调函数,这会告诉AutoCADAsdkcmd1方法需要被注册成一个命令的方法,并在命令行中输入这个命令时就会运行这个函数。

 Imports Autodesk.AutoCAD.Runtime

    Public Class AdskClass

        ' Define command 'Asdkcmd1'

        <CommandMethod("Asdkcmd1")> _

        Public Sub Asdkcmd1()

            ' Type your code here

        End Sub

    End Class

就这么回事,看看它的工作,添加一个函数来调用命令函数,如MsgBox("Hello!),构建程序,并用AutoCAD的NETLOAD命令来载入产生的DLL。当在命令行中输入asdkcmd1时,你自定义的命令就会被调用。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:12291次
    • 积分:219
    • 等级:
    • 排名:千里之外
    • 原创:8篇
    • 转载:0篇
    • 译文:0篇
    • 评论:4条
    文章存档
    最新评论