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();