高手帮忙,由块名得到块中属性的值
给定一个块名,得到该块中所有属性的值,请大家帮忙啊。谢谢 怎么没人帮我啊5555555555 help me master 快来帮帮我吧,急 使用AcDbBlockReferenceIterator帮你找个例子,wait... To 王咣生
找到例子了吗?
谢谢 怎么还没消息啊。我急啊
static void ExtractAttributes()
{
ads_name ename;
ads_point pt;
if(ads_entsel("\nSelect an block: ", ename, pt) != RTNORM)
{
ads_printf("\nError selecting entity.");
return;
}
AcDbObjectId eId;
acdbGetObjectId(eId, ename);
AcDbEntity* pEnt = NULL; if (acdbOpenObject(pEnt, eId , AcDb::kForRead) != Acad::eOk)
{
ads_printf("\nError opening entity.");
if(pEnt)
pEnt->close();
return;
}
if(pEnt->isA() != AcDbBlockReference::desc())
{
ads_printf("\nMust select a block insert.");
pEnt->close();
return;
} AcDbBlockReference *pBlkRef = AcDbBlockReference::cast(pEnt);
AcDbAttribute *pAtt = NULL;
AcDbObjectIterator *pAttIter = pBlkRef->attributeIterator(); _TCHAR tagName, strValue; for (pAttIter->start(); !pAttIter->done(); pAttIter->step())
{
acdbOpenObject(pAtt, pAttIter->objectId(), AcDb::kForRead);
// get the tag string
_tcscpy(tagName, pAtt->tag());
ads_printf("\nBlock Insert Attribute tag is: %s", tagName);
_tcscpy(strValue, pAtt->textString());
ads_printf("\nBlock Insert Attribute string value is: %s",
strValue);
pAtt->close();
}
delete pAttIter;
pBlkRef->close();
}
页:
[1]