NX二次开发-UF_MODL_ask_point_containment获取一个点是在体(面,边)的边界内部,外部,还是边界上

 1     NX9+VS2012
 2 
 3 
 4     #include <uf.h>
 5     #include <uf_modl.h>
 6     #include <uf_curve.h>
 7     #include <uf_ui.h>
 8 
 9 
10     UF_initialize();
11 
12     //创建块
13     UF_FEATURE_SIGN Sign = UF_NULLSIGN;
14     double CornerPt[3] = {0.0, 0.0, 0.0};
15     char* EdgeLen[3] = {"100", "100", "100"};
16     tag_t BlkTag = NULL_TAG;
17     UF_MODL_create_block1(Sign, CornerPt, EdgeLen, &BlkTag);
18 
19     //特征找体
20     tag_t BodyTag = NULL_TAG;
21     UF_MODL_ask_feat_body(BlkTag, &BodyTag);
22 
23     //创建点1(在块内部)
24     double P1[3] = {50.0, 50.0, 50.0};
25     tag_t P1Tag = NULL_TAG;
26     UF_CURVE_create_point(P1, &P1Tag);
27 
28     //创建点2(在块外部)
29     double P2[3] = {150.0, 150.0, 150.0};
30     tag_t P2Tag = NULL_TAG;
31     UF_CURVE_create_point(P2, &P2Tag);
32 
33     //创建点3(在块边界上)
34     double P3[3] = {100.0, 50, 50};
35     tag_t P3Tag = NULL_TAG;
36     UF_CURVE_create_point(P3, &P3Tag);
37 
38     //获取一个点是在体(面,边)的边界内部,外部,还是边界上
39     //1为在边界内部,2为在边界外部,3为在边界上
40     //(如果在片体边界上,则被认为在边界内)
41     int PtStatus1;
42     UF_MODL_ask_point_containment(P1, BodyTag, &PtStatus1);
43 
44     int PtStatus2;
45     UF_MODL_ask_point_containment(P2, BodyTag, &PtStatus2);
46 
47     int PtStatus3;
48     UF_MODL_ask_point_containment(P3, BodyTag, &PtStatus3);
49 
50     //转换
51     char msg[256];
52     sprintf_s(msg, "%d
%d
%d
", PtStatus1, PtStatus2, PtStatus3);
53 
54     //打印
55     UF_UI_open_listing_window();
56     UF_UI_write_listing_window(msg);
57 
58     UF_terminate();

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