和C++交互
.NET程序中可以包含C++代码,所以可以使用没有对应托管封装类的ObjectARX API。ObjectARX托管封装类有一个属性和一个方法,用来在托管对象和非托管对象之间进行交互。
从托管对象获取内在非托管对象的指针,可以使用UnmanagedObject属性。利用非托管对象产生托管对象,可以使用DisposableWrapper.Create()方法。
和COM交互
你可以通过.NET程序获取AutoCAD Automation对象模型和其它的ObjectARX COM API。
在.NET中使用AutoCAD COM API
- 创建一个.NET解决方案和工程。
- 从工程菜单或解决方案浏览器中选择添加引用。
- 在COM 选项,选择AutoCAD 2005 Type Library 和AutoCAD/ObjectDBX Common 16.0 Type Library.
- 把Autodesk.AutoCAD.Interop命名空间加入到using 或 Imports 指令。
你可以通过使用以下属性从相应的.NET对象获得COM对象的指针:
- Application.AcadApplication
例如,以下的C#代码使用COM程序对象来提示用户输入一个角度:
((AcadApplication)Application.AcadApplication).ActiveDocument.Utility.GetAngle(); 从COM对象获取.NET对象,可以使用FromAcadXxx静态函数。例如,Database.FromAcadDatabase可以从COM数据库对象获得.NET数据库。
|