天天看点

关于ObjectARX的那些事

ObjectARX是一个仅在AutoCAD上进行二次开发的一套开发环境,通俗点讲就是一系列的API

ObjectARX:扩展AutoCAD功能为各种工程设计开发便利的工具。

ARX——AutoCAD Runtime eXtension
DBX ——DataBase eXtension
ARX = .DLL + 2 exported functions
{ acrxEntryPoint & acrxGetApiVersion }
           

ObjectARX开发特点

不同的ACAD版本用不同的开发包及开发环境

ACAD2000~ACAD2002 : VC++ 6.0
ACAD2004~ACAD2006 : VS.NET 2002
ACAD2007~ACAD2009 : VS.NET 2005
ACAD2010~       :  VS.NET 2008
ACAD2007开始字符串采用UNICODE编码
ARX之间不能连续依赖
A.arx依赖B.arx, B.arx依赖C.dbx,则A.arx不能加载
与ACAD已有功能地位一致
           

ObjectARX类库构成:

AcRx:用于帮定一个应用程序以及运行类的注册和识别。
AcEd:用于注册自定义命令和AutoCAD事件通告。
AcDb:AutoCAD图形数据库。
AcGi: 用于AutoCAD 的图形类。
AcGe:用于AutoCAD 的线型和几何对象通用类。
ADS: AutoCAD 的早期版本C语言函数库。
类图classmap.dwg
位置:\ObjectARX 2006\classmap
           

用ObjectARX能做些什么?

访问、编辑和扩展AutoCAD图形数据库
和AutoCAD系统相互通信
使用MFC创建用户接口
支持多文档应用
创建自定义类和自定义实体
可以开发复杂的应用
和其他开发环境进行协作.
           

AutoCAD图形数据库概述 AutoCAD图形实际上是一系列存放在一个AcDbDatabase类型的对象中的AcDb对象。

一个dwg就是一个数据库 具备数据库的基本组织结构。 
包括九个符号表和一个命名对象词典. 
AcDbDatabase数据库       
   |------AcDb符号表        |      
   |------块表(AcDbBlockTable)        |     
    |------尺寸标注样式表(AcDbDimStyleTable)        |   
   |------层表(AcDbLayerTable)        |  
    |------线型表(AcDbLinetypeTable)        |    
    |------已注册应用程序表(AcDbRegAppTable)        |    
     |------字体样式表(AcDbTextStyleTable)        |      
     |------用户坐标系表(AcDbUCSTable)        |      
     |------视口表(AcDbViewportTable)        |      
     |------视图表(AcDbViewTable)  
     |-------命名对象词典 访问:AcDbDatabase::getSymbolTable
           

继续阅读