请选择 进入手机版 | 继续访问电脑版
查看: 1308|回复: 2

ObjectARX 扩展数据读写应用

[复制链接]
发表于 2012-7-28 18:32:18 | 显示全部楼层 |阅读模式
// 为实体添加扩展数据
void addxdata()
{
int rc;
ads_name ent;
ads_point pickPt;
acedInitGet(RSG_NONULL, NULL);
rc = acedEntSel("\n请选择实体: ", ent, pickPt);
if (RTNORM == rc)
{
  //  获取Id
  AcDbObjectId entId;
  acdbGetObjectId(entId, ent);
  //  注册应用程序名称
  acdbRegApp(_T("SHOUT"));
  //  组织扩展数据
  struct resbuf *rbl;
  rbl = acutBuildList(AcDb::kDxfRegAppName, _T("SHOUT"),  //  应用程序名称
   AcDb::kDxfXdAsciiString, _T("202111"),
   RTNONE);
  //  打开选择的实体
  AcDbEntity *pEnt;
  acdbOpenAcDbEntity(pEnt, entId, AcDb::kForWrite);
  //  添加扩展数据
  pEnt->setXData(rbl);
  //  清空结果缓冲区
  acutRelRb(rbl);
  pEnt->close();
}
acutPrintf(_T("\n扩展数据添加完毕!"));
}

// 显示实体的扩展数据
void printXdata()
{
struct resbuf *pRbx;
struct resbuf *pTemp;
char appName[] = {_T("SOUTH")};
ads_name ename;
AcDbObjectId entId;
AcDbObject *pObj;
ads_point pickPt;
//  选择要查看的实体
acedInitGet(RSG_NONULL, NULL);
acedEntSel(_T("\n请选择要查看的实体:"), ename, pickPt);

//  获得实体的ID
acdbGetObjectId(entId, ename);
//  打开实体
acdbOpenObject(pObj, entId, AcDb::kForRead);
//  获得扩展数据链表
pRbx = pObj->xData(appName);
//  关闭实体
pObj->clone();
//  遍历实体
pTemp = pRbx;
while(pTemp->rbnext)
{
  switch (pTemp->restype)
  {
  case 1001:  //  应用程序名
   acutPrintf(_T("\n程序名:%s"), pTemp->resval.rstring);
   break;
  case 1000:  //  字符串
   acutPrintf(_T("\n字符串:%s"), pTemp->resval.rstring);
   break;
  case 1003:  //  图层名
   acutPrintf(_T("\n图层名:%s"), pTemp->resval.rstring);
   break;
  case 1040:  //  一个实数
   acutPrintf(_T("\n实数:%.2f"), pTemp->resval.rreal);
   break;
  }
  //  指向下一个位置
  pTemp = pTemp->rbnext;
}
//  释放结果缓冲区
acutRelRb(pRbx);
}
回复

使用道具 举报

发表于 2018-6-18 14:47:40 | 显示全部楼层
我反复看了多遍,好帖,得支持











寫作指導   http://www.gfgfgf.com.tw/zyxx/zysj/   2018年06月18日 三句半
中醫    髮型大全 http://www.kenwoodhk.com.hk/fengjingtpian/hnan/  感謝的話   中醫醫案    女生髮型   愛情的句子    作文素材    http://www.kenwoodhk.com.hk/goxe/zhigaixiaosho/
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册 用百度帐号登录

本版积分规则

Archiver|手机版|小黑屋|BimCad Inc. ( 京ICP备15064117号

GMT+8, 2018-7-19 03:38 , Processed in 0.153720 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表