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();
Life's is not that binary