iCAx开思工具箱

标题: 关于propdb_auto_interchange()函数的问题 [打印本页]

作者: zymgg    时间: 2006-3-27 18:23
标题: 关于propdb_auto_interchange()函数的问题
有哪位高手用过这个函数prodb_auto_interchange()?
我想用这个函数实现族表零件的自动替换,toolkit中提供的函数原型为prodb_auto_interchange(
Prohandle p_asm
int memb_num
int replace_id_list
Prohandle p_model
)
相关方法注释
Instances in a family table share the same assembly constraints.
Consequently, you can automatically replace an assembly
component with another instance in the component's family table
without respecifying any assembly constraints. Simply retrieve the
handle for the replacement instance and pass this handle toprodb_auto_interchange().

若有人做过相关方面的研究,请与我联系
qq:19947386  请著明 prodb_auto_interchange()
skype:smoothzym
作者: zymgg    时间: 2006-3-28 19:47
有没有同道?
作者: zymgg    时间: 2006-3-28 19:48
大侠啊
快出现啊
作者: zymgg    时间: 2006-3-30 15:47
标题: 函数prodb_auto_interchange()的问题
我在详细说明一下:
我要做的工作是这样的:在装配体A1.ASM中有两个元件B和C,B有若干个族表子零件B_10,B_12.......,现在,我要用这个函数实现以B_10来替换B的功能,
..................................
ProFileName name;
ProMdl instmdl;
Prohandle p_asm,p_model;
ProIdTable Idlist[1]={39};
int w_id;

ProMdlCurrentGet(&p_asm);
ProStringToWstring(name, "B_10");
ProMdlRetrieve(name, ProMdlType(PRO_MDL_PART),&p_model);

prodb_auto_interchange(Prohandle(p_asm),1,Idlist[1],Prohandle(p_model));

ProMdlWindowGet(p_asm,&w_id);
ProWindowActivate(w_id);
ProSolidRegenerate(ProSolid(p_asm),PRO_B_TRUE);
...................................

组件A1.ASM由B和C组成,B在A1.ASM中的ID为39,B和C都在层树的第一层.故我认为num应为1,
Idlist[1]={39},使用时,先打开A1.ASM,故函数ProMdlCurrentGet(&p_asm)的输出结果p_asm
应是A1.ASM的句柄,
ProStringToWstring(name, "B_10");
ProMdlRetrieve(name, ProMdlType(PRO_MDL_PART),&p_model);
这两个函数来输出元件"B_10"的句柄p_model.
编译也通过了,但在注册时,Pro/E自动退出,不知道是什么问题,望可林斑竹及
作者: zymgg    时间: 2006-3-30 15:48
标题: prodb_auto_interchange
我要做的工作是这样的:在装配体A1.ASM中有两个元件B和C,B有若干个族表子零件B_10,B_12.......,现在,我要用这个函数实现以B_10来替换B的功能,
..................................
ProFileName name;
ProMdl instmdl;
Prohandle p_asm,p_model;
ProIdTable Idlist[1]={39};
int w_id;

ProMdlCurrentGet(&p_asm);
ProStringToWstring(name, "B_10");
ProMdlRetrieve(name, ProMdlType(PRO_MDL_PART),&p_model);

prodb_auto_interchange(Prohandle(p_asm),1,Idlist[1],Prohandle(p_model));

ProMdlWindowGet(p_asm,&w_id);
ProWindowActivate(w_id);
ProSolidRegenerate(ProSolid(p_asm),PRO_B_TRUE);
...................................

组件A1.ASM由B和C组成,B在A1.ASM中的ID为39,B和C都在层树的第一层.故我认为num应为1,
Idlist[1]={39},使用时,先打开A1.ASM,故函数ProMdlCurrentGet(&p_asm)的输出结果p_asm
应是A1.ASM的句柄,
ProStringToWstring(name, "B_10");
ProMdlRetrieve(name, ProMdlType(PRO_MDL_PART),&p_model);
这两个函数来输出元件"B_10"的句柄p_model.
编译也通过了,但在注册时,Pro/E自动退出,不知道是什么问题,望斑竹及各位高
手帮忙指点迷津,谢谢




欢迎光临 iCAx开思工具箱 (https://t.icax.org/) Powered by Discuz! X3.3