刚来干活公司就给分配了任务,研究AutoCAD二次开发,希望能够开发出一个应用工具满足应用需求,作为熟悉C#的新员工,我当然责无旁贷的承担起了研究AutoCAD二次开发的重任,由于是二次开发,所以CAD环境和二次开发环境的配置就显得比较重要了,公司用的是AutoCAD2012 开发IDE为vs2010,首先安装开发环境,在此基础上安装CAD软件,网上关于CAD二次开发的教程有很多,其中有很多跟我们需求的环境不符合,也有一些很好的代码,在这里我就不详细介绍,这里主要介绍一下自己的环境配置和开发第一个HelloWorld程序的过程。
闲话不多说了,首先介绍一下CAD二次开发的一个基本概念,我们做二次开发一般都是组件式的开发方式,通过向CAD环境添加组件完成我们需要的功能,开发的主要方式是通过开发DLL然后附加到主程序的过程。在了解这个的基础上我们再来进行二次开发目标就比较明确了,首先建立一个DLL工程,然后通过AutoCAD的SDK完成我们需要的相应功能,最后通过组件形式将DLL加载到AutoCAD中,这样我们的二次开发的功能就能够使用了。
下面我们讲讲AutoCAD二次开发的一些方法,首先搭建开发环境,这个是最重要也是最基础的一步,搭建基础环境完成之后就可以进行开发了,首先进行HelloWorld程序的开发,此类开发可以说是所有语言入门必学的教程了,有了一个新世界我们才是这个世界的主宰,所以我们先向这个世界说Hello吧。首先打开C#程序,建立一个c#的动态链接库,添加上一下几个库的引用其中库分别为:<!><>,添加上这几个库之后就可以控制AutoCAD的各个菜单和主界面了,我们现在想再CAD的命令窗口输出HelloWorld的字符串。首先我们需要给出一个Command命令绑定,代码为:

1
[CommandMethod("HelloWorld")]

绑定之后我们在函数中添加代码,在CAD的命令行中调用Command命令就可以进行操作了。具体的操作代码为:

1
2
3
4
5
public void HelloWorld()  
{
Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;
ed.WriteMessage("Hello World");
}

分析以上代码可得,我们首先定义了一个命令,命令为HelloWorld,然后我们实现了函数HelloWorld,函数功能为在控制台输出HelloWorld,由此我们实现了整个开发过程
到此我们整个HelloWorld的代码就插入完成了,现在我们要加载我们的DLL然后调用HelloWorld命令,打开AutoCAD,在命令行中输入命令netload,这样我们可以选择我们编译得到的dll进行加载,再加载dll之后在命令行输入HelloWorld就可以实现再命令行显示我们的HelloWorld文字了,很多情况下我们发现没有此命令,为什么会出现这样的情况呢,因为函数必须是公有的,才能在外部进行调用,因此我们把函数的类型修改为public类型,这样重新编译和加载之后就能够看到命令了。