使用ObjectARX从块插入中提取属性标记字符串
#include <TCHAR.H>void ExtractAttributes()
{
ads采用name ename;
ads采用point pt;
if(acedEntSel("\nSelect an block: ", ename, pt) != RTNORM)
{
acutPrintf("\nError selecting entity.");
return;
}
AcDbObjectId eId;
acdbGetObjectId(eId, ename);
AcDbEntity* pEnt = NULL;
if (acdbOpenObject(pEnt, eId , AcDb::kForRead) != Acad::eOk)
{
acutPrintf("\nError opening entity.");
if(pEnt)
pEnt->close();
return;
}
if(pEnt->isA() != AcDbBlockReference::desc())
{
acutPrintf("\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());
acutPrintf("\nBlock Insert Attribute tag is: %s", tagName);
采用tcscpy(strValue, pAtt->textString());
acutPrintf("\nBlock Insert Attribute string value is: %s", strValue);
pAtt->close();
}
delete pAttIter;
pBlkRef->close();
}
页:
[1]