NX二次开发-算法篇-冒泡排序(例子:遍历所有点并排序)
NX9+VS2012 #include <uf.h>
#include <uf_ui.h>
#include <uf_curve.h>
#include <uf_obj.h>
#include <uf_part.h>
#include <vector> using namespace std; UF_initialize(); //遍历前有一点需要注意,首先我们的默认基准坐标系上就有一个点,也就是原点0,0,0。
//还有一个要注意的地方是我们在创建点的时候,如果用创建点命令创建一个空间的点,这个是算一个点。
//如果是用草图去创建点的话,这个是两个点,因为默认草图坐标系原点处就有一个点了。 vector<double> MyPointZ;
//遍历当前显示部件的所有点
tag_t ObjectTag = NULL_TAG;
UF_OBJ_cycle_objs_in_part(UF_PART_ask_display_part(), UF_point_type, &ObjectTag);
while (ObjectTag != NULL_TAG)
{ UF_OBJ_set_color(ObjectTag, );//设置所有点为红色 //获取点的XYZ坐标
double PointCoords[];
UF_CURVE_ask_point_data(ObjectTag, PointCoords); MyPointZ.push_back(PointCoords[]);//添加坐标点Z值到vector UF_OBJ_cycle_objs_in_part(UF_PART_ask_display_part(), UF_point_type, &ObjectTag);
} //冒泡排序对所有点按Z轴从小到大排序
//通过两个for循环实现冒泡排序的全过程,外层for循环决定冒泡排序的趟数,
//内层for循环决定每趟所进行两两比较的次数。
int i, j;
double t;
for (i = ; i < MyPointZ.size()-; i++)
{
for (j = ; j < MyPointZ.size()--i; j++)
{
if (MyPointZ[j]>MyPointZ[j+])
{
t=MyPointZ[j];
MyPointZ[j]=MyPointZ[j+];
MyPointZ[j+]=t;
}
}
} //打印
for (i = ; i < MyPointZ.size(); i++)
{
char msg[];
sprintf_s(msg, "%f\n", MyPointZ[i]);
UF_UI_open_listing_window();
UF_UI_write_listing_window(msg);
} UF_terminate();
NX二次开发-算法篇-冒泡排序(例子:遍历所有点并排序)的更多相关文章
- NX二次开发-算法篇-vector函数排序(例子:遍历所有点并排序)
NX9+VS2012 #include <uf.h> #include <uf_ui.h> #include <uf_curve.h> #include <u ...
- NX二次开发-算法篇-判断找到两个数组里不相同的对象
NX9+VS2012 #include <uf.h> #include <uf_curve.h> #include <uf_modl.h> #include < ...
- NX二次开发-算法篇-创建最大边界包容盒
NX9+VS2012 #include <uf.h> #include <uf_obj.h> #include <uf_modl.h> #include <u ...
- NX二次开发-算法篇-随便找个不规则的体,找出面的中心点的Z坐标最高和最低的面,高亮显示
NX9+VS2012 #include <uf.h> #include <uf_evalsf.h> #include <NXOpen/Body.hxx> #incl ...
- NX二次开发-算法篇-找相切面
方法1:通过判断相邻面公共边的光顺性来找相切面 1 #include <uf.h> 2 #include <uf_modl.h> 3 #include <uf_obj.h ...
- 【NX二次开发】缝合片体例子UF_MODL_create_sew
缝合片体,没有成功缝合的片体涂绿色. 效果: 源码: extern DllExport void ufusr(char *param, int *returnCode, int rlen) { UF ...
- NX二次开发-基于MFC界面的NX对Excel读写操作(OLE方式(COM组件))
NX二次开发API里没有对EXCAL读写操作的相关函数,市面上有很多种方法去实现,比如UFUN调KF,ODBC,OLE(COM组件)等等.这里我是用的OLE(COM组件)方式去做的,这种在VC上创建的 ...
- NX二次开发-基于NX开发向导模板的NX对Excel读写操作(OLE方式(COM组件))
在看这个博客前,请读者先去完整看完:NX二次开发-基于MFC界面的NX对Excel读写操作(OLE方式(COM组件))https://ufun-nxopen.blog.csdn.net/article ...
- NX二次开发-C#使用DllImport调用libufun.dll里的UF函数(反编译.net.dll)调用loop等UF函数
在写这篇文章的时候,我正在头晕,因为下班坐车回家,有些晕车了.头疼的要死.也吃不下去饭. 版本:NX11+VS2013 最近这一年已经由C++过度到C#,改用C#做应用程序开发和NX二次开发. C#在 ...
随机推荐
- laravel多字段模糊匹配
use App\Models\Resume; $resume = Resume::query(); $content = $request->input('content'); $resume ...
- FTP的PORT和PASV的连接方式以及数据连接端口号计算
FTP的PORT和PASV的连接方式以及数据连接端口号计算 PORT(自动)方法的连接途中是: 客户端向服务器的FTP端口(原始是21)发送连接请求,服务器领受连接,建立一条command链路. ...
- vmware下搭建openwrt
最近闲来无事,想研究下openwrt, 所以尝试着自己搭建一个来玩玩, 当然这里不是以源码编译的形式,那样太耗时. 首先官网下载已有的系统image, 路径如下 : https://archive. ...
- 每天一个Linux命令:man(0)
man man命令是Linux下的帮助指令,通过man指令可以查看Linux中的指令帮助.配置文件帮助和编程帮助等信息. 格式 man [-adfhktwW] [section] [-M path] ...
- A*寻路算法C++简单实现
搜索区域 如图所示简易地图, 其中绿色方块的是起点 (用 A 表示), 中间蓝色的是障碍物, 红色的方块 (用 B 表示) 是目的地. 为了可以用一个二维数组来表示地图, 我们将地图划分成一个个 ...
- Linux分页机制
地址长度 在Linux下,unsigned long可以与地址的长度保持一致,即32位系统下unsigned long为32位,而64位系统下为64位长. 虚拟地址的分解 如图所示,通过XXX_SHI ...
- 小程序 webview踩坑
很多功能是需要调用wx.confing的 wx.config({ debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开, ...
- 剑指offer——67左旋转字符串
题目描述 汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果.对于一个给定的字符序列S,请你把其循环左移K位后的序列输出.例如,字符序列S=”abc ...
- 剑指offer——52第一个只出现一次的字符
题目描述 在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写). 题解: 想复杂了,从头遍历 ...
- Django框架(十二)—— 补充:inclusion_tag、defer、only、choice、事务、创建多对多的第三张表
目录 补充:inclusion_tag.defer.only.choice.事务.创建多对多的第三张表 一.inclusion_tag 1.作用 2.使用 二.defer与only 1.定义 2.使用 ...