ObjectARX开发详解:XRecord创建与应用

需积分: 35 3 下载量 122 浏览量 更新于2024-08-19 收藏 230KB PPT 举报
"XRecord创建-ObjectArx 开发说明" ObjectARX是Autodesk AutoCAD的底层开发平台,它提供了一套API(应用程序接口),允许开发者创建能够在AutoCAD环境中运行的动态链接库(DLL)应用,从而扩展AutoCAD的功能。通过ObjectARX,开发者可以实现对AutoCAD图形数据库的深度访问、编辑以及定制化工具的开发。 在AutoCAD的ObjectARX编程中,XRecord是一种特殊类型的记录,用于存储非几何数据。XRecord是基于AcDbXrecord类的,它可以存储任意类型的AutoLISP数据结构,如列表、符号或数字等。这种数据结构通常用于扩展AutoCAD对象的属性,保存附加信息而不影响对象本身的几何特性。 创建XRecord的步骤如下: 1. **创建对象的扩展字典**:每个AutoCAD对象都可以拥有一个扩展字典,其中可以存储附加信息,包括XRecord。通过调用`AcDbObject::createExtensionDictionary()`方法可以创建这个扩展字典,而`AcDbObject::extensionDictionary()`则用于获取对象的扩展字典ID。 2. **生成AcDbXrecord实例**:使用`new AcDbXrecord`来创建一个新的XRecord对象。这将分配内存并初始化XRecord对象。 3. **将XRecord加入字典**:首先,你需要打开扩展字典,可以通过`acdbOpenObject()`函数以写入模式访问。然后,使用`setAt()`方法将新创建的XRecord对象添加到字典中,指定一个键(通常是字符串)和返回的XRecord对象ID。 4. **填充XRecord**:XRecord可以存储AutoLISP的数据链表。利用`setFromRbChain()`方法,你可以将一个AutoLISP的链表数据复制到XRecord中。`*head`参数通常是一个指向链表头的指针。 ObjectARX开发有一些特定的特点和要求: - 不同版本的AutoCAD需要对应版本的开发环境和开发包,例如,从ACAD2000到ACAD2002使用VC++6.0,而从ACAD2007开始则需要使用VS.NET。 - 自ACAD2007起,字符串使用UNICODE编码。 - ARX应用之间不能有直接的依赖关系,即A.arx依赖B.arx,B.arx依赖C.dbx,会导致A.arx无法加载。 - ObjectARX类库包括AcRx、AcEd、AcDb、AcGi、AcGe和ADS等,分别负责应用程序绑定、命令注册、图形数据库、图形绘制、几何对象以及早期版本的C语言函数。 - 使用ObjectARX,开发者能够实现对图形数据库的访问和编辑,定义新的命令,响应AutoCAD事件,以及构建复杂的自定义对象和工具。 ObjectARX是AutoCAD开发的强大工具,通过XRecord,开发者可以为AutoCAD对象添加丰富的非几何属性,增强其功能性和灵活性。