EaBIM一直以来积极响应国家“十二五”推进建筑业信息化的号召,对建筑领域的信息技术开展深入技术交流和探讨!致力于打造“BIM-建筑师-生态技术”三位一体综合资源交流共享平台,希望为BIM与可持续设计理念及技术的普及做出微小的贡献!!!

萧闫子 发表于 2014-1-8 14:26:47

[资料] delphi.net二次开发AutoCAD(一)hello world

《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 =publicclass//新建的项目没有Public关键字,需要自己添加一下(我也刚开始用,不知道怎么自动添加)
private
public
    //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下测试成功。
页: [1]
查看完整版本: [资料] delphi.net二次开发AutoCAD(一)hello world