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

       

Блокировка документа


Запросы Автоматизации могут быть обработаны во всех возможных контекстах AutoCAD. Это означает, что Вы ответствены за блокировку документа перед изменением этого. Будут также иметься времена, когда Вы будете хотеть делать документ “поток” временно. Например, при добавлении примитива к *MODELSPACE или *PAPERSPACE Вы должны блокировать и делать поток документа. Отказ{*неудача*} блокировать документ в некоторых контекстах вызовет нарушение “блокировки” в течение модификации базы данных. Неудача делать поток документа заставит ваш примитив быть “невидимым” в графическом дисплее (даже после регенерации).

ObjectARX API включает функции в менеджера документа класс, чтобы делать это. Так как это - общая задача, мы формировали функциональные возможности в экспортируемый класс AcAxDocLock.

Например:

STDMETHODIMP CMyEntity::Modify()

{

AcAxDocLock docLock(m_objId, AcAxDocLock::kNormal);

if(docLock.lockStatus() != Acad::eOk)

{

return E_FAIL;

}

// It is now safe to modify the database

//

return S_OK;

}



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