请教大虾们在ARX中删除实体的问题
我是这样实现的首先遍历所有的实体,判断实体是否在某个图层中,如果在,就取其ID,然后把它删除
AcDbObjectId objID = pEnt->objectId();
pEnt->close();
AcDbObject* pObj = NULL;
acdbOpenObject(pObj, objID, AcDb::kForWrite);
if(Acad::eOk != pObj->erase())
{
acutPrintf(L"删除失败!");
}
pObj->close();
问题是我发现我就没有删除实体。不知道是什么原因,请过往的大侠不吝赐教! 你看看精华贴,王咣生的日志 es = acdbOpenObject(pObj, objID, AcDb::kForWrite);
看看是否打开成功!
AcDbEntity* pObj = NULL;
if(acdbOpenObject(pObj, objID, AcDb::kForWrite) != Acad::eOk)
{
acutPrintf("\n删除失败!\n");
return;
}
if(Acad::eOk != pObj->erase())
{
acutPrintf(L"删除失败!");
}
pObj->close();
谢谢楼上的回帖,提示删除成功了,但是还没有删去,不知道是怎么回事...
奇怪了,这个论坛咋就没什么人呢...难道都不愿意回答这么小的问题么?? 单看这一段代码是没问题的,可以删除,至于你说的没有删除,可能跟你调用这段函数的其它环境有关 actrTransactionManager->flushGraphics();
刷新看看!
复制代码这代码本身就不对,既然有了实体的指针,为什么要转换成Id,再来删除?画蛇添足,多此一举!
页:
[1]