NX二次开发-UFUN读取图纸尺寸的值UF_DRF_ask_dimension_text

今天发现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日

原文地址:https://www.cnblogs.com/nxopen2018/p/12006281.html