ObjectARX编程(八) --------有名对象字典、用户字典和字典中的对象
来源:互联网 发布:南城整形医院知美 编辑:程序博客网 时间:2024/06/07 03:44
在AutoCAD数据库中,对象字典是字典类型数据库对象的总称。按其层次关系可分为两类,一是有AutoCAD数据库直接管理的第一层对象字典; 二是有第一层对象字典管理的第二层对象字典。为了便于区别,我们把第一层对象字典称为有名对象字典,用于在应用程序中定义的字典称为用户字典,多线样式字典、组字典都属于第二类对象字典。
对象字典的第三层位字典中的对象。如组是组字典中的对象,多线样式是多线样式中的对象。在用户对象字典中,可以包含任何类型的对象,如实体对象、自定义对象和数据对象等。在有名对象字典中,各用户字典间通过字典名称来标识;
向字典中添加条目时,字典自动为该条目附加一个反应器,如果该对象被擦除,字典被通知,并将它从字典中除去。
对象字典是AutoCAD图形数据库的组成部分之一,它由三个部分组成:
组字典(Group Dictionary)、多线样式字典(Mline style Dictionary)、用户定义对象字典
组和组字典
组是实体等数据对象的有序集合,值组字典的成员。从层次关系来看,组是管理其所包含对象的容器,而组字典是管理组对象的容器。
组字典的操作和使用技术
1>. 获取数据库中指向组字典的指针
A. Acad::ErrorStatus getGroupDictionary(AcDbDictionary*& pDict,AcDb::OpenMode mode);
//从对象字典中获得
B. Acad::ErrorStatus getAt(const char* entryName,AcDbObject* newValue,AcDbObjectId& entryObj)const;
2>. //将组加入组字典中 srchKey: 组名; newValue: 为加入到组字典中的新的组的指针;
// retObject为函数返回的已加入到组字典中组对象的ID
Acad::ErrorStatus setAt(const char* srchKey,AcDbObject* newValue,AcDbObjectId& retObjectId);
3>. AcDbGroup类常用的成员函数
Acad::ErrorStatus append(AcDbObject id); //将对象加入组中
Acad::ErrorStatus remove(AcDbObjectId id); //移去组中id表示的对象
Acad::ErrorStatus setColor(const AcDmColor& color); //设置颜色
Acad::ErrorStatus setDescription(char* grpDesc); //设置组说明
Acad::ErrorStatus setLinetype(const char* newVal); //设置线型
Acad::ErrorStatus setLayer(const char* newVal); //设置组中实体
Acad::ErrorStatus setVisibility(AcDb::Visibility newBal); //设置可见
4>. 组字典的操作步骤
① 通过getGroupDictionary()函数获得指向图形数据库组字典的指针。
② 用组字典构造函数AcDbGroup() 创建组对象。
③ 用AcDbDictionary类的成员函数setAt()将所建立的组加入字典中。
④ 调用有关函数设置组的属性,如设置线型、颜色、图层、可见性等。
用户对象字典的操作和使用技术
在有名对象字典中定义一个用户字典的实质是创建一个AcDbdictionary的对象,并将它加入到有名对象字典中。其步骤如下:
a.调用ACDBDatabase类的成员函数getNamedObjectDictionary()得到有名对象字典的指针。
b. 定义新的用户对象字典并加入有名对象字典中。
AcDbDictionary *pNameObj; //定义指向有名对象字典的指针
acdbHostApplicationServices()->workingDatabase()->getNamedObjectDictionary(pNamedObj,AcDb::kForWrite);
AcDbDictionary *pDict = new AcDbDictionary;
AcDbObjectId dictId;
pNamedObject->setAt("TEST_DICT",pDcit,DictId);
阅读全文
0 0
- ObjectARX编程(八) --------有名对象字典、用户字典和字典中的对象
- 对象转字典、字典排序
- 对象和字典相互转化
- python 区分对象和字典
- Dictionary对象(字典对象)
- 数据库对象(数据字典)
- 浅谈DICTIONARY(字典)对象
- 集合对象-》字典
- Scripting.Dictionary字典对象
- CANOpen基本对象字典
- CANopen对象字典
- 自定义字典键对象
- python 字典转对象
- 数组,对象,字典
- CANopen对象字典
- 1.2 使用字典对象
- Predicate 查询数组中的字典对象
- Objective-c 字典对象 (NSDictionary 和 NSMutableDictionary )
- Java萌新的排序算法学习(初级篇)
- H264参数结构一:元素的分层结构
- AbstractReferenceCountedByteBuf源码分析
- Execution failed for task ':app:transformResourcesWithMergeJavaResForDebug'
- delphi7 FormatFloat 四舍五入
- ObjectARX编程(八) --------有名对象字典、用户字典和字典中的对象
- Java中Volatile关键字详解
- 求二叉树的所有结点之和,Python实现
- 欢迎使用CSDN-markdown编辑器
- java实现全排列
- 最简单的php操作MySQL数据库
- H264参数结构三:序列参数集层(SPS) & 图像参数集语义
- Spring4.2.4和quartz2.2.3整合定时任务
- 第12章 模板与STL