马上注册,结交更多同行朋友,交流,分享,学习。
您需要 登录 才可以下载或查看,没有帐号?注册
x
UserAsmFeatVisit((ProSolid)assembly,&vec_feat);//遍历装配图得到所有的componet(返回的是ProFeature类型的vector)
ProAsmcompMdlGet(&vec_feat[0],&visit_mdl);//取第一个特征,打印文件名,没错(mdldata.name)
UserAsmcomppathGet((ProAssembly)assembly,vec_feat[0],part_comppath);//获得第一个特征的路径,路径没问题
status=ProModelitemByNameInit(visit_mdl,PRO_CSYS,L"PRT_CSYS_DEF",&part_csys_modelitem);//初始化modelitem对象
status=ProModelitemByNameInit(ele_mdl,PRO_CSYS,L"PRT_CSYS_DEF",&ele_csys_modelitem);//待装配元件,这个没问题
status=ProSelectionAlloc(&part_comppath,&part_csys_modelitem,&part_csys_sel);//转换成ProSelection对像
status=ProSelectionAlloc(NULL,&ele_csys_modelitem,&ele_csys_sel);
//装配,原型ProError UserAssembleByCsys(ProAssembly asm_model,ProSelection asm_csys,ProSolid comp_model,ProSelection comp_csys)
UserAssembleByCsys((ProAssembly)visit_mdl,part_csys_sel,(ProSolid)ele_mdl,ele_csys_sel);
结果装配失败,自定义函数没问题,因为其他函数也在调用这些函数都没问题,且另外一个按坐标装配的例子也成功,
两个例子唯一不一样的是(visit_mdl)的获得方法不一样,成功的那个例子是由ProSelection转过来的
status=ProModelitemByNameInit(visit_mdl,PRO_CSYS,L"PRT_CSYS_DEF",&part_csys_modelitem);
感觉就是这个函数的第一个参数有问题,但是status返回的是PRO_TK_NO_ERROR
难道是ProAsmcompMdlGet(&vec_feat[0],&visit_mdl)取得的ProMdl不能用作ProModelitemByNameInit的第一个参数?
那应该怎样做? |