用户定义刀轨是指:在需要一种无法由标准制造处理器完成的加工方法时,使用NX以外的处理器生成刀具路径的操作。这可能是你自己的或第三方的代码。入口函数udop。以下是程序框架,可以往里面添加你的代码

extern void udop(char *param, int *status, int parm_len)
{
    char                                   op_name[UF_OPER_OPNAME_LEN];
    UF_UDOP_id_t               udop_id;
    UF_UDOP_purpose_t    purpose;
    UF_OPER_id_t                oper_id;
    UF_PATH_id_t                 path_id;
    UF_CAM_exit_id_t          exit_id = (UF_CAM_exit_id_t)param;   
    UF_UDOP_ask_udop( exit_id, &udop_id);
    UF_UDOP_ask_oper( udop_id, &oper_id);
    UF_UDOP_ask_purpose( udop_id, &purpose);
    UF_OPER_ask_name( oper_id, op_name);
    UF_OPER_ask_path( oper_id, &path_id);

if( purpose == UF_UDOP_GENERATE )
    {
          “写刀轨”;
    }
    if (purpose==UF_UDOP_USER_PARAMS)
    {
          “打开对话框”;
    }
}

//创建直线刀轨

UF_PATH_linear_motion_t    line_motion,*line_motion_ptr = &line_motion; 
line_motion_ptr->feed_value =1000.0;
line_motion_ptr->feed_unit =UF_PATH_FEED_UNIT_PER_MINUTE ;
line_motion_ptr->type = UF_PATH_MOTION_TYPE_RAPID;
UF_VEC3_copy(tool_axis, line_motion_ptr->tool_axis);
UF_VEC3_copy(startPt, line_motion_ptr-> position);
UF_PATH_create_linear_motion(path_id,line_motion_ptr);
UF_VEC3_copy(endPt, line_motion_ptr-> position);
UF_PATH_create_linear_motion(path_id,line_motion_ptr);

//创建圆弧刀轨

UF_PATH_circular_motion_t  cir_motion,*cir_motion_ptr = &cir_motion; 
cir_motion_ptr->feed_unit = UF_PATH_FEED_UNIT_PER_MINUTE;
cir_motion_ptr->type = UF_PATH_MOTION_TYPE_CUT;
UF_VEC3_copy(tool_axis,cir_motion_ptr->start_tool_axis);
UF_VEC3_copy(tool_axis,cir_motion_ptr-> end_tool_axis);
UF_VEC3_copy(tool_axis,cir_motion_ptr-> arc_axis);
cir_motion_ptr->tolerance = 0.005;
cir_motion_ptr->feed_value =curves[i].speed;
cir_motion_ptr->type = UF_PATH_MOTION_TYPE_CUT;
UF_VEC3_copy(point1,cir_motion_ptr-> start);
UF_VEC3_copy(point2,cir_motion_ptr-> arc_center);
UF_VEC3_copy(point2,cir_motion_ptr-> end);
UF_PATH_create_circular_motion( path_id, cir_motion_ptr);

//创建螺旋刀轨

UF_PATH_helical_motion_t helical_motion,*helical_motion_ptr=&helical_motion; 
helical_motion_ptr->feed_unit=helical_motion_ptr->feed_unit=UF_PATH_FEED_UNIT_PER_MINUTE;
helical_motion_ptr->type=helical_motion_ptr->type=UF_PATH_MOTION_TYPE_CUT;
helical_motion_ptr->tolerance=helical_motion_ptr->tolerance=0.001;
helical_motion_ptr->feed_value =curves[i].speed;
helical_motion_ptr->arc_radius = curves[i].radius;
helical_motion_ptr->shape = UF_PATH_SHAPE_CIRCULAR_CW;
helical_motion_ptr->material_side = UF_PATH_SIDE_LEFT;
UF_VEC3_copy(point1, helical_motion_ptr-> start);
UF_VEC3_copy(point2, helical_motion_ptr-> arc_center);
UF_VEC3_copy(point3, helical_motion_ptr-> end);
UF_PATH_create_helical_motion( path_id, helical_motion_ptr);

以下为螺旋线刀轨的教程和源码示意图:

 >>>>

