欢迎来到天天文库
浏览记录
ID:20651295
大小:201.72 KB
页数:18页
时间:2018-10-14
《基于.net的aucto cad二次开发》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、CAD开发背景AutoCAD(AutoComputerAidedDesign)是美国Autodesk公司首次于1982年生产的自动计算机辅助设计软件,用于二维绘图、详细绘制、设计文档和基本三维设计。现已经成为国际上广为流行的绘图工具。AutoCAD具有良好的用户界面,通过交互菜单或命令行方式便可以进行各种操作。它的多文档设计环境,让非计算机专业人员也能很快地学会使用。在不断实践的过程中更好地掌握它的各种应用和开发技巧,从而不断提高工作效率。AutoCAD具有广泛的用途,它可以在许多领域发挥不可估量的作用,但是在复杂CAD问题或特殊用途的设计中,依据AutoCAD的
2、原始功能往往难以解决问题,在此情况下,只是会适用软件的基本功能是不够的,根据客户的特殊用途进行软件的客户化定制和二次开发,往往能够大大提高企业的生产效率和技术水平。因此,CAD的开发是十分必要的。CAD开发方式当前AutoCAD的二次开发工具主要有:VisualLisp、VBA、ObjectARX和.NETAPI等。其中,VisualLisp与VBA较为简单,特别是VBA,使用方便且开发速度较快,但其功能相比ObjectARX有所不足,尤其是对面向对象的功能支持不好。而ObjectARX基于VC平台,在C++的支持下,其功能非常强大,可以很好地运用各种面向对象技术
3、,但其缺点是发开速度比较慢,同时对开发人员的能力要求较高。ObjectARX使用C#语言时,不但融合了VBA开发速度快、语言相对简单的特点,还结合了C++面向对象的许多优点,可以说C#是最适合做CAD开发的语言。基于.NET平台对AutoCAD进行二次开发,可充分利用.NET的各种优势,在保证功能强大的前提下大大提高开发速度。.NETAPI开发当AutoCAD被首次用.NET编生成的时候(开始于AutoCAD2004,.NET开发AutoCAD的大门就被打开了。.NETAPI提供了一系列托管的外包类(ManagedWrapperClass),使开发人员可在.NET
4、框架下,使用任何支持.NET的语言,如VB.NET、C#和ManagedC++等对AutoCAD进行二次开发。其优点是完全面向对象,在拥有与C++相匹配的强大功能的同时,具有方便易用的特点,是较理想的AutoCAD二次开发工具。.NETAPI与传统ObjectARX的区别主要源于在.NET环境下开发应用程序与在VC环境下开发应用程序的区别。首先,在VC环境下,程序员需要自己管理内存的申请和释放,而.NET采用了垃圾回收机制,由.NET框架自行判断内存回收的时机并实行回收,从而解决了令C++程序员头痛的内存泄漏问题。也正是由于这个特点,在.NET环境下不能像在C++
5、环境下那样利用析构函数释放其他的资源,需要程序员在程序中显式地释放。在.NETAPI中,主要通过Dispose函数进行资源的释放。其次,ObjectARX中的各种反应器(Reactor)在.NETAPI中由外包类映射为各种事件(Event),可通过定义这些事件的响应函数来响应AutoCAD的各种操作。同时对于错误信息的处理也从函数返回值改变为通常异常来处理,使其更好地兼容.NET。由于VB.NET、C#等语言都是完全面向对象的,没有全局函数的概念,所以.NETAPI将ObjectARX下的全局函数封装为.NETAPI下的某些对象或对象的属性ObjectARX下与用
6、户交互的系列全局函数被封装为CommandLinePrompt类。AUTOCAD.NET开发过程让我们以在AUTOCAD最下端的命令行窗口显示一行欢迎文本来开始.NET的开发旅程。我们将使用VisualStudio2010来创建一个类库项目,通过这个项目可以生成一个被AUTOCAD加载的dll文件。这个dll文件会向AUTOCAD加入一个名为Hello的新命令。当用户执行这个命令后,在AUTOCAD命令行上将显示“欢迎进入.NET开发AUTOCAD的世界!”的字样。一.打开VS2010新建项目->类库二.引用autocad2008命名空间1.添加引用coma.Au
7、toCAD2008TypeLibraryb.AutoCAD/ObjectDBXCommon17.0TypeLibrary2.添加其它引用如下:具体地址为(因autocad2008安装目录不同有差异):C:ProgramFilesAutoCAD2008AcCui.dllC:ProgramFilesAutoCAD2008acdbmgd.dllC:ProgramFilesAutoCAD2008acmgd.dll这三个文件包含的空间内容如下:Autodesk.AutoCAD.Customization;//accui.dll//*************
8、*****
此文档下载收益归作者所有