天气与日历 切换到窄版

 找回密码
 立即注册
中国膜结构网
十大进口膜材评选 十大国产膜材评选 十大膜结构设计评选 十大膜结构公司评选
查看: 53|回复: 0

ObjectARX CAD 扩展数据读写应用

[复制链接]

该用户从未签到

主题

0

回帖

2912

积分

管理员

积分
2912
发表于 2024-6-22 09:46:18 | 显示全部楼层 |阅读模式
[code]ObjectARX CAD 扩展数据读写应用



// 为实体添加扩展数据
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);
}



[/code]

 

 

 

 

ObjectARX CAD 扩展数据读写应用
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|中国膜结构网|中国膜结构协会|进口膜材|国产膜材|ETFE|PVDF|PTFE|设计|施工|安装|车棚|看台|污水池|中国膜结构网_中国空间膜结构协会

GMT+8, 2024-11-1 15:30 , Processed in 0.150822 second(s), 26 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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