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

EaBIM

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

搜索
查看: 703|回复: 0
打印 上一主题 下一主题

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

[复制链接]

1514

主题

7465

帖子

1万

积分

admin

Rank: 10Rank: 10Rank: 10Rank: 10Rank: 10Rank: 10Rank: 10Rank: 10Rank: 10Rank: 10

积分
12404

社区QQ达人

跳转到指定楼层
楼主
发表于 2014-1-8 14:26:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
《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项目,编辑代码如下:
  1. namespace ClassLibrary1;
  2. interface
  3. uses
  4.   Autodesk.AutoCAD.Runtime, Autodesk.AutoCAD.ApplicationServices,Autodesk.AutoCAD.EditorInput;

  5. type
  6.   Class1 =public  class  //新建的项目没有Public关键字,需要自己添加一下(我也刚开始用,不知道怎么自动添加)
  7.   private
  8.   public
  9.     [CommandMethod('Hello')]//CommandMethod必须定义在这里,如果是普通的Win32 DLL项目等同于Exports
  10.     class method Hello;//调用的方法
  11.   end;

  12. implementation
  13. class method Class1.hello;
  14. var
  15.   ed:Editor;
  16. begin
  17.   ed:=Application.DocumentManager.MdiActiveDocument.Editor;
  18.   ed.WriteMessage('欢迎进入.NET开发AutoCAD的世界!');
  19. end;
  20. end.
  21.   设置编译环境的外部程序为AutoCAD2011(那个速度启动太慢,等的着急啊,不过为了学习知识还得硬着头皮启动)。然后在cad命令行输入命令netload,加载刚才生成的ClassLibrary1.dll。如果加载失败,则返回编译器,设置AutoCAD的两个.net引用的本地复制属性为false重新加载即可。加载完毕后,在命令行输入hello并回车,则出现“欢迎进入.NET开发AutoCAD的世界!”提示
  22.   以上代码在Delphi Prism XE+win7+AutoCAD2011下测试成功。
复制代码
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 转播转播 分享分享 分享淘帖 支持支持 反对反对

相关帖子

工作时间:工作日的9:00-12:00/13:30-18:00,节假日不在线,请勿留言
*滑块验证:
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|EaBIM网 ( 苏ICP备2020058923号-1  苏公网安备32011502011255号

GMT+8, 2024-11-16 11:11

Powered by Discuz! X3.2 Licensed

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表