NX二次开发-算法篇-判断找到两个数组里不相同的对象

Posted nxopen2018

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NX二次开发-算法篇-判断找到两个数组里不相同的对象相关的知识,希望对你有一定的参考价值。

  1     NX9+VS2012
  2     
  3     #include <uf.h>
  4     #include <uf_curve.h>
  5     #include <uf_modl.h>
  6     #include <vector>
  7     #include <uf_disp.h>
  8     
  9 
 10     UF_initialize();
 11 
 12     //第一步,创建5条直线
 13     UF_CURVE_line_t Coords1;
 14     Coords1.start_point[0] = 0.0;
 15     Coords1.start_point[1] = 0.0;
 16     Coords1.start_point[2] = 0.0;
 17     Coords1.end_point[0] = 20.0;
 18     Coords1.end_point[1] = 0.0;
 19     Coords1.end_point[2] = 0.0;
 20     tag_t LineTag1 = NULL_TAG;
 21     UF_CURVE_create_line(&Coords1, &LineTag1);
 22 
 23     UF_CURVE_line_t Coords2;
 24     Coords2.start_point[0] = 0.0;
 25     Coords2.start_point[1] = 10.0;
 26     Coords2.start_point[2] = 0.0;
 27     Coords2.end_point[0] = 20.0;
 28     Coords2.end_point[1] = 10.0;
 29     Coords2.end_point[2] = 0.0;
 30     tag_t LineTag2 = NULL_TAG;
 31     UF_CURVE_create_line(&Coords2, &LineTag2);
 32 
 33     UF_CURVE_line_t Coords3;
 34     Coords3.start_point[0] = 0.0;
 35     Coords3.start_point[1] = 20.0;
 36     Coords3.start_point[2] = 0.0;
 37     Coords3.end_point[0] = 20.0;
 38     Coords3.end_point[1] = 20.0;
 39     Coords3.end_point[2] = 0.0;
 40     tag_t LineTag3 = NULL_TAG;
 41     UF_CURVE_create_line(&Coords3, &LineTag3);
 42 
 43     UF_CURVE_line_t Coords4;
 44     Coords4.start_point[0] = 0.0;
 45     Coords4.start_point[1] = 30.0;
 46     Coords4.start_point[2] = 0.0;
 47     Coords4.end_point[0] = 20.0;
 48     Coords4.end_point[1] = 30.0;
 49     Coords4.end_point[2] = 0.0;
 50     tag_t LineTag4 = NULL_TAG;
 51     UF_CURVE_create_line(&Coords4, &LineTag4);
 52 
 53     UF_CURVE_line_t Coords5;
 54     Coords5.start_point[0] = 0.0;
 55     Coords5.start_point[1] = 40.0;
 56     Coords5.start_point[2] = 0.0;
 57     Coords5.end_point[0] = 20.0;
 58     Coords5.end_point[1] = 40.0;
 59     Coords5.end_point[2] = 0.0;
 60     tag_t LineTag5 = NULL_TAG;
 61     UF_CURVE_create_line(&Coords5, &LineTag5);
 62 
 63     //第二步,将5条直线分别放到两个数组里
 64 
 65     //创建vector数组
 66     std::vector<tag_t> LineCurve1;
 67     std::vector<tag_t> LineCurve2;
 68 
 69     //将5条直线添加到数组1
 70     LineCurve1.push_back(LineTag1);
 71     LineCurve1.push_back(LineTag2);
 72     LineCurve1.push_back(LineTag3);
 73     LineCurve1.push_back(LineTag4);
 74     LineCurve1.push_back(LineTag5);
 75 
 76     //将3条直线添加到数组2
 77     LineCurve2.push_back(LineTag2);
 78     LineCurve2.push_back(LineTag4);
 79     LineCurve2.push_back(LineTag5);
 80 
 81     //算法,判断找到两个数组里不相同的对象
 82     for (int i = 0; i < LineCurve1.size(); i++)
 83     {
 84         bool FindSame = false;
 85         for (int j = 0; j < LineCurve2.size(); j++)
 86         {
 87             if (LineCurve1[i] == LineCurve2[j])
 88             {
 89                 FindSame = true;
 90                 break;
 91             }
 92         }
 93         if (FindSame == false)
 94         {
 95             //将两个数组里不相同的直线进行高亮
 96             UF_DISP_set_highlight(LineCurve1[i], 1);
 97         }
 98     }
 99 
100 
101     UF_terminate();

技术图片

以上是关于NX二次开发-算法篇-判断找到两个数组里不相同的对象的主要内容,如果未能解决你的问题,请参考以下文章

NX二次开发-算法篇-创建最大边界包容盒

NX二次开发-算法篇-冒泡排序(例子:遍历所有点并排序)

UG NX二次开发(C#)-建模-判断一条曲线是不是封闭

UG NX二次开发(C#)-建模-判断一条曲线是不是封闭

NX二次开发-算法篇-vector函数排序(例子:遍历所有点并排序)

NX二次开发判断两根曲线是不是连接