ObjectARX开发详解:XRecord创建与应用
需积分: 35 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对象添加丰富的非几何属性,增强其功能性和灵活性。
2019-09-12 上传
2022-04-19 上传
2011-07-26 上传
2023-05-28 上传
2023-06-09 上传
2024-11-13 上传
2023-05-14 上传
2023-06-09 上传
2023-06-10 上传
巴黎巨星岬太郎
- 粉丝: 18
- 资源: 2万+
最新资源
- upptime:我的外部监控工具
- HTMLprocessor:HTML 处理和指标提取
- Draft Wed Aug 15 15:32:42 CST 2018-数据集
- Python库 | datatools_mikdowd-0.0.5-py3-none-any.whl
- 基于 C++大地测量学之坐标转化及坐标系转换
- modcopy-开源
- pyg_lib-0.3.0+pt20cpu-cp311-cp311-linux_x86_64whl.zip
- intern_szut:intern_szut网站
- 森兰变频器上位机控制软件SlMonitorV2.1.zip
- Crawling_Project:使用python,BeautifulSoup
- ParkinsonsPredictor:使用两种不同的分类策略来尝试预测某人是否患有帕金森病
- BPMVue:BPM的Vue
- qiyemingpian:nodeJS+express+mysql后端开发教程-企业名片小程序后端开发
- 147. 2019抖音数据报告.rar
- lesson-1
- racket2nix:取得一个info.rkt文件,生成一个info.nix文件