CAD工具之家's Archivers

From boitboy on 2013-10-17 20:36:23

获取标注的关联对象

//功能:获取标注的关联对象  Acad::ErrorStatus findDimensionAssocObject(AcDbObjectId& assocId,struct resbuf* rb)  {   Acad::ErrorStatus es=Acad::eInvalidInput;   struct resbuf* pTmp=rb;   while(pTmp!=NULL)   {    if(pTmp->restype==331)    {     es=acdbGetObjectId(assocId,pTmp->resval.rlname);     break;    }    pTmp=pTmp->rbnext;   }   return es;  }  //功能:获取标注的关联对象  Acad::ErrorStatus getDimensionAssocObject(AcDbObjectId& assocId,AcDbDimension* pDim)  {   if(pDim==NULL)   {    return Acad::eNullHandle;   }   AcDbObjectId id=pDim->extensionDictionary();   if(!id.isValid())   {    return Acad::eNullObjectId;   }   AcDbObjectPointer<AcDbDictionary> spDcit(id,AcDb::kForRead);   if(spDcit.openStatus()!=Acad::eOk)   {    return spDcit.openStatus();   }   AcDbObjectId assocDictId;   Acad::ErrorStatus es=spDcit->getAt(_T("ACAD_DIMASSOC"),assocDictId);   if(es!=Acad::eOk)   {    return es;   }   ads_name ent;   es=acdbGetAdsName(ent,assocDictId);   if(es!=eOk)   {    return es;   }   struct resbuf* rb1=acdbEntGet(ent);   if(rb1==NULL)   {    return Acad::eNullHandle;   }   es=findDimensionAssocObject(assocId,rb1);   acutRelRb(rb1);   return es;  } 不过貌似CAD没有提供设置关联对象的方法

查看完整版本: 获取标注的关联对象

Tags: AcDbDimension, CAD二次开发, ObjectArx, 关联对象


©CAD工具之家
创办于:2013年5月24日