[c++] uf层操作

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


// 层名不能用中文,层描述可以用

#include <uf_obj.h>
#include <uf_layer.h>

// 对象移动到层
UF_OBJ_set_layer (tag_t object_id,int layer );

// 读取工作层。
UF_LAYER_ask_work_layer (int * layer_number );

UF_LAYER_set_all_but_work (UF_LAYER_ACTIVE_LAYER);   //所有层可见
UF_LAYER_set_all_but_work (UF_LAYER_INACTIVE_LAYER); //所有层不可见
UF_LAYER_set_all_but_work (UF_LAYER_REFERENCE_LAYER);//所有层只可见

//设置指定层指定相应的状态。
UF_LAYER_set_status(255,UF_LAYER_INACTIVE_LAYER); //255层不可见
//UF_LAYER_WORK_LAYER      工作层
//UF_LAYER_ACTIVE_LAYER    可选择
//UF_LAYER_REFERENCE_LAYER 只可见
//UF_LAYER_INACTIVE_LAYER  不可见


//读取层状态。
int layer_number=1;  //输入 层号
int layer_status;    //输出 层状态
UF_LAYER_ask_status (layer_number, &layer_status );
if(layer_status==UF_LAYER_WORK_LAYER) uc1601("工作层",1);
if(layer_status==UF_LAYER_ACTIVE_LAYER) uc1601("可见",1);
if(layer_status==UF_LAYER_REFERENCE_LAYER) uc1601("只可见",1);
if(layer_status==UF_LAYER_INACTIVE_LAYER) uc1601("不可见",1);

//---------------------------------------------------------------

//创建 层组 层名 层描述
UF_LAYER_category_info_t cat;
  tag_t cat_tag=NULL;
  strcpy(cat.name, "M_3");              //层名
  strcpy(cat.descr, "产品未缩放");   //描述
  for (i = -1; i < 255;)
      {
           i++;
       cat.layer_mask = 0;
      }
  cat.layer_mask[3] = 1;  //加入到层组
UF_LAYER_create_category(&cat, &cat_tag);//创建 层组 层名 层描述
//编辑
//UF_LAYER_edit_category_name(cat_tag, "ASM_20"); /* 编辑 名称 */
//UF_LAYER_edit_category_descr(cat_tag,"Assembly Line 20");  /* 编辑 描述 */
//UF_LAYER_edit_category_layer(cat_tag, cat.layer_mask); /* 编辑 范围 */
//UF_LAYER_ask_category_info(cat_tag, &cat); //得到的分类信息
//uc1601(cat1.name,1);
//uc1601(cat1.descr,1);


// 通过层名获得层标识
tag_t  category;
UF_LAYER_ask_category_tag ("LEI", &category );


//通过层标识 编辑类别描述。
char cat_descr[81]="LEI";
UF_LAYER_edit_category_descr (category, cat_descr );

//通过层标识 编辑名称。
char cat_name[31]="MM";
UF_LAYER_edit_category_name (category, cat_name );

// 通过层名获得层标识
UF_LAYER_ask_category_tag ("MM", &category );

//通过层标识 编辑层组范围
logical layer_mask[256];
int i;
  for (i = 0; i < 256; ++i)
      {
       layer_mask = 0;
      }
  layer_mask[5] = 1;  //第6层 加入到层组
  layer_mask[6] = 1;  //第7层 加入到层组
  layer_mask[18] = 1; //第19层 加入到层组
UF_LAYER_edit_category_layer (category, layer_mask);

//---------------------------------------------------------------




设置指定层指定相应的状态。的工作层不提及或无效。
只有一层可工作层。如果出现任何错误,则不是层状态改性。
UF_LAYER_set_many_layers_status


//读取类别名称,构件层,和描述
UF_LAYER_ask_category_info



循环工作部分的层。
第一个电话:返回第一层对象启用。
下一个电话:返回下一个对象层下启用。
最后呼吁:当所有的对象已经筋疲力尽,
返回object_tag = null_tag。
不要试图删除对象时,循环回路中的数据库。问题
可以发生在试图读取下一个对象时当前对象已经
删除。要删除的对象,在它的对象保存一个数组,然后
当你完成了循环,使用uf_obj_delete_array_of_objects删除
保存的对象数组。
UF_LAYER_cycle_by_layer


//---------------------------------------------------------------




//获得对象信息
tag_t object;
UF_OBJ_disp_props_s dispprops;
UF_OBJ_ask_display_properties (object, &dispprops);
/*
   这些信息都保存在结构体UF_OBJ_disp_props_s中,

        成员变量                               成员变量描述
Int layer                 对象所在的层

Int color                 对象的颜色

Int blank_status          对象的隐藏状态:UF_OBJ_NOT_BLANKED;
                              UF_OBJ_BLANKED

Int line_width            对象的线宽:UF_OBJ_WIDTH_NORMAL;
                              UF_OBJ_WIDTH_THICK;
                              UF_OBJ_WIDTH_THIN;
                              UF_OBJ_WIDTH_ORIGINAL

Int font                  对象的线型

Logical   highlight_status     对象的高亮显示状态

int ll=dispprops.layer //对象所在的层
*/




_____________________________________________________________________________ _

中磊UG二次开发教程 梅雷著 qq1821117007
学UG就上UG网 http://www.9sug.com/
就上UG网淘宝直营店
您需要登录后才可以回帖 登录 | 注册UG网 用百度帐号登录

本版积分规则