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

iCAx开思网

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

选择product下的某个对象

[复制链接]
跳转到指定楼层
1
发表于 2010-7-5 20:46:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
part1part2中心的距离
现在就是选择part1和part2的问题
发现现在只有点击树上的名字才能选中,在对话框中显示part1.1part2.2,如图1
如果直接点击模型,反而不能显示,如图2,似乎点击模型时只选中了面,不知道怎么上传图。。。笨死啦。。。
请问该怎么设置?才能不管是点击树还是模型都能在对话框中显示模型的名字


我现在写的程序是
{
_Body1Agent = new CATPathElementAgent ("Body1Agent");

_Body1Agent -> SetBehavior( CATDlgEngRepeat|CATDlgEngWithPSOHSO
);



_Body2Agent = new CATPathElementAgent ("Body2Agent");


_Body2Agent -> SetBehavior( CATDlgEngRepeat|CATDlgEngWithPSOHSO
);



_OKAgent=
new CATDialogAgent("OK Agent");


_OKAgent->AcceptOnNotify ( _Panel, _Panel->GetDiaOKNotification());



_CancelAgent=
new CATDialogAgent("Cancel Agent");


_CancelAgent->AcceptOnNotify ( _Panel, _Panel->GetDiaCANCELNotification());



// Define State


CATDialogState * FirstState = GetInitialState(" Select a Body1 ");


CATDialogState * SecState = AddDialogState(" Select a Body2 ");



// Plug Agent to the State


FirstState -> AddDialogAgent (_Body1Agent);


FirstState -> AddDialogAgent (_Body2Agent);


FirstState -> AddDialogAgent (_CancelAgent);



SecState -> AddDialogAgent (_Body2Agent);


SecState -> AddDialogAgent (_OKAgent);


SecState -> AddDialogAgent (_CancelAgent);



// Define transiton with condition and Action( optional)


AddTransition( FirstState, SecState,


IsOutputSetCondition (_Body1Agent),


Action ((ActionMethod) &FirstSpringBpdCmd::ActionOne));



AddTransition( SecState,SecState,


IsOutputSetCondition (_Body2Agent),


Action ((ActionMethod) &FirstSpringBpdCmd::ActionTwo));



AddTransition(SecState, NULL,


IsOutputSetCondition (_OKAgent),


Action ((ActionMethod) &FirstSpringBpdCmd::OKAction));


AddTransition( SecState, NULL,


IsOutputSetCondition (_CancelAgent),


Action ((ActionMethod) &FirstSpringBpdCmd::CancelAction));

}

ActionOne 函数里是这样写的:
ActionOne( void *data )
{

cout<< " Action one "<<endl;


//retrieve new selected


CATBaseUnknown *piUnknown = _Body1Agent->GetElementValue();


_spBody1 = NULL_var;


_spBody1 = piUnknown;


CATISpecObject_var spSpecOnBody1 =_spBody1;


_SelectorList003->SetLine(spSpecOnBody1->GetName(),0,CATDlgDataModify);


// Initiliase the acquisition


_Body1Agent->InitializeAcquisition();



return TRUE;

}
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 赞一下!赞一下!
2
发表于 2010-7-5 20:48:11 | 只看该作者
附件中有图。。。希望好心人解答。。。谢谢啦 1# 124225512

本帖子中包含更多资源

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

x
3
发表于 2010-7-6 10:22:00 | 只看该作者
将CATPathElementAgent 换成CATFeatureImportAgent
CATPathElementAgent 一般只能从结构树上选择得到需要的元素,CATFeatureImportAgent可以从结构树或者文档中直接点击模型进行选择
_Body1Agent = new CATFeatureImportAgent("Body1Agent");
_Body1Agent -> AddOrderedElementType("CATIGSMTool");
_Body1Agent -> SetBehavior( CATDlgEngRepeat|CATDlgEngWithPSOHSO);

看了你的附件,你在程序中要求选择的是两个Part文档,属于同一种类型,不需要定义两个_BodyAgent
你的代码有几个问题:
1、用你的方法来定义,你可以从第一状态跳到第二个状态,但不能从第二个状态跳到第一个状态,若第一个选择出现错误,你则不能重新选择;
2、若是选择之后,对第一个进行修改,你必须还要再选择第二个才能点击OK
3、在CATIA中一般选择一个元素,只对当前的进行高亮显示,之前选择的不高亮。但你选择的元素都会呈现高亮状态
4
发表于 2010-7-6 11:18:30 | 只看该作者
你说的问题都是在的,我用CATFeatureImportAgent也试过,但是在这个项目中有时需要选择的是两个part,有时选择的是几个part组成的product,如果用CATFeatureImportAgent中SetOrderedElementType限定为三维时,似乎只能在树中点击零部件下面的分支才能选中,请问这个应该如何解决呢?

以及刚刚你提到的几个问题:
1、用你的方法来定义,你可以从第一状态跳到第二个状态,但不能从第二个状态跳到第一个状态,若第一个选择出现错误,你则不能重新选择
——这个问题困扰我很久了,改了很多次都不知道怎么实现跳转

3、在CATIA中一般选择一个元素,只对当前的进行高亮显示,之前选择的不高亮。但你选择的元素都会呈现高亮状态
——这个是我设置上的错误,没有看明白百科全书中到底用哪个参数好

谢谢~~

3# 歆韵
5
发表于 2010-7-7 09:15:13 | 只看该作者
选择Part或是Product的我自己没有做过,你可以尝试写几个AddOrderedElementType的方法,把你需要选择的类型都添加进去
状态变换的问题:对选择的是一种类型的元素只定义一个State(无论选择的元素有几个),但对存放选择元素的每个Editor都添加Agent(存放相同类型的元素的Editor),当选择出现错误时,用鼠标点击到相应的Editor后再进行选择。具体实现代码太多
高亮显示问题:使用CATHSO接口
其实你现在出现的问题我以前都遇到过,我们也是在前段时间才解决
头像被屏蔽
6
发表于 2010-8-15 18:31:14 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
7
发表于 2014-3-17 20:39:18 | 只看该作者
_CancelAgent->AcceptOnNotify ( _Panel, _Panel->GetDiaCANCELNotification());
大神,这句话什么意思
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

GMT+8, 2025-2-3 07:48 , Processed in 0.038297 second(s), 12 queries , Gzip On, Redis On.

Powered by Discuz! X3.3

© 2002-2025 www.iCAx.org

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