C++ ARX二次开发扩展字典、有名对象字典

本文档介绍了C++ ARX二次开发中扩展字典和有名对象字典的使用,包括创建扩展字典、添加扩展记录、访问有名对象字典等操作,并给出了命令行展示的实例,强调了扩展记录相对于扩展数据的优势,建议在开发中优先使用扩展记录。同时,还展示了如何使用ARXDBG工具查看创建的有名对象字典。
摘要由CSDN通过智能技术生成

一、本节课程
C++
ARX二次开发扩展字典、有名对象字典

二、本节要讲解的知识点

扩展字典的使用和有名对象字典的使用(AddXRecordViewXRecordAddNameDictViewNameDict)。

三、具体内容

1、访问实体的扩展字典?扩展字典与特定的实体关联的,但是一个实体在默认情况下是不包含扩展字典的,如果要利用扩展字典保存与实体关联的数据,可以使用createExtentionDictionary函数来为实体建立扩展字典,如果实体已经包含了扩展字典,那么该函数不产生任何影响。 实体的extentionDictionary函数可以获得扩展字典。

2、访问有名对象字典?每个AUTOCAD图形数据库都有一个有名对象字典,默认情况下字典包含了组,多线样式,布局,打印等信息。例如,用户在AUTOCAD中创建一个组,就会有一个代表该组的元素被添加到组字典中。如果需要在有名对象字典中保存自己的数据,一个可以在有名对象字典中添加一个根字典,然后再向根字典添加新的字典,进而在新字典中保存数据。这样的好处是不会与有名对象字典的基本字典相混淆。

3、建立实体的扩展字典,向其中添加扩展记录:

static void YunyouMyGroupAddXRecord()

{

AcDbEntity *pEnt=NULL;

AcGePoint3d pickPoint;

if (CSelectUtil::PromptSelctEnts(TEXT("\n选择所要添加扩展记录的实体:"),AcDbEntity::desc(),pEnt,pickPoint))

{

//向实体添加扩展字典

pEnt->createExtensionDictionary();

AcDbObjectId dictObjId=pEnt->extensionDictionary();

pEnt->close();

 

//创建扩展记录实体

AcDbXrecord *pXrec=new AcDbXrecord;

 

//向扩展字典中添加一条记录

AcDbObjectId xRecObjId;

AcDbDictionary *pDict=NULL;

if (acdbOpenObject(pDict,dictObjId,AcDb::kForWrite)==Acad::eOk)

{

pDict->setAt(TEXT("XRecord"),pXrec,xRecObjId);

pDict->close();

}

//设置扩展记录的内容

struct resbuf *pRb=acutBuildList(AcDb::kDxfText,TEXT("测试字符串数据"),

AcDb::kDxfInt32,12,

AcDb::kDxfReal,3

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值