@版权声明:本文为版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出,
本文链接https://www.jianshu.com/p/eb774e2f145d
如有问题, 可邮件(yumxuanyi@qq.com)咨询。
关键字:**AcDbAssocNetwork、AcDbAssocAction 、AcDbAssocDependency **
通过Autocad的联合框架(Associative Framework),你可以将图形中不同的对象进行关联。当图形中某个对象的属性发生改变后,所有与该属性有直接或者间接依耐关系的对象就会自动进行更新。
并且,只有那些需要更新的对象才会以一个正确的顺序进行更新。
虽然反应器也能达到类似的功能,但是 通过联合框架,你可以避免专门为了某一个功能而创建一个新的反应器类。
通过联合框架完全可控的、按照一定关系组织的、结构严谨的统一的方式。
AcDbAssocAction
联合框架的核心概念是行为(Action),由AcDbAssocAction类表示。Action本身就是一个算法。当执行的时候,它读取一些输入,计算,并输出结果。
输入:图形中某些对象的属性。
输出:一般表示改变图形中其它对象的属性。
图形中不同对象的依耐关系由AcDbAssocDependency表示。
当输入对象的属性发生变化,Action的状态会自动改变,但是不立即进行变换。它变换产生的结果往往时修改其它对象的属性。这就像是输出对象依耐于输入对象一样。
当然,一个Action的输出也有可能 是其它Action的输入。这种情况下,前一个Action需要先变换,变换的结果再作为其它对象的输入,这就要求Actions之间是有一个变换的前后顺序
网友评论