找回密码 注册 QQ登录
开思网工业级高精度在线3D打印服务

iCAx开思网

CAD/CAM/CAE/设计/模具 高清视频【积分说明】如何快速获得积分?快速3D打印 手板模型CNC加工服务在线3D打印服务,上传模型,自动报价
查看: 18234|回复: 6
打印 上一主题 下一主题

CAA如何状态转移

[复制链接]
跳转到指定楼层
1
发表于 2006-2-24 09:54:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多同行朋友,交流,分享,学习。

您需要 登录 才可以下载或查看,没有帐号?注册

x
CAA里面好像不喜欢用回调函数(听别人说的:)),只是在命令类里面得到对话框的Notification然后执行某一个函数,但是存在状态转移的问题,我不知怎么解决。举例来说吧:对于对话框的cancel按钮,我的程序是
        _CancelAgent=  new CATDialogAgent("CancelAgent");
        _CancelAgent->AcceptOnNotify ( pi, pi->GetDiaCANCELNotification());
        CATDialogState *stState3 = AddDialogState("panel");
                       initialState -> AddDialogAgent (_CancelAgent);
             AddTransition( stState3 , NULL,
                 IsOutputSetCondition (_CancelAgent),
                 Action ((ActionMethod) &TCmd::ActionCancel));
如果打开对话框后什么也不做直接点cancel按钮想关闭对话框,因为状态还是stState1,就不会去执行ActionCancel函数。我想知道的是:如何做到不管当前处于哪个状态,只要点cancel按钮就自动转到stState3 ,然后执行ActionCancel函数。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 赞一下!赞一下!
2
发表于 2006-2-24 11:05:29 | 只看该作者
AddTransition( stState3 , NULL, 。。。
为什么是stState3 呢?
你的CancelAgent明明在initialState里呀:
initialState -> AddDialogAgent (_CancelAgent);

>CAA里面好像不喜欢用回调函数(听别人说的:))
听我说的吧,呵呵。
其实也不能这么说,只是因为用途不同:
command里面回调函数主要用于UI方面的控制(比如输入检查之类)
而涉及到transation,回调函数就不如Agent强大了,反而有时会捣乱(比如flyerfang的例子)

终于,偷偷安装IME了。
就是觉得打中文慢。
3
发表于 2006-2-24 12:24:19 | 只看该作者
呵呵,谢谢saeba兄,我用几个state是用来选不同的物体,选完一个对象后从initialState跳到下一个state,还没调试好。能不能贴点BuildGrath里面选几个对象(比如一个agent选面一个agent选线)的代码看看,这一部分的机制到现在也不太明白。
还有就是在命令结束时能不能在回调函数中把命令设为非活动状态,(我想在回调函数中把状态设为空能行吗?)
4
发表于 2006-2-24 13:13:12 | 只看该作者
抱歉,我现在手头上已经没任何CAA/CATIA的东西了(转行了,呵呵)
我记得我给你发过的信里应该有这样的例子。

>把命令设为非活动状态
是什么意思?是指让图标变灰吗?这应该是对Addin(toolbar)的操作,以前找过但没找到方法。
>我想在回调函数中把状态设为空能行吗?
是指把state设成NULL吗?可是state被设成NULL仅仅意味着command结束。。。(和活动状态没有关系呀。。。而且命令结束的话,state就已经是NULL了)
5
发表于 2006-2-24 17:02:17 | 只看该作者
saeba兄,这么高的水平你怎么转行了呢?是不是CAA没有什么前途啊,打击中.......
6
发表于 2006-2-24 17:10:29 | 只看该作者
实在是干烦了.
倒也不能说就没有前途,
喜欢的人还是很喜欢的,我是属于恨之入骨一类的,呵呵
7
发表于 2006-2-27 09:33:31 | 只看该作者
还是不行呀,就是说我有两个state :state1、state2,有没有得到当前的state的函数,我才能吧它置空(或者干脆把所有的state 都置空行吗?)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3D打印手板模型快速制作服务,在线报价下单!

QQ 咨询|手机版|联系我们|iCAx开思网  

GMT+8, 2024-12-24 01:39 , Processed in 0.022932 second(s), 11 queries , Gzip On, Redis On.

Powered by Discuz! X3.3

© 2002-2024 www.iCAx.org

快速回复 返回顶部 返回列表