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




Документо-независимые базы данных


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

§

Связывают базу данных с определенным документом, и не позволяют редактирования этому с других сеансов редактирования, и возможно загружают DWG или DXF файл в множественные базы данных в течение каждого сеанса редактирования, который нуждается в этом.

§         Загружают DWG или DXF файл, чтобы совместно использовать это поперек сеансов редактирования, и не имеют никакой автоматической отмены для этого. Или не поддержите отмену для них во всем (прекрасно, если они только для чтения, или только модифицированный для фактического сохраняет, или находятся под контролем пересмотра), или быть очень осторожным при использовании отмены.

В ObjectARX, прежний сценарий - значение по умолчанию. Всякий раз, когда инициирован новый образец AcDbDatabase, это связано с текущим документом.

Это - одна из причин,  приложение должно изменить{*заменить*} текущий документ без того, чтобы активизировать новый документ.

AcDbDatabase класс обеспечивает следующую функцию, которая отключает отмену базы данных и разрушает связь базы данных с  документом:

void  disableUndoRecording(Adesk::Boolean disable);

Любая AcDb уверенность относительно любых документо-определенных переменных системы примет встроенные значения по умолчанию для документо-независимых баз данных. Также, не имеется никакой потребности блокировать любые документы, чтобы обратиться к докумено-независимым базам данных.

ОБРАТИТЕ ВНИМАНИЕ На разработчиков, кто думают относительно вызова независимого контроллера отмены от контроллеров отмены множественного документа, должен остаться знающий, что выполняющий отмену в данном документе может вести к несогласованности и коррупции. Например: База данных X имеет контроллер отмены, не связанный с любым документом. Модификации от Документируют,  сделаны к Базе данных X, тогда модификациями из Документа B, которые полагаются на объекты, созданные или изменяемые от Документа модификации. Теперь, отмена применяется в Документе A. Изменения{*замены*}, сделанные к Документу B будут разрушены.

 




Содержание  Назад  Вперед