CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

ActiveX 开发指南

修改图纸集 (SSO) 的准则

2023-1-2 19:28| 发布者: admin| 查看: 196| 评论: 0|来自: AutoCAD

摘要: 图纸集 API 是一个多客户端 API。这意味着多个客户端可能正在查看给定的客户端并与之交互 AcSmDatabase 在任何给定时间。这需要特别注意如何在数据库中引用或修改对象。

图纸集 API 是一个多客户端 API。这意味着多个客户端可以在任何给定时间查看给定的客户端并与之交互。这需要特别注意如何在数据库中引用或修改对象。AcSmDatabase

为了对其中的任何对象进行修改,您必须锁定它,然后在完成更改后将其解锁。应仅在准备好进行更改时才锁定数据库,并且应尽快将其解锁。出于性能原因,还应尽可能少地锁定和解锁数据库。如果需要进行多项修改,请锁定数据库,进行所有更改,然后将其解锁。AcSmDatabase

由于数据库有多个客户端,因此当其他客户端进行更改时,它将不时自动重新加载。重新装入数据库时,将丢弃所有包含的对象实例,并在读入数据库时创建新实例。

因此,在参照位于图纸集数据库中的对象时,遵循以下基本规则非常重要:

  • 切勿缓存指向图纸集数据库中对象的直接指针。如果必须在图纸集数据库中缓存对对象的引用,请存储关联的 相反。使用对象 ID,您可以安全地检索指向关联对象实例的指针;始终检索当前实例。IAcSmObjectId

重新加载数据库后,指向驻留在数据库的对象的指针将无效。但是,如果改为存储对象 ID,则可以使用它安全地检索指向当前对象实例的指针。

此规则的唯一例外是数据库。您可以存储指向因为数据库对象的指针在重装操作期间不会被销毁和重新创建。AcSmDatabase

可以通过对对象调用方法来检索任何数据库驻留对象的对象 ID。相反,您可以通过调用该方法从 ID 获取关联的对象实例。这将返回一个通用接口指针,可以查询所需的接口。GetObjectIdGetPeristentObjectIAcSmPersist

注意:DST 文件只能使用图纸集管理器对象进行修改。

路过

雷人

握手

鲜花

鸡蛋

最新评论

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

GMT+8, 2024-5-19 16:16

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部