CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

AutoCAD 2019 开发者帮助

主要概念

2024-5-18 17:57| 发布者: admin| 查看: 78| 评论: 0|原作者: admin|来自: AutoCAD

主要概念

使用关联框架,您可以创建 AutoCAD 图形/模型,其中对象相互关联并相互交互。当图形中某些对象的属性发生更改时,直接或间接依赖于这些对象已更改属性的所有其他对象将自动更新。只有需要更新的对象才会真正更新,并且按照正确的顺序更新。这减少了临时使用 AutoCAD Reactor 来实现类似目标的需要,并以统一、结构化和受控的方式表示对象关系。所有基于关联框架构建的应用程序(包括核心 AutoCAD 功能)的行为都是统一的,并以统一的方式更新对象。

框架的主要构建块是动作的概念,由类表示。动作是一种算法,在执行时,它会接受一些输入,执行计算并产生一些输出。动作通常从图纸中的属性中获取输入;操作的输出通常意味着更改图形中某些其他对象的属性。操作对对象属性的依赖关系由类表示。AcDbAssocActionAcDbObjectsAcDbAssocDependency

当输入对象的属性发生更改时,将通知操作并在以后进行评估;它的计算会更改输出对象的属性。这有效地在输出对象依赖于输入对象的对象之间建立了关系。可能有些操作的输出对象充当某些其他操作的输入对象。在这种情况下,需要首先评估前一个操作,它们更改其输出对象的属性,然后后一个操作使用这些对象的更新属性。这在操作之间建立了(部分)顺序。动作聚集在网络中,这些网络是有向无环图的泛化,并由类表示。它本身就是一个动作,允许表示分层关联结构。AcDbAssocNetworkAcDbAssocNetwork

当对象的属性发生更改时,将通知依赖于该对象的所有操作,但不会立即计算这些操作。在明确请求时,稍后将对需要评估的所有操作进行评估。AutoCAD 请求动作评估的典型时间是在每个命令的末尾,或者在拖动期间,在每个拖动样本上。动作评估会更新动作的输出对象,从而有效地维护图形中对象之间的关系。

操作本身可以保持状态,但在许多情况下,它们或多或少是无状态算法,并且状态保留在图形中的对象/实体中。因此,通常绘图的状态保持在 ,行为/智能保持在 中,连通性由对象上的动作表示。将操作保持在一起,但不保留对象/实体。对象/实体由其各自的所有者保存,例如 、 等AcDbObjects/EntitiesAcDbAssocActionsAcDbAssocDependenciesAcDbAssocNetworkAcDbBlockTableRecordsAcDbDictionaries

ObjectARX 中直接提供了一些派生操作类。是具有名称、算术表达式和当前值的操作。该操作以 2d 变分约束的形式表示 AutoCAD 图元之间的关系,例如声明两条线平行,或者弧心到线中点的距离由公式定义,例如 。AcDbAssocVariableAcDbAssoc2dConstraintGroupd2=d1+a

应用程序可以派生自己的操作类,以实现内置对象或自定义对象之间的自定义行为和关系。当以这种方式实现自定义行为时,自定义行为不会像以前那样使用反应器机制,而是将自己无缝地插入到关联机制中。然后,在每个命令的末尾自动评估它们,在每个拖动样本上评估它们,在克隆它们所依赖的对象时可以请求克隆,等等。

父主题:

  1. 关联框架

路过

雷人

握手

鲜花

鸡蛋

最新评论

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

GMT+8, 2025-1-19 07:26

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部