CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

ObjectARX 开发指南

表示行为

2022-12-31 16:02| 发布者: admin| 查看: 354| 评论: 0|来自: AutoCAD

从 AcDbAssocAction 类派生的对象用于表示图形中的操作/行为。评估操作时,它们接受输入、执行算法并生成输出。该操作拥有一组 AcDbAssocDependencies,这些依赖项通过使用(读取)这些对象的属性、更改(写入)这些对象的属性或两者来定义操作所依赖的图形中的哪些对象。我们说该操作在对象上具有“只读”依赖项、“只写”依赖项或“读写”依赖项。单个操作可以拥有任意数量的依赖项,因此可以使用和修改任意数量的对象。

当操作读取了某些对象的依赖项并写入了对其他某些对象的依赖项时,它会有效地定义这些对象之间的父子关系。操作从中读取的对象是父对象,操作写入的对象是子对象。例如,父子关系可能是关联圆角操作,该操作在圆角曲线上具有读取依赖关系(可能由 AcDbCurve 实体表示)和对圆角弧的写入依赖关系(可能由 AcDbArc 实体表示)。圆弧对象是两条圆角曲线的子项,完全由两条曲线和圆角半径定义。更改圆角曲线或圆角半径并计算关联圆角操作会重新计算圆角弧,但更改圆角弧不会更改圆角曲线。如果圆角弧发生更改,则会忽略此更改,并将圆角弧反转回原来的状态。

自定义操作的功能在派生自 AcDbAssocActionBody 的类中实现。AcDbAssocAction 是 AcDbAssocActionBody 对象的硬所有者。进行此拆分的原因是为了更好地处理未加载自定义应用程序的情况。在这种情况下,AcDbAssocAction 对象仍将存在并正常运行,并且有关哪些操作取决于哪些对象的连接信息仍然可用。只有 AcDbAssocActionBody 对象将成为代理,并且自定义功能将不可用。您可能还注意到,AcDbAssocAction 类没有任何虚拟方法,因此无法重写其方法。另一方面,AcDbAssocActionBody 类有许多虚拟方法,其名称以“Override”后缀结尾。这些虚拟方法对应于 AcDbAssocAction 类上的非虚拟方法。它们将被自定义应用程序覆盖以实现自定义功能。

AcDbAssocAction 类的主要方法是 evaluate() 方法。它调用拥有的 AcDbAssocActionBody 对象的 evaluateOverride() 方法,该方法执行操作的算法。evaluate() 方法的参数是一个非空指针,指向从 AcDbAssocEvaluationCallback 类派生的对象,该类允许操作通知其计算进度。


路过

雷人

握手

鲜花

鸡蛋

最新评论

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

GMT+8, 2024-5-19 13:59

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部