NX二次开发-算法篇-例子:已知有三个点,三个点按Z轴,由小到大排序

NX9+VS2012

#include <uf.h>
#include <uf_ui.h>
#include <uf_part.h>
#include <uf_obj.h>


UF_initialize();

//例子:已知有三个点,三个点按Z轴,由小到大排序

//定义数组
double PointOriZ[3];

int i = 0;
//遍历当前显示部件的所有点
tag_t PointTag = NULL_TAG;
UF_OBJ_cycle_objs_in_part(UF_PART_ask_display_part(), UF_point_type, &PointTag);
while (PointTag != NULL_TAG)
{
    //获得点的XYZ坐标点
    double PointOri[3];
    UF_CURVE_ask_point_data(PointTag, PointOri);

    //存储Z坐标点
    PointOriZ[i] = PointOri[2];

    i++;
    UF_OBJ_cycle_objs_in_part(UF_PART_ask_display_part(), UF_point_type, &PointTag);
}

//排序对比
double t = 0;//定义中间变量
if (PointOriZ[0] > PointOriZ[1])
{
    t = PointOriZ[0];
    PointOriZ[0] = PointOriZ[1];
    PointOriZ[1] = t;
}
if (PointOriZ[0] > PointOriZ[2])
{
    t = PointOriZ[0];
    PointOriZ[0] = PointOriZ[2];
    PointOriZ[2] = t;
}
if (PointOriZ[1] > PointOriZ[2])
{
    t = PointOriZ[1];
    PointOriZ[1] = PointOriZ[2];
    PointOriZ[2] = t;
}

//打印
char msg[256];
sprintf_s(msg, "%f,%f,%f", PointOriZ[0], PointOriZ[1], PointOriZ[2]);
uc1601(msg, 1);

UF_terminate();

Caesar卢尚宇
2020年5月26日

猜你喜欢

转载自www.cnblogs.com/nxopen2018/p/12969383.html