delphi.net二次开发AutoCAD(一)hello world

全屏阅读

2012-05-30 16:05:09 作者: 所属分类:程序设计 阅读:2989 评论:0

标签:

《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下测试成功。 

顶一下
(0)
100%
订阅 回复
踩一下
(0)
100%
» 郑重声明:本文由不吃醋的猫发布,所有内容仅代表个人观点。版权归懒猫窝窝不吃醋的猫共有,欢迎转载, 但未经作者同意必须保留此段声明,并给出文章连接,否则保留追究法律责任的权利! 如果本文侵犯了您的权益,请留言。
  • 目前有 0 条留言 其中:访客:0 条, 博主:0 条

    给我留言