如果一个代理实体不是 kEraseAllowed,则调用 erase 进行删除就会无效。如果代理实体是 kCloningAllowed,那么我们可以使用 handOverTo 将其替换成其他实体,再删除。

示例:

if (ent->isKindOf(OdDbProxyEntity::desc()))
{
OdDbProxyEntityPtr proxy = OdDbProxyEntity::cast(ent);
if (!proxy->eraseAllowed())
{
auto pnt = OdDbPoint::createObject();
proxy->handOverTo(pnt);
pnt->erase();
continue;
}
}

  1. Remove all proxy entities from a drawing using ObjectARX

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注