拖动时评估
在拖动过程中,将对每个拖动样本评估顶级网络。当拖动的实体附加了依赖项时,将通知依赖项。依赖项、拥有依赖项的操作以及拥有这些操作的网络的 AcDbAssocStatus 将更改为 kChangedDirectlyAssocStatus,如上一节所述。这会在评估顶级网络时将这些操作以及可能的其他操作标记为需要评估。网络评估可能会更改其他实体,并且这些其他更改的实体也需要在拖动时实时显示。 AutoCAD 拖动机制基于一个简单的概念,即在每个拖动样本上创建拖动图元的非数据库驻留克隆、更改克隆、显示克隆和删除克隆。在拖动过程中不会更改数据库驻留实体;它们只在最后改变。 为了从操作代码中隐藏拖动实体的非数据库驻留克隆的创建和操作,提供了模板类 AcDbAssocObjectPointer。该操作应使用此模板类打开在操作评估期间需要使用或修改的所有实体。该操作将要打开的对象的 AcDbObjectId 传递给 AcDbAssocObjectPointer 对象。如果不拖动,AcDbAssocObjectPointer 对象表示提供的 AcDbObjectId 的 AcDbObject。但是,在拖动过程中,AutoCAD 拖动机制会创建原始图元的非数据库驻留克隆,然后 AcDbAssocObjectPointer 表示此非数据库驻留图元。然后,操作代码使用或修改此实体,其方式与修改原始数据库驻留实体的方式相同;它不需要做任何特殊的事情来支持拖动。 父主题: |
|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1 苏公网安备32011402011833)
GMT+8, 2025-1-19 07:30
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.