NX二次開發-獲取面的法向向量UF_MODL_ask_face_data


 1     NX9+VS2012
 2     
 3     #include <uf.h>
 4     #include <uf_modl.h>
 5     #include <uf_obj.h>
 6     #include <uf_ui.h>
 7 
 8 
 9     UF_initialize();
10 
11     //創建圓柱
12     UF_FEATURE_SIGN Sign = UF_NULLSIGN;
13     double Origin[3] = {0.0, 0.0, 0.0};
14     char *Height = "100";
15     char *Diam = "50";
16     double Direction[3] = {0.0, 0.0, 1.0};
17     tag_t CylTag = NULL_TAG;
18     UF_MODL_create_cyl1(Sign, Origin, Height, Diam, Direction, &CylTag);
19 
20     //特征找體
21     tag_t BodyTag = NULL_TAG;
22     UF_MODL_ask_feat_body(CylTag, &BodyTag);
23 
24     //體找面
25     uf_list_p_t FaceList;
26     UF_MODL_ask_body_faces(BodyTag, &FaceList);
27 
28     //獲取鏈表數量
29     int Count;
30     UF_MODL_ask_list_count(FaceList, &Count);
31 
32     UF_UI_open_listing_window();
33     //獲取鏈表里的tag
34     for (int i = 0; i < Count; i++)
35     {
36         tag_t FaceTag = NULL_TAG;
37         UF_MODL_ask_list_item(FaceList, i, &FaceTag);
38 
39         //獲取面的法向
40         int Type;
41         double Point[3];
42         double Dir[3];
43         double Box[6];
44         double Radius[3];
45         double RadData[3];
46         int NormDir;
47         UF_MODL_ask_face_data(FaceTag, &Type, Point, Dir, Box, Radius, RadData, &NormDir);
48 
49         //找圓柱側面
50         if (Type == 16)//對比面的類型
51         {
52             //對圓柱側面設置顏色
53             UF_OBJ_set_color(FaceTag, 186);
54 
55             //打印面的法向方向
56             char msg[256];
57             sprintf_s(msg, "面的法向方向為:\nX:%.0f\nY:%.0f\nZ:%.0f\n", Dir[0], Dir[1], Dir[2]);            
58             UF_UI_write_listing_window(msg);            
59         }
60     }
61 
62     //釋放內存
63     UF_MODL_delete_list(&FaceList);
64 
65     UF_terminate();


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM