CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

ObjectARX 开发指南

行动网络

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

操作归 AcDbAssocNetworks 所有。AcDbAssocNetwork 本身派生自 AcDbAssocAction,因此它表现为一个操作,并且可以创建网络层次结构。网络的 evaluate() 方法收集所有需要评估的操作,并以正确的顺序评估它们。

网络在“逻辑”意义上拥有这些行为,但也可能在“物理”意义上拥有它们。逻辑所有权意味着网络知道该操作,并且在评估网络时,它会考虑该操作。当操作也由网络物理拥有时,网络是操作的硬所有者,因此当网络深度或 wblock 克隆时,操作将被深度克隆。

AcDbAssocNetwork Hierarchy

应用程序应根据以下建议构建其操作。包含操作的数据库应具有连接到 AcDbDatabase 的单个顶级网络。可以通过调用 AcDbAssocNetwork::getInstanceFromDatabase() 方法获取此网络(如果尚不存在,也可以创建)。顶级网络由数据库的命名对象字典拥有,默认键为“ACAD_ASSOCNETWORK”。AcDbAssocNetwork 对象不直接拥有,数据库的命名对象字典拥有一个子字典,该子字典是实际 AcDbAssocNetwork 对象的软所有者。

顶级网络可能拥有其他网络,也可以拥有单个操作。更可取的安排是,整个数据库的顶级网络拥有与各个 AcDbBlockTableRecords (BTR) 相关的子网分组操作。它可以是常见的模型空间和图纸空间 acDbBlockTableRecords,也可以是用于各个块定义的 AcDbBlockTableRecords。这些BTR网络在逻辑上由顶级网络拥有,但实际由AcDbBlockTableRecords的扩展字典拥有。BTR网络可以通过调用AcDbAssocNetwork::getInstanceFromObject()方法来获取(如果它们尚不存在,则创建)。AcDbBlockTableRecord 的扩展字典拥有网络的方式与数据库的命名对象字典拥有顶级网络的方式相同。子网可以拥有单个操作和其他子网,具体取决于应用程序需求。


路过

雷人

握手

鲜花

鸡蛋

最新评论

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

GMT+8, 2024-5-19 14:35

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部