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