• NX二次开发-算法篇-在循环里得到最大值和最小值(遍历点例子)


    这个算法是几年前我的开发老师教给我的,当时我没有细心研究,过后就忘了,从没使用过,今天又重新翻出来重新学一下。

    在不会这个算法前,我用的都是排序算法,都整上冒泡排序了,顿时感觉自己挺傻逼的,写的那么麻烦。当时是不会边遍历边判断大小,只会先全部遍历出来,在写排序算法判断大小。

    以前的算法博客文章

    NX二次开发-算法篇-例子:已知有三个点,三个点按Z轴,由小到大排序https://www.cnblogs.com/nxopen2018/p/12969383.html

    NX二次开发-算法篇-vector函数排序(例子:遍历所有点并排序)https://www.cnblogs.com/nxopen2018/p/10957443.html

    NX二次开发-算法篇-冒泡排序(例子:遍历所有点并排序)https://www.cnblogs.com/nxopen2018/p/10957439.html

    例子:

    遍历所有点,得到Z轴坐标最大和最小的点,将它高亮。

    NX9+VS2012
    
    #include <uf.h>
    #include <uf_curve.h>
    #include <uf_part.h>
    #include <uf_obj.h>
    #include <uf_disp.h>
    
    
    UF_initialize();
    
    double z = -10000;
    double z1 = 10000;
    tag_t highest = NULL;
    tag_t lowest = NULL;
    //遍历当前prt里所有点
    tag_t point_tag = NULL_TAG;
    UF_OBJ_cycle_objs_in_part(UF_PART_ask_display_part(), UF_point_type, &point_tag);
    while (point_tag != NULL_TAG)
    {
        //获得点的坐标
        double point_coords[3];
        UF_CURVE_ask_point_data(point_tag, point_coords);
    
        //判断当前Z轴点坐标小于变量z时
        if (z > point_coords[2])
        {
            z = z;
        }
        else
        {
            z = point_coords[2];
            highest = point_tag;
        }
    
        if (z1 < point_coords[2])
        {
            z1 = z1;
        }
        else
        {
            z1 = point_coords[2];
            lowest = point_tag;
        }
    
        UF_OBJ_cycle_objs_in_part(UF_PART_ask_display_part(), UF_point_type, &point_tag);
    }
    
    //高亮点
    UF_DISP_set_highlight(highest, 1);
    UF_DISP_set_highlight(lowest, 1);
    
    UF_terminate();
    
    Caesar卢尚宇
    2021年3月2日

    思路:

    看图不理解的,就自己设断点调试一遍就理解了。

     

    Caesar卢尚宇

    2021年3月2日

    作者: 阿飞

    出处: https://www.cnblogs.com/nxopen2018/>

    关于作者:......

    如有问题, 可在底部(留言)咨询.

  • 相关阅读:
    第一次极限测试效果图-完整四张
    第一次极限测试效果图
    ajax遍历list数据解决方法
    读书笔记1
    读书笔记2
    读书笔记3
    每日学习
    关于根据数据反选checkbox
    zabbix监控kernel.pid_max
    React 学习项目1
  • 原文地址:https://www.cnblogs.com/nxopen2018/p/14472030.html
Copyright © 2020-2023  润新知