今天发现UF_DRF_ask_dim_info这个函数不能读带附件文本的尺寸,有附加文本dim_info->text_info->text->full_string;读出来的是附加文本内容,并不是尺寸的值,后来QQ群的一位兄弟
告诉我要用UF_DRF_ask_dimension_text这个函数去读。我也测试了一下,确实可以读。
1 NX11+VS2013 2 3 #include <uf.h> 4 #include <uf_ui.h> 5 #include <uf_part.h> 6 #include <uf_draw.h> 7 #include <uf_drf.h> 8 #include <uf_obj.h> 9 10 11 UF_initialize(); 12 13 //获得图纸页数量和tag 14 int num_drawings = NULL_TAG; 15 tag_p_t drawing_tags = NULL_TAG; 16 UF_DRAW_ask_drawings(&num_drawings, &drawing_tags); 17 18 for (int i = 0; i < num_drawings; i++) 19 { 20 //打开图纸页 21 UF_DRAW_open_drawing(drawing_tags[i]); 22 23 //遍历所有尺寸 24 NXString ExpName; 25 string FeatureExpNameStr; 26 string StrRight; 27 tag_t dimTag = NULL_TAG; 28 while (!(UF_OBJ_cycle_objs_in_part1(UF_PART_ask_display_part(), UF_dimension_type, &dimTag)) && dimTag) 29 { 30 //获取尺寸值 31 int dim_subtype = 0; 32 double dim_origin[3]; 33 UF_DRF_dim_info_p_t dim_info; 34 UF_DRF_ask_dim_info(dimTag, &dim_subtype, dim_origin, &dim_info); 35 string DimValue = dim_info->text_info->text->full_string; 36 37 //打印 38 uc1601(DimValue.c_str(), 1); 39 40 //获取尺寸值 41 int num_main_text = 0; 42 char** main_text; 43 int num_dual_text = 0; 44 char** dual_text; 45 UF_DRF_ask_dimension_text(dimTag, &num_main_text, &main_text, &num_dual_text, &dual_text); 46 47 //打印 48 uc1601(main_text[0], 1); 49 } 50 } 51 52 UF_terminate(); 53 54 Caesar卢尚宇 55 2019年12月8日