|
《delphi.net二次开发AutoCAD》系列文章是2010年我学习autocad .net二次开发的时候写在自己的论坛中的,当时用的一个免费论坛,不知道什么原因被关闭了,文章也没取出来。现在又开通了,抓紧把文章down下来重新发布到这里。
废话不多说,文章如下:
个人比较喜欢使用delphi进行小软件的制作,学的不是很深,可以通过其对AutoCAD进行二次开发,使用的是Com接口。但是从2011版本开始CAD对VBA的支持实在是有点让人郁闷,先前做过的一些程序在AutoCAD2011上运行总是会出现一些错误,尽管做了努力,但还是不行(可能是我水平不够)。看了autodesk官方的说法,将在CAD2012版本中取消对VBA的支持,对于我不熟悉其他语言的人来说无异于当头一棒,所以现在在加紧学习.net技术。
CAD提供的.net例子都是通过VB.net或c#.net一类的,现在通过学习VB.net的一些例子,开始我们的delphi.net二次开发AutoCAD之旅。
首先我们编写hello world程序。该程序以http://www.objectarx.net论坛,才鸟的教程为参考进行编写,在此感谢才鸟。大家可以到哪里获得更多的其他语言的开发知识,这里只讨论delphi。
在delphi prism XE中新建一个Class Library项目,编辑代码如下:- namespace ClassLibrary1;
- interface
- uses
- Autodesk.AutoCAD.Runtime, Autodesk.AutoCAD.ApplicationServices,Autodesk.AutoCAD.EditorInput;
- type
- Class1 =public class //新建的项目没有Public关键字,需要自己添加一下(我也刚开始用,不知道怎么自动添加)
- private
- public
- [CommandMethod('Hello')]//CommandMethod必须定义在这里,如果是普通的Win32 DLL项目等同于Exports
- class method Hello;//调用的方法
- end;
- implementation
- class method Class1.hello;
- var
- ed:Editor;
- begin
- ed:=Application.DocumentManager.MdiActiveDocument.Editor;
- ed.WriteMessage('欢迎进入.NET开发AutoCAD的世界!');
- end;
- end.
- 设置编译环境的外部程序为AutoCAD2011(那个速度启动太慢,等的着急啊,不过为了学习知识还得硬着头皮启动)。然后在cad命令行输入命令netload,加载刚才生成的ClassLibrary1.dll。如果加载失败,则返回编译器,设置AutoCAD的两个.net引用的本地复制属性为false重新加载即可。加载完毕后,在命令行输入hello并回车,则出现“欢迎进入.NET开发AutoCAD的世界!”提示
- 以上代码在Delphi Prism XE+win7+AutoCAD2011下测试成功。
复制代码 |
|