• 【NX二次开发】UF_CSYS_map_point()函数,绝对坐标,工作坐标,部件之间坐标转换。


    UF_CSYS_map_point用来变换点的坐标,比较简单且实用。例如工作坐标系与绝对坐标系转换,一个部件的坐标与另一个部件坐标系之间的转换。下面的例子是在三个坐标下创建三个点相对坐标为{10,50,100};

     下面是UF_CSYS_map_point函数用到的三个坐标系的参数:

    //根部件的绝对坐标系
    #define UF_CSYS_ROOT_COORDS     1
    //工作部件的绝对坐标系
    #define UF_CSYS_WORK_COORDS     2
    //根部件的工作坐标系
    #define UF_CSYS_ROOT_WCS_COORDS 3

    源码:

     1 #include "Text.h"
     2 extern DllExport void ufusr(char *param, int *returnCode, int rlen)
     3 {
     4     UF_initialize();
     5     tag_t tagP;
     6     double douP1[3] = { 10,50,100 };
     7     UF_CURVE_create_point(douP1,&tagP);
     8 
     9     //将工作坐标系下的点 转换为 绝对坐标系下
    10     double douP_WCS[3] = { 10,50,100 };
    11     double douP_ABS[3] = { 0,0,0 };
    12     UF_CSYS_map_point( UF_CSYS_ROOT_WCS_COORDS, douP_WCS, UF_CSYS_ROOT_COORDS, douP_ABS);//工作部件绝对 转 根部件WCS
    13     UF_CURVE_create_point(douP_ABS, &tagP);
    14     
    15     //将工作部件 绝对坐标系下的点 转换为 根部件绝对坐标系下
    16     double douP0_WCS[3] = { 10,50,100 };
    17     double douP0_ABS[3] = { 0,0,0 };
    18     tag_t tagPart1 = 44814;
    19     UF_ASSEM_set_work_part(tagPart1);
    20     UF_CSYS_map_point(UF_CSYS_WORK_COORDS, douP0_WCS, UF_CSYS_ROOT_COORDS, douP0_ABS);//工作部件绝对 转 根部件WCS
    21     UF_ASSEM_set_work_part(UF_PART_ask_display_part());//显示部件设为工作部件
    22     UF_CURVE_create_point(douP0_ABS, &tagP);
    23 
    24     UF_terminate();
    25 }
    26 
    27 extern int ufusr_ask_unload(void)
    28 {
    29     return (UF_UNLOAD_IMMEDIATELY);
    30 }

    结果:

  • 相关阅读:
    麦肯锡矩阵导航图
    以业务为核心的云原生体系建设
    万字长文拿下HTTP
    人人都该懂的埋点知识
    淘宝的技术架构
    五步,快速理解一个行业
    一文读懂用户分层
    python13day
    python12day
    python11day
  • 原文地址:https://www.cnblogs.com/KMould/p/13425550.html
Copyright © 2020-2023  润新知