NX/UG二次开发—CAM—用户自定义刀轨(UDOP)+ 螺旋铣用例教程 + 源码相关推荐

  1. NX/UG二次开发—CAM—获取加工环境下所有程序组、刀具组、加工坐标系并输出名称

    以下代码为CAM所有程序组.刀具组.加工坐标系并输出名称 源文件在群共享文件中.(QQ群:1023204977)

  2. NX/UG二次开发—CAM—获取程式的刀具、加工坐标系、加工方法

    tag_t oper=null; tag_t group; UF_OPER_ask_cutter_group(oper,&group);//获取程式的刀具 tag_t oper=null; t ...

  3. NX/UG二次开发—CAM—设置平面铣程序的切削底面(Floor)

  4. NX/UG二次开发创建曲面偏置体

    NX/UG二次开发--创建曲面偏置体 创建曲面偏置体 1.曲面偏置 创建曲面偏置体 这里介绍了一种对模型曲面进行偏置来获得偏置体的方法. 1.曲面偏置 void OffsetFace(tag_t fa ...

  5. NX/UG二次开发—调用NX内部函数实现功能汇总(部分只有标题)

    1.调用NX自身功能并返回开发工具界面UIFW_create_command: 2.C++与C#开发的dll互相调用且可以传参: 3.NX进度条的创建.显示.删除MT_create_progress_ ...

  6. NX/UG二次开发—菜单—ACTIONS的应用

    NX二次开发菜单打开网站,打开程序,打开文件夹响应.以下是常用的几种方式,实际上如果你熟悉DOS命令,BAT的话基本上想要打开什么程序都可以! (1)网站的打开:   ACTIONS "st ...

  7. NX/UG二次开发—装配—克隆相关知识总结

    一.克隆部件或装配-七步法: 1. UF_CLONE_initialise 初始化克隆操作     2. UF_CLONE_add_assembly/UF_CLONE_add_part添加装配/部件文 ...

  8. NX/UG二次开发环境配置方法—史上最详细版(以NX11.0和Visual Studio 2017为例)

    一.前言 本人之前在用NX12.0以及Visual Studio 2017进行NX二次开发时,进行过开发环境的配置,当时也遇到了一点问题,好在最后解决了.最近由于项目需求,我卸载了NX12.0,重装了 ...

  9. NX/UG二次开发—3D几何—包围盒相交检测(转载)

    一:包围盒介绍 包围盒是指能够包容物体的三维立方体或者二维长方形,是包围体的一种,常常用于模型的碰撞检测.包围体主要包括球体.轴对齐包围盒(AABB).有向包围盒(OBB)和凸包(Convex Hul ...

最新文章

  1. 武汉大学计算机学院放假时间,计算机学院关于2019年学生放暑假的通知
  2. thttpd安装与调试
  3. LIGA Stereo:基于双目3D检测的Lidar几何感知表示学习(ICCV2021)
  4. textarea限制字符数_PAT乙级-1002 写出这个数
  5. Kubernetes 和 Docker,到底什么关系?
  6. 母版页嵌套子母版页通信
  7. java用scanner类_java中关于scanner类的详细介绍
  8. ACL访问控制列表【笔记|实验】
  9. Spring 使用AOP
  10. 计算机主机系统总线,全国2009年10月高等教育自学考试计算机应用基础试题及答案...
  11. 分享21个精美的博客网站设计案例
  12. Java 内存、HashMap、Hashtable面试题
  13. C++primer第五版课后答案参考
  14. java rxtx 64_win7 64为下使用rxtx串口通信
  15. 软件写注册表设置开机自启动
  16. gis与一般计算机应用系统有哪些异同,gis概论各章练习题..doc
  17. VCS/Questa SIM 使用流程及Makefile
  18. python根据关键词实现信息检索推荐(使用深度学习算法)
  19. Lab 2 Bomb Lab
  20. IntelliJ IDEA中项目的包和目录结构显示设置

热门文章

  1. 如何用 Python 画出 69 岁老同志?
  2. 什么是VueCLI3
  3. Oracle数据库对象
  4. 【ArcGIS平台系列】Apps,新一代WebGIS平台的入口
  5. GDOI2018事故记录
  6. 印象笔记Windows版无法同步(亲测有效)
  7. 江苏自考 计算机网络 是委托,2019年4月江苏自考《计算机网络原理》课程考试题型及范围...
  8. 超分-wavelet
  9. MATLAB R2023a for Mac编程开发工具
  10. mmap函数映射物理地址失败指针全F问题解决