uf历遍所有固体对象
#include <uf_modl.h>
#include <uf_obj.h>
#include <uf_part.h>
//------历遍所有固体对象-----------
tag_t disp_part_tag,next_tag=NULL_TAG,subtype=NULL_TAG;
int num=0,nm=0;
char *feat_type;
int type =UF_solid_type; // 对象类型 UF_solid_type
int ssubtype;
//------显示信息-----------
UF_UI_open_listing_window(); //打开窗口
UF_UI_write_listing_window("制作者:梅雷\n");
char msg[64];
//------------------------
disp_part_tag=UF_PART_ask_display_part ( ); //得到当前部件文件标识
UF_OBJ_cycle_objs_in_part(disp_part_tag,type,&next_tag);
uf_list_p_t body_list; // 变量body_list为 对象列表
UF_MODL_create_list(&body_list); // 必须写上不然下一条代码不成立
while(next_tag!=NULL_TAG )
{
num++;
UF_OBJ_ask_type_and_subtype(next_tag, &type, &ssubtype); //获得对象类型
if (ssubtype==UF_solid_body_subtype) //比较对象类型是否固体
{
nm++;
//------显示信息-----------
UF_UI_write_listing_window("第");
sprintf(msg, "%d",nm); //数字转字符串
UF_UI_write_listing_window(msg);
sprintf(msg, "%d",next_tag); //数字转字符串
UF_UI_write_listing_window("个实体ID= ");
UF_UI_write_listing_window(msg);
UF_UI_write_listing_window("\n");
//------------------------
UF_MODL_put_list_item(body_list, next_tag); // next_tag对象加入到body_list对象列表尾部
}
UF_OBJ_cycle_objs_in_part(disp_part_tag,type,&next_tag);
}
//------显示信息-----------
UF_UI_write_listing_window("实体个数 ");
sprintf(msg, "%d",nm); //数字转字符串 next_tag 特征id
UF_UI_write_listing_window(msg);
//------------------------
// nm 就是得到的实体个数
// body_list 对象列就是得到的实体
if (nm>0)
{
tag_t box_tag;
UF_MODL_ask_list_item(body_list,0,&box_tag); //获得链表中的一个对象获得第1个对象
// 设置实体透明度函数 0-100 [ug2.0没这个函数 3.0开始版本有的]
UF_OBJ_set_translucency (box_tag,50);
}
_____________________________________________________________________________ _
中磊UG二次开发教程 梅雷著 qq1821117007
学UG就上UG网 http://www.9sug.com/ |