非常感谢版主,但我当时已经初始化了,我想不是这个原因。下面是完整的main(...)函数
===============
extern void main( char argc, char *argv[] )
{
/* Initialize the API environment */
int errorCode = UF_initialize();
if ( 0 == errorCode )
{
UF_PART_load_status_t error_status;
char part_name1[133] ="d:\\WorkDir\\UgWorks\\jaw\\Jaw_03assmembly.prt";
tag_t part1;
UF_PART_open(part_name1, [$part1, &error_status)]
//获得装配根 root_part_occ
tag_t root_part_occ=UF_ASSEM_ask_root_part_occ(part1);
tag_t *child_part_occs; //数组
char part_name[132+1];
char refset_name[30+1];
char instance_name[30+1];
double origin[3];
double csys_matrix[9];
double transform[4][4];
//查询装配根root_part_occ下面的子组件
int partNum=UF_ASSEM_ask_part_occ_children(root_part_occ, [$child_part_occs)]
for(int i=0; i<partNum; i++)
{
//获得组件的属性数据
UF_ASSEM_ask_component_data(child_part_occs, part_name, refset_name,instance_name, origin, csys_matrix, transform);
cout << "art Name is ";
cout << part_name << endl;
cout << "-------------instance_name is ";
cout << instance_name << endl;
//重要的装配信息获取函数,
logical * mated=NULL;
UF_ASSEM_mating_condition_p_t mc_data;
int nResult=0;
nResult=UF_ASSEM_ask_mc_data_of_compnt(child_part_occs, mated, mc_data);
nResult=UF_ASSEM_ask_comps_mated_to_me(child_part_occs, [$mated_component, n_mated_components)]
//递归调用,遍历装配中组件
CycleAllParts(child_part_occs);
}
UF_PART_close_all();
errorCode = UF_terminate();
}
/* Print out any error messages */
 rintErrorMessage( errorCode );
} |