|
……
pTemp->rbnext=acutNewRb(AcDb::kDxfxdLong);
pTemp=pTemp->rbnext;
pTemp->resval.rreal=length;
AcdbObject *pObj;//通过一定的方式获取需要添加数据的对象
pObj->SetXData(pRb);//为对象添加扩展实体数据
pObj->close();
acutRelRb(pRb);
(2)获取指定对象的扩展实体数据
AcDbObject* pObj;
char appName[40];//应用程序名
char daihao[40];//电缆代号
char mingcheng[40];//电缆名称
ads_real length;//电缆长度
struct resbuf *pRb;
strcpy(appName,“dianqibuxian”);
pRb=pObj->xData(appName);//获取应用名appName指定的扩展数据
if(pRb!=NULL)
{ int n=0;
for(;pRb!=NULL;pRb=pRb->rbnext)
{ if(pRb->restype==1000)
{ n++;
if(n==1)
strcpy(daihao,pRb->resval.rstring);//得到电缆代号
if(n==2)
strcpy(mingcheng,pRb->resval.rstring);//得到电缆名称
}
if(pRb->restype==1040)
length=pRb->resval.rreal;
}
}
acutRelRb(pRb);
2.利用扩展记录对象实现关联设计
在参数化设计过程中,零件甲中的某些参数与零件乙的设计有关联。我们设计零件乙时就需要从零件甲的图纸数据库中获取所需的参数,实现关联设计。
(1) 在零件甲的图纸空间中保存关联参数
ads_real bl,fl;//零件甲与零件乙相关联的参数
AcDbDictionary *pNamedobj, *pDict;
acdbHostApplicationServices()->workingDatabase()
->getNamedObjectsDictionary(pNamedobj, AcDb::kForWrite);
file://获取当前数据库中的命名对象字典
pNamedobj->setAt("Guanliansheji", pDict, DictId);
pNamedobj->close();
AcDbXrecord *pXrec = new AcDbXrecord;
AcDbObjectId xrecObjId;
pDict->setAt("XREC1", pXrec, xrecObjId);
搜索更多相关内容:
|