要在AutoCAD中参与撤消,数据库必须与文档相关联,因为每个文档都有一个独立的撤消堆栈。但是,此功能与加载其内容旨在跨文档编辑会话共享的数据库的需求直接冲突。换句话说,您必须在端数据库的以下两种方案之间做出决定:
在 ObjectARX 中,前一种情况是默认方案。每当实例化一个新的实例时,它都会与当前文档相关联。这是应用程序需要在不激活新文档的情况下更改当前文档的原因之一。AcDbDatabase Theclass 提供以下函数,该函数禁用数据库撤消并将数据库与文档取消关联:AcDbDatabase void disableUndoRecording( bool disable); 对任何特定于文档的系统变量的任何 AcDb 依赖都将采用独立于文档的数据库的内置默认值。此外,无需锁定任何文档即可访问与文档无关的数据库。 注意:考虑从多个文档撤消控制器触发独立撤消控制器的开发人员应注意,在给定文档中执行撤消可能会导致不一致和损坏。例如:数据库 X 具有不与任何文档关联的撤消控制器。对文档 A 进行修改,然后对文档 B 进行修改,这些修改依赖于从文档 A 修改创建或修改的对象。现在,撤消在文档 A 中应用。对文档 B 所做的更改将损坏。
|
|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1 苏公网安备32011402011833)
GMT+8, 2025-1-8 19:41
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.