NX二次开发-UFUN获取圆锥参数UF_MODL_ask_cone_parms

 1     NX11+VS2013
 2     
 3     #include <uf.h>
 4     #include <uf_modl.h>
 5     #include <uf_ui.h>
 6 
 7 
 8     UF_initialize();
 9 
10     //创建圆锥
11     UF_FEATURE_SIGN Sign = UF_NULLSIGN;//设置布尔
12     double Origin[3] = { 0.0, 0.0, 0.0 };//原点
13     char *Height = "100";//高度
14     char *Diam[2] = { "50", "20" };//顶部直径,底部直径
15     double Dirction[3] = { 0.0, 0.0, 1.0 };//矢量方向
16     tag_t ConeTag = NULL_TAG;
17     UF_MODL_create_cone1(Sign, Origin, Height, Diam, Dirction, &ConeTag);
18 
19     //获取圆锥参数
20     char *BaseDiameter;//输出底部直径
21     char *TopDiameter;//输出顶部直径
22     char *Height1;//输出高度
23     char *HalfAngle;//输出锥角
24     UF_MODL_ask_cone_parms(ConeTag, 1, &BaseDiameter, &TopDiameter, &Height1, &HalfAngle);
25 
26     //打印
27     //默认输出格式为表达式等号左右值
28     UF_UI_open_listing_window();
29     UF_UI_write_listing_window(BaseDiameter);
30     UF_UI_write_listing_window("
");
31     UF_UI_write_listing_window(TopDiameter);
32     UF_UI_write_listing_window("
");
33     UF_UI_write_listing_window(Height1);
34     UF_UI_write_listing_window("
");
35     UF_UI_write_listing_window(HalfAngle);
36 
37     //只输出表达式等号右值
38     //提取左右值
39     string Base = BaseDiameter;
40     string BaseStrleft = (Base.substr(0, Base.find("=")));//提取左值
41     string BaseStrright = (Base.substr(Base.find("=") + 1, Base.find(" ")));//提取右值
42 
43 
44     string Top = TopDiameter;
45     string TopStrleft = (Top.substr(0, Top.find("=")));//提取左值
46     string TopStrright = (Top.substr(Top.find("=") + 1, Top.find(" ")));//提取右值
47 
48     string Hei = Height1;
49     string HeiStrleft = (Hei.substr(0, Hei.find("=")));//提取左值
50     string HeiStrright = (Hei.substr(Hei.find("=") + 1, Hei.find(" ")));//提取右值
51 
52     string Hal = HalfAngle;
53     string HalStrleft = (Hal.substr(0, Hal.find("=")));//提取左值
54     string HalStrright = (Hal.substr(Hal.find("=") + 1, Hal.find(" ")));//提取右值
55 
56     char BaseBufLeft[256], BaseBufRight[256];//左值,右值
57     char TopBufLeft[256], TopBufRight[256];//左值,右值
58     char HeiBufLeft[256], HeiBufRight[256];//左值,右值
59     char HalBufLeft[256], HalBufRight[256];//左值,右值
60 
61     //将string类型转换为字符数组
62     strcpy(BaseBufRight, BaseStrright.c_str());
63     strcpy(TopBufRight, TopStrright.c_str());
64     strcpy(HeiBufRight, HeiStrright.c_str());
65     strcpy(HalBufRight, HalStrright.c_str());
66 
67     //打印右值
68     UF_UI_write_listing_window("
");
69     UF_UI_write_listing_window("
");
70     UF_UI_write_listing_window(BaseBufRight);
71     UF_UI_write_listing_window("
");
72     UF_UI_write_listing_window(TopBufRight);
73     UF_UI_write_listing_window("
");
74     UF_UI_write_listing_window(HeiBufRight);
75     UF_UI_write_listing_window("
");
76     UF_UI_write_listing_window(HalBufRight);
77 
78     //释放内存
79     UF_free(BaseDiameter);
80     UF_free(TopDiameter);
81     UF_free(Height1);
82     UF_free(HalfAngle);
83 
84 
85     UF_terminate();

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