如果一个代理实体不是 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

发表回复

您的电子邮箱地址不会被公开。