NX二次开发-坐标系转换
- 从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 }
- 从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 }