- 1、本文档共18页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
CAD开发背景;AutoCAD具有广泛的用途,它可以在许多领域发挥不可估量的作用,但是在复杂 CAD问题或特殊用途的设计中,依据AutoCAD的原始功能往往难以解决问题,在此情况下,只是会适用软件的基本功能是不够的,根据客户的特殊用途进行软件的客户化定制和二次开发,往往能够大大提高企业的生产效率和技术水平。因此,CAD的开发是十分必要的。;CAD开发方式;ObjectARX使用C#语言时,不但融合了VBA开发速度快、语言相对简单的特点,还结合了C++面向对象的许多优点,可以说C#是最适合做CAD开发的语言。基于.NET平台对AutoCAD进行二次开发,可充分利用.NET 的各种优势,在保证功能强大的前提下大大提高开发速度。;.NET API开发;.NET API与传统ObjectARX的区别主要源于在.NET环境下开发应用程序与在VC环境下开发应用程序的区别。首先,在VC环境下,程序员需要自己管理内存的申请和释放,而.NET采用了垃圾回收机制,由.NET框架自行判断内存回收的时机并实行回收,从而解决了令C++程序员头痛的内存泄漏问题。也正是由于这个特点,在.NET环境下不能像在C++环境下那样利用析构函数释放其他的资源,需要程序员在程序中显式地释放。在.NET API中,主要通过Dispose函数进行资源的释放。
;其次,ObjectARX中的各种反应器(Reactor)在.NET API中由外包类映射为各种事件(Event),可通过定义这些事件的响应函数来响应AutoCAD的各种操作。同时对于错误信息的处理也从函数返回值改变为通常异常来处理,使其更好地兼容.NET。由于VB.NET、C#等语言都是完全面向对象的,没有全局函数的概念,所以.NET API将ObjectARX下的全局函数封装为.NET API下的某些对象或对象的属性ObjectARX下与用户交互的系列全局函数被封装为CommandLinePrompt类。;AUTOCAD .NET开发过程;一.打开VS2010
新建项目-类库
;二.引用autocad2008命名空间
1. 添加引用com
a. AutoCAD 2008 Type Library
b. AutoCAD/ObjectDBX Common 17.0 Type Library
;2.添加其它引用
如下:
具体地址为(因autocad2008安装目录不同有差异):
C:\Program Files\AutoCAD 2008\AcCui.dll
C:\Program Files\AutoCAD 2008\acdbmgd.dll
C:\Program Files\AutoCAD 2008\acmgd.dll
这三个文件包含的空间内容如下:
Autodesk.AutoCAD.Customization; //accui.dll
//*******************************************//
;Visualstudio 对象浏览器;// acdbmgd.dll 包含以下命名空间 //
//*******************************************//
Autodesk.AutoCAD.LayerManager; Autodesk.AutoCAD.GraphicsSystem;
Autodesk.AutoCAD.GraphicsInterface;
Autodesk.AutoCAD.Runtime;
Autodesk.AutoCAD.Geometry; Autodesk.AutoCAD.DatabaseServices.Filters;
Autodesk.AutoCAD.DatabaseServices; Autodesk.AutoCAD.ComponentModel;
Autodesk.AutoCAD.Colors;
;//******************************************//
// acmgd.dll 包含以下命名空间 //
//------------------------------------------*//
Autodesk.AutoCAD.Windows.ToolPalette;
Autodesk.AutoCAD.Windows ;
Autodesk.AutoCAD.Runtime ;// acdbmgd.dll也含此空间*//
Autodesk.AutoCAD.Publishing ;
Autodesk.AutoCAD.PlottingServices ;
Autodesk.AutoCAD.GraphicsSystem
文档评论(0)