我要做的工作是这样的:在装配体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自动退出,不知道是什么问题,望斑竹及各位高
手帮忙指点迷津,谢谢 |