[c++] uf 历遍所有固体对象

[复制链接]
梅雷工具箱发表于 2015-6-25 14:09:28 | 显示全部楼层 |阅读模式

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/
就上UG网淘宝直营店
您需要登录后才可以回帖 登录 | 注册UG网 用百度帐号登录

本版积分规则