直接上 代码 吧,主要是使用了UF_CSYS_map_point函数:
bool CAMToolPathToolkit::MapPointThroughRootWork(const AUTUMOONMathPoint3d &iPt, AUTUMOONMathPoint3d &oPt, int nTransMethod){ // 将点坐标转换为工作坐标系下坐标 double arrPointInput[3] = {0}; double arrPointOutput[3] = {0}; iPt.Array(arrPointInput); int nRet = -1; switch (nTransMethod) { case 0: nRet = UF_CSYS_map_point(UF_CSYS_WORK_COORDS, arrPointInput, UF_CSYS_ROOT_WCS_COORDS, arrPointOutput); break; case 1: nRet = UF_CSYS_map_point(UF_CSYS_ROOT_WCS_COORDS, arrPointInput, UF_CSYS_WORK_COORDS, arrPointOutput); break; default: break; } oPt = AUTUMOONMathPoint3d(arrPointOutput[0], arrPointOutput[1], arrPointOutput[2]); return nRet == 0;}但是这里有限制,即只实现了当前工作坐标系和根坐标系之间的转换,那么如果想实现任意坐标系的转换呢,当然我们可以通过根坐标系作为媒介,实现任意坐标系之间的转换,那么有没有更好的办法,实现坐标系之间的直接转换呢?
上面的代码可以理解为简单的UF_CSYS_map_point 函数 使用范例,而实际上我们更需要的是从任意一个坐标系转换到任意一个坐标系的功能,那么如何实现内容——实际上利用移动对象功能,因为移动对象功能中包含从一个坐标系移动到另一个坐标系的方法。

在这里我先分享一下在 nx 中创建坐标系的代码:
tag_t CAMToolPathToolkit::CreateC
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删