点坐标的转换,绝对坐标转换工作坐标方法

UF是默认绝对坐标的我们需要转换工作坐标


//点坐标转换,点数据从一个坐标转换到另一个坐标
UF_CSYS_map_point     
        
//将模型点位转换成视图点位
UF_VIEW_map_model_to_drawing  

//将视图点位转换成模型点位
UF_VIEW_map_drawing_to_model  


UF_MTX4_csys_to_csys  //坐标1 到 坐标2 形成4x4矩阵
UF_MTX4_vec3_multiply //变化的实现

double point[ 3 ]={0,0,0};

//将工作坐标转换成绝对坐标
UF_CSYS_map_point(UF_CSYS_ROOT_WCS_COORDS,point,UF_CSYS_WORK_COORDS,point);

//将绝对坐标转换成工作坐标
UF_CSYS_map_point(UF_CSYS_WORK_COORDS,point,UF_CSYS_ROOT_WCS_COORDS,point);


点 从坐标1 转换到 坐标2,
[replyview]
  double  from_origin[3] = {0.0, 0.0, 0.0};
  double  from_x_axis[3] = {1.0, 0.0, 0.0};
  double  from_y_axis[3] = {0.0, 1.0, 0.0};

  double  to_origin[3] = {10.0, 10.0, 10.0};
  double  to_x_axis[3] = {0.0, 1.0, 0.0};
  double  to_y_axis[3] = {1.0, 0.0, 0.0};

  double  target[3] = { 20.0, 10.0, 5.0};
  double  new_target[3];

  double  transform[16];
[/replyview] 
//坐标1 到 坐标2 形成4x4矩阵
UF_MTX4_csys_to_csys( from_origin, from_x_axis, from_y_axis,to_origin, to_x_axis, to_y_axis, transform ); 

UF_MTX4_vec3_multiply( target, transform, new_target );//变化的实现

char mei_msg[64]="";
UF_UI_open_listing_window(); //打开窗口
UF_UI_write_listing_window("\n"); 
sprintf(mei_msg, "点坐标,%.2f,%.2f,%.2f",target[0],target[1],target[2]);
UF_UI_write_listing_window( mei_msg );
UF_UI_write_listing_window("\n"); 
sprintf(mei_msg, "点坐标,%.2f,%.2f,%.2f",new_target[0],new_target[1],new_target[2]);
UF_UI_write_listing_window( mei_msg );


UG二次开发培训,可面授、远程视频指导、手把手教使用NXopen C++ 、UFun进行UG二次开发,入门开始,不懂C语言没有关系,但UG NX软件要会用,系统性的教,深度学会UG二次开发的原理与细节,让你完全可以独立完成复杂的项目开发。有意可联系胡君QQ:85585969

胡君UG二次开发技术论坛: http://www.ugapi.com/

你可能感兴趣的:(点坐标的转换,绝对坐标转换工作坐标方法)