CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

ObjectARX 开发指南

独立于文档的数据库

2022-12-31 18:58| 发布者: admin| 查看: 303| 评论: 0|来自: AutoCAD

要在AutoCAD中参与撤消,数据库必须与文档相关联,因为每个文档都有一个独立的撤消堆栈。但是,此功能与加载其内容旨在跨文档编辑会话共享的数据库的需求直接冲突。换句话说,您必须在端数据库的以下两种方案之间做出决定:

  • 将数据库与特定文档关联,不允许从其他编辑会话对其进行编辑,并可能将 DWG 或 DXF 文件加载到需要它的每个编辑会话的多个数据库中。
  • 加载 DWG 或 DXF 文件以在编辑会话之间共享该文件,并且不会自动撤消该文件。要么根本不支持撤消它们(如果它们是只读的,或者只针对实际保存进行更新,或者在修订控制下),或者在使用撤消时要非常小心。

在 ObjectARX 中,前一种情况是默认方案。每当实例化一个新的实例时,它都会与当前文档相关联。这是应用程序需要在不激活新文档的情况下更改当前文档的原因之一。AcDbDatabase

Theclass 提供以下函数,该函数禁用数据库撤消并将数据库与文档取消关联:AcDbDatabase

void
disableUndoRecording(
    bool disable);

对任何特定于文档的系统变量的任何 AcDb 依赖都将采用独立于文档的数据库的内置默认值。此外,无需锁定任何文档即可访问与文档无关的数据库。

注意:考虑从多个文档撤消控制器触发独立撤消控制器的开发人员应注意,在给定文档中执行撤消可能会导致不一致和损坏。例如:数据库 X 具有不与任何文档关联的撤消控制器。对文档 A 进行修改,然后对文档 B 进行修改,这些修改依赖于从文档 A 修改创建或修改的对象。现在,撤消在文档 A 中应用。对文档 B 所做的更改将损坏。

路过

雷人

握手

鲜花

鸡蛋

最新评论

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

GMT+8, 2024-5-19 12:46

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部