|
请教各位一个问题:
删除图块对应的属性,下面的程序是否正确
AcDbObjectPointer spBlkRef(objId,AcDb::kForWrite);
if(spBlkRef.openStatus() != Mcad::eOk) return;
AcDbObjectIterator* pAttribIter = spBlkRef->attributeIterator();
if(pAttribIter != NULL)
{
for(;!pAttribIter->done();pAttribIter->step() )
{
AcDbObjectPointer spAttribute(pAttribIter->objectId(),AcDb::kForWrite);
if (spAttribute.openStatus() != Mcad::eOk)
{
continue;
}
spAttribute->erase(true);
spAttribute->close();
}
delete pAttribIter;
}
spBlkRef->close();
按照上面的程序删除后,再用鼠标选择上面的实体会报错,而且再遍历此图块的属性时,它的属性并没有被删除掉,只是spAttribute.openStatus() != Acad::eOk了
|
|