CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

AutoCAD 2024 开发者帮助

打开和关闭 ObjectARX 对象

2024-5-18 19:11| 发布者: admin| 查看: 16| 评论: 0|原作者: admin|来自: AutoCAD

打开和关闭 ObjectARX 对象

本节中显示的所有代码示例都说明了用于打开和关闭对象的协议,每当使用驻留在数据库中的对象时,都需要遵守该协议。此协议可确保对象在需要访问时物理位于内存中,但在不需要时可以分页到磁盘。在修改对象之前,您需要打开它,如以下示例所示:

acdbOpenObject(pObject, objId, AcDb::kForWrite);

open 函数具有一个 mode 参数,该参数指定是打开对象进行读取、写入还是通知。当对象处于打开状态进行写入时,您可以对其进行修改。完成后,必须显式关闭对象,如以下示例所示,而不考虑打开对象的模式:

pObject->close();

以下是用于更改实体颜色的示例代码:

Acad::ErrorStatus
changeColor(AcDbObjectId entId, Adesk::UInt16 newColor)
{
    AcDbEntity *pEntity;
    acdbOpenObject(pEntity, entId,
        AcDb::kForWrite);
    pEntity->setColorIndex(newColor);
    pEntity->close();
    return Acad::eOk;
}

对象的新实例被视为开放写入。某些函数(如函数)获取对象 ID 并同时打开该对象。在将对象添加到数据库之前,无法将其关闭。您拥有该对象,并且可以在将对象添加到数据库之前随时自由删除该对象。AcDbBlockTable::getAt()

但是,一旦将对象添加到数据库中,就无法直接将其删除。您可以调用该函数,该函数将对象标记为已擦除。在数据库被销毁之前,已擦除的对象将保留在数据库中,但在保存图形时不会保存。AcDbObject::erase()

危险:

直接删除已添加到数据库的对象将导致 AutoCAD 终止。


路过

雷人

握手

鲜花

鸡蛋

最新评论

QQ|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1 )

GMT+8, 2024-6-27 16:22

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部