ObjectARX编程(八) --------有名对象字典、用户字典和字典中的对象

在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
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
objectarxwizards-2023.zip是一个压缩文件,它可能包含了针对ObjectARX软件开发工具集的一些示例代码和实用程序。ObjectARX是Autodesk公司提供的用于开发AutoCAD软件的应用程序编程接口(API),它允许开发人员创建自定义功能和扩展,以满足用户特定的需求和要求。这个压缩文件可能是为了方便开发人员参考和学习使用ObjectARX编程而创建的。 通过解压和查看这个文件,我们可以学习示例代码和实用程序的结构和用法。这可能有助于我们更好地理解ObjectARX的编程概念和技术,进而应用到我们自己的项目。压缩文件可能包含了一些源代码文件、库文件、帮助文档和示例项目,它们可以帮助我们进一步学习和开发自定义的AutoCAD功能。 ObjectARX是一个功能强大的开发工具,它提供了许多API函数和类,可以访问和操作AutoCAD软件内部的对象和数据。通过使用ObjectARX,我们可以创建插件、自定义命令、修改绘图元素、修改用户界面以及与其他应用程序集成等等。因此,这个压缩文件对于那些对AutoCAD开发感兴趣的人来说是非常有价值的资源。 总之,objectarxwizards-2023.zip是一个ObjectARX开发工具集的压缩文件,它包含了一些示例代码和实用程序,可以帮助开发人员学习和开发自定义的AutoCAD功能。如果我们对AutoCAD软件的开发有兴趣,这个文件会提供很多有用的资源和参考资料。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值