1 UF_initialize(); 2 tag_t disp_part_tag, next_tag = NULL_TAG, subtype = NULL_TAG; 3 int num = 0, nm = 0; 4 int type = UF_solid_type; // 对象类型 UF_solid_type 5 int ssubtype; 6 uf_list_p_t body_list; 7 UF_MODL_create_list(&body_list); 8 disp_part_tag = UF_PART_ask_display_part(); //得到当前部件文件标识 9 UF_OBJ_cycle_objs_in_part(disp_part_tag, type, &next_tag); 10 while (next_tag != NULL_TAG) 11 { 12 num++; 13 UF_OBJ_ask_type_and_subtype(next_tag, &type, &ssubtype); //获得对象类型 14 if (ssubtype == UF_solid_body_subtype) //比较对象类型是否固体 15 { 16 nm++; 17 uf_list_p_t face_list; 18 int num_faces; 19 UF_MODL_put_list_item(body_list, next_tag); //next_tag对象加入到body_list对象列表尾部 20 UF_OBJ_delete_name(next_tag); 21 UF_MODL_ask_body_faces(next_tag, &face_list); 22 UF_MODL_ask_list_count(face_list,&num_faces);//查询链表数量 23 for (int i = 0; i < num_faces; i++) 24 { 25 tag_t face_tag = NULL_TAG; 26 UF_MODL_ask_list_item(face_list,i, &face_tag); 27 UF_OBJ_delete_name(face_tag); 28 } 29 UF_MODL_delete_list(&face_list); 30 31 } 32 UF_OBJ_cycle_objs_in_part(disp_part_tag, type, &next_tag); 33 } 34 if (nm > 0) 35 { 36 UF_MODL_delete_body_parms(body_list); //删除对象列表所有对象参数 37 } 38 UF_MODL_delete_list(&body_list); 39 UF_terminate();