NX二次开发-矩阵乘矩阵的几何意义
函数:UF_MTX3_multiply() 或者UF_MTX3_multiply_t()。推荐使用UF_MTX3_multiply()
函数说明:矩阵相乘,得到新的矩阵,如下图WCS与ABS重合,在暗绿色坐标系(ABS坐标系)下有个亮绿色坐标系(dou9m1[9] = { -1,0,0,0,1,0,0,0,-1 };),将亮绿色坐标系变换到粉红色坐标系(douFaceCsysMatrix[9] = { -1,0,0,0,-1,0,0,0,1 };)下得到红色坐标系(dou9m2)。矩阵乘积的几何意义:坐标系转换到另一个坐标系下,相对位置不变。A坐标系中有个B,将B转换到A1坐标系下得到B1,则B与A和B1与A1的相对几何位置不变。
1 #include "Text.h" 2 extern DllExport void ufsta(char *param, int *returnCode, int rlen) 3 { 4 UF_initialize(); 5 6 double douFaceCsysMatrix[9] = { -1,0,0,0,-1,0,0,0,1 }; 7 8 double dou9m1[9] = { -1,0,0,0,1,0,0,0,-1 }; 9 double dou9m2[9]; 10 11 UF_MTX3_multiply(dou9m1, douFaceCsysMatrix, dou9m2); 12 13 14 tag_t tagMatrixId = NULL_TAG; 15 UF_CSYS_create_matrix(dou9m2, &tagMatrixId); 16 double douCsysOrigin[3] = { 1,1,1 }; 17 //创建坐标系 18 tag_t tagCSYS = NULL_TAG; 19 UF_CSYS_create_csys(douCsysOrigin, tagMatrixId, &tagCSYS); 20 //UF_CSYS_set_wcs(tagCSYS); 21 22 23 24 UF_terminate(); 25 } 26 27 extern int ufusr_ask_unload(void) 28 { 29 return (UF_UNLOAD_IMMEDIATELY); 30 }