OPENC函数 UF_CSYS UF_MODL UF_OBJ函数(建模注意坐标系);

 1 //用到的函数 
 2 //UF_MODL_create_block1 ,UF_MODL_ask_feat_body,UF_OBJ_set_name,UF_CSYS_map_point
 3     UF_initialize();
 4 
 5     //MODL_create_block1
 6     UF_FEATURE_SIGN sign=UF_NULLSIGN;
 7     double corner_pt[3]={0.0};
 8     char *edge_len [3]={"50.0","80.0","100.0"};
 9     tag_t blk_obj_id=NULL;
10     //ask_feat_body
11     tag_t body_obj_tag=NULL;
12     tag_t body_obj_tag_2=NULL;
13     //OBJ_set_name
14     char obj_name[UF_OBJ_NAME_LEN+1]="块1";
15     char obj_name_2[UF_OBJ_NAME_LEN+1]="块2";
16     //CSYS_map_poin
17     int input_csys=UF_CSYS_ROOT_WCS_COORDS;
18     int output_csys=UF_CSYS_WORK_COORDS;
19     double input_point [3]={0.0};
20     double output_point [3]={0.0};
21     //创建块1(原点是关于绝对CSYS。但是,边长的 方向是相对于WCS的)
22     UF_MODL_create_block1(sign,corner_pt,edge_len,&blk_obj_id);
23     //特征找体
24     UF_MODL_ask_feat_body(blk_obj_id,&body_obj_tag);
25     //设置名字
26     UF_OBJ_set_name(body_obj_tag,obj_name);
27     //坐标系映射
28     UF_CSYS_map_point(input_csys,input_point,output_csys,output_point);
29     //块2
30     UF_FEATURE_SIGN sign_2=UF_NULLSIGN;
31     double corner_pt_2[3]={output_point[0],output_point[1],output_point[2]};
32     char *edge_len_2[3]={"50.0","80.0","100.0"};
33     tag_t blk_obj_id_2=NULL;
34     //创建块2
35     UF_MODL_create_block1(sign_2,corner_pt_2,edge_len_2,&blk_obj_id_2);
36     //特征找体
37     UF_MODL_ask_feat_body(blk_obj_id_2,&body_obj_tag_2);
38     //设置名字
39     UF_OBJ_set_name(body_obj_tag_2,obj_name_2);
40     //******************注意注意**********************//
41     /*
42         modl里创建特征时要注意坐标系的问题 ,例如创建块他的
43         原点是按照绝对坐标系来,然而边长的方向是相对于wcs
44         坐标系的。
45         所以,建模环境中创建体或特征时,最好将坐标系统一,
46         然后在执行创建操作。
47     */
48 
49     UF_terminate();

原文地址:https://www.cnblogs.com/zzyfym/p/12038635.html