CATIA二次开发:CAA实现状态机
来源:互联网 发布:快压 mac版 怎么用 编辑:程序博客网 时间:2024/04/25 15:50
1.Command初始化:Agent、CATDialogState、Transition实现状态机
Agent:CATPathElementAgent可获取元素;CATIndicationAgent可实现鼠标单击双击行为。
CATDialogState状态机
AddTransition状态机跳转条件:IsLastModifiedAgentCondition只要Agent变化就触发,Action可不短响应Agent变化;IsOutputSetCondition只要Agent值变化一次,就完成该Action。
2.Command初始化:BuildGraph中使用AndCondition实现跳转逻辑
下面两个Transition,按照顺序来执行,若执行了第一个Action,就不执行第二个Action;若第一个Action没有执行,则执行第二个Action。下面两行代码可实现pFirState到【pChangeAnnotationDirState或pSecState】的逻辑操作。
第一个Transition:
AddTransition( pFirState, pChangeAnnotationDirState,
AndCondition(IsOutputSetCondition(m_SelcAnnotationElmAgt),
Condition((ConditionMethod) & SteelBarGroupAnnotationCmd::GetAnnoDirMode)),
Action ((ActionMethod) &SteelBarGroupAnnotationCmd::AnnotationElmSelected));
说明:AndCondition中的两个条件,IsOutputSetCondition(m_SelcAnnotationElmAgt)和Condition((ConditionMethod) & SteelBarGroupAnnotationCmd::GetAnnoDirMode),都为真时,执行Action ((ActionMethod) &SteelBarGroupAnnotationCmd::AnnotationElmSelected);若Condition((ConditionMethod) & SteelBarGroupAnnotationCmd::GetAnnoDirMode)返回false,则不执行Action,跳转到下面的Transition。
第二个Transition:
AddTransition( pFirState, pSecState,
IsOutputSetCondition (m_SelcAnnotationElmAgt),
Action ((ActionMethod) &SteelBarGroupAnnotationCmd::AnnotationElmSelected));
说明:从pFirState跳转到pSecState
1.Command初始化:Agent、CATDialogState、Transition实现状态机
Agent:CATPathElementAgent可获取元素;CATIndicationAgent可实现鼠标单击双击行为。
CATDialogState状态机
AddTransition状态机跳转条件:IsLastModifiedAgentCondition只要Agent变化就触发,Action可不短响应Agent变化;IsOutputSetCondition只要Agent值变化一次,就完成该Action。
2.Command初始化:BuildGraph中使用AndCondition实现跳转逻辑
下面两个Transition,按照顺序来执行,若执行了第一个Action,就不执行第二个Action;若第一个Action没有执行,则执行第二个Action。下面两行代码可实现pFirState到【pChangeAnnotationDirState或pSecState】的逻辑操作。
第一个Transition:
AddTransition( pFirState, pChangeAnnotationDirState,
AndCondition(IsOutputSetCondition(m_SelcAnnotationElmAgt),
Condition((ConditionMethod) & SteelBarGroupAnnotationCmd::GetAnnoDirMode)),
Action ((ActionMethod) &SteelBarGroupAnnotationCmd::AnnotationElmSelected));
说明:AndCondition中的两个条件,IsOutputSetCondition(m_SelcAnnotationElmAgt)和Condition((ConditionMethod) & SteelBarGroupAnnotationCmd::GetAnnoDirMode),都为真时,执行Action ((ActionMethod) &SteelBarGroupAnnotationCmd::AnnotationElmSelected);若Condition((ConditionMethod) & SteelBarGroupAnnotationCmd::GetAnnoDirMode)返回false,则不执行Action,跳转到下面的Transition。
第二个Transition:
AddTransition( pFirState, pSecState,
IsOutputSetCondition (m_SelcAnnotationElmAgt),
Action ((ActionMethod) &SteelBarGroupAnnotationCmd::AnnotationElmSelected));
说明:从pFirState跳转到pSecState
0 0
- CATIA二次开发:CAA实现状态机
- Catia CAA二次开发系列一
- Catia CAA二次开发系列二
- Catia CAA 二次开发----batch program
- CATIA二次开发CAA实现树形控件的方法
- CATIA二次开发CAA实现ActiveX插件(以Windows Media Player为例)的方法
- 想入门CATIA二次开发CAA的盆友看过来(谈谈开发经验,或许对你有帮助!)
- caa二次开发的安装
- VS2012配置CATIA R2016 CAA RADE
- Catia 二次开发 资料
- CATIA二次开发资源汇总
- Catia 二次开发 资料
- CATIA 二次开发 C#
- Catia二次开发R19安装说明
- Catia二次开发R22安装说明
- 【二次开发】如何使用C#进行CATIA二次开发
- 通过CAA在CATIA中创建自己的工具栏按钮和菜单
- 通过CAA在CATIA中创建自己的工具栏按钮和菜单
- astgo-完整功能介绍
- Android JNI 在C中密码加密
- hihoCoder #1364 : 奖券兑换(超大0 1 背包)
- linux内核线程死锁或死循环(soft lockup)之后如何让系统宕机重启
- OSI七层模型的作用
- CATIA二次开发:CAA实现状态机
- 【java】Long.valueOf()和longValue()区别
- bookStore项目总结
- aof恢复与rdb服务器间迁移
- 野指针问题
- srs之深入浅出看流媒体
- 欢迎使用CSDN-markdown编辑器
- android_WEEX android端各种问题
- sqlserver 索引,学术不精,这个现象有点怪