ObjectARX, AutoCAD. Среда программирования библиотеки C++

Открытие и Закрытие объекта ObjectARX


Все примеры кода, показанные в этой главе иллюстрируют протокол для открытия и закрытия объектов, который вы будете должны соблюсти всякий раз, когда Вы работаете с объектами резидента-базы. Этот протокол гарантирует, что объекты - физически в памяти, когда к ним должны обращаться.Прежде, чем Вы можете изменять объект, Вы должны открыть его:

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

Открытые функции имеют параметр режима, который определяет, открываете ли Вы объект для чтения, записи или уведомления. В то время как объект открыт для записи, Вы можете изменять его. Когда Вы закончите, Вы должны явно закрыть объект как показано в следующем примере, независимо от режима, в котором это было открыто:

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;

}

ПРЕДУПРЕЖДЕНИЕ! Непосредственно удаление объекта, который был добавлен к базе, заставляет AutoCAD грохаться.



Содержание раздела