AutoCAD的.NET二次开发2

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时,你自定义的命令就会被调用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值