NX二次开发-坐标系转换

  1. 从CSYS转换到ACS;
 1 void MapPointFromCsysToAcs(tag_t csys, double* point)
 2 {
 3     if (NULL_TAG == csys)
 4     {
 5         return;
 6     }
 7 
 8     double csysOrigin[3] = { 0.0 };
 9     tag_t matrixTag = NULL;
10     double csysMatrix[9] = { 0.0 };
11     UF_CSYS_ask_csys_info(csys, &matrixTag, csysOrigin);
12     UF_CSYS_ask_matrix_values(matrixTag, csysMatrix);
13     UF_MTX3_vec_multiply_t(point, csysMatrix, point);
14     UF_VEC3_add(point, csysOrigin, point);
15 }
  1. 从ACS转换到CSYS。
 1 void MapPointFromAcsToCsys(tag_t csys, double* point)
 2 {
 3     if (NULL_TAG == csys)
 4     {
 5         return;
 6     }
 7 
 8     double csysOrigin[3] = { 0.0 };
 9     tag_t matrixTag = NULL_TAG;
10     double csysMatrix[9] = { 0.0 };
11     UF_CSYS_ask_csys_info(csys, &matrixTag, csysOrigin);
12     UF_CSYS_ask_matrix_values(matrixTag, csysMatrix);
13     UF_VEC3_sub(point, csysOrigin, point);
14     UF_MTX3_vec_multiply(point, csysMatrix, point);
15 }
posted on 2020-12-14 14:36  不再低调  阅读(600)  评论(0编辑  收藏  举报