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();

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

时间: 2024-11-05 18:43:19

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

NX二次开发-算法篇-随便找个不规则的体,找出面的中心点的Z坐标最高和最低的面,高亮显示

1 NX9+VS2012 2 3 #include <uf.h> 4 #include <uf_evalsf.h> 5 #include <NXOpen/Body.hxx> 6 #include <NXOpen/Face.hxx> 7 #include <uf_disp.h> 8 9 10 public: 11 12 void SelectBody(); 13 14 void SelectUVFace::SelectBody() 15 { 16

NX二次开发-算法篇-找相切面

方法1:通过判断相邻面公共边的光顺性来找相切面 1 #include <uf.h> 2 #include <uf_modl.h> 3 #include <uf_obj.h> 4 5 6 UF_initialize(); 7 8 9 //获取面的所有边 10 uf_list_p_t edge_list; 11 UF_MODL_ask_face_edges(42084, &edge_list); 12 13 //获取链表的数量 14 int count; 15 UF

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

1 NX9+VS2012 2 3 #include <uf.h> 4 #include <uf_obj.h> 5 #include <uf_modl.h> 6 #include <uf_part.h> 7 8 UF_initialize(); 9 10 //遍历当前显示部件所有体 11 std::vector<tag_t> SolidVector; 12 tag_t ObjectTag = NULL_TAG; 13 int Type, SubTy

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

1 NX9+VS2012 2 3 #include <uf.h> 4 #include <uf_ui.h> 5 #include <uf_curve.h> 6 #include <uf_obj.h> 7 #include <uf_part.h> 8 #include <vector> 9 #include <algorithm> 10 11 using namespace std; 12 13 14 UF_initiali

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

1 NX9+VS2012 2 3 4 #include <uf.h> 5 #include <uf_ui.h> 6 #include <uf_curve.h> 7 #include <uf_obj.h> 8 #include <uf_part.h> 9 #include <vector> 10 11 using namespace std; 12 13 14 15 UF_initialize(); 16 17 //遍历前有一点需要注意

NX二次开发-基于MFC界面的NX对Excel读写操作(OLE方式(COM组件))

NX二次开发API里没有对EXCAL读写操作的相关函数,市面上有很多种方法去实现,比如UFUN调KF,ODBC,OLE(COM组件)等等.这里我是用的OLE(COM组件)方式去做的,这种在VC上创建的方法,无论C++还是C#还是VB方式思路都是一样的.先介绍用MFC去做,然后在写一篇博客介绍怎么在NX的二次开发的向导模板里去做.NX二次开发-基于NX开发向导模板的NX对Excel读写操作(OLE方式(COM组件))https://ufun-nxopen.blog.csdn.net/article

NX二次开发-NX+VS写代码设断点调试技巧

在做NX二次开发的时候写完代码,编译可以通过,但是执行的时候却没有反应,或者得到的结果不对,说明肯定有地方传值出错了.我在查找代码错误的时候有几种方法:1.uc1601打印函数输入和输出的值看对不对.2.VS设断点-添加进程调试,来看输入输出值对不对3.UF_CALL也就是UF_get_fail_message这个函数,来看函数自己用的对不对.4.查看NX-Help-LogFile(日志),拖到最后看提示了哪些错误. 我一般用的比较多的是设断点调试,这里先说设断点调试.其他方法改天再写. 写举一

NX二次开发-基于NX开发向导模板的NX对Excel读写操作(OLE方式(COM组件))

在看这个博客前,请读者先去完整看完:NX二次开发-基于MFC界面的NX对Excel读写操作(OLE方式(COM组件))https://ufun-nxopen.blog.csdn.net/article/details/88922030 这篇博客,要不然你听不懂我下面在说什么. 版本NX11+VS2013+office2016 首先我们通过NX开发向导创建了一个模板. 先把项目属性改成多字节.下面我们把前面做的MFC项目里的几个EXCAL头文件和stdafx一块拷过来,加到NX的项目里. 在NX的

Visual Stadio 与NX二次开发的环境配置(以VS2010、NX10.0为例)

问题描述: 许多博文发布了关于Visual Stadio 与NX二次开发的环境配置,这些博文的提示事修改了文件NX10_Open.vsz中的引擎为10.0,但实际结果是创建C++引导失败. 问题解决概述: 创建正确引导应该同时修改NX10_Open.vsz与NX10_NXOpenCPP.vsz两个文件的引擎版本号. 解决步骤: 将NX10.0 UGOPEN目录下的所有文件夹(VB.VC.VC#)复制,并粘贴到Visual Stadio 2010安装目录下与对应的文件夹合并即可(覆盖). 例如,将