iCAx开思网

标题: 跪求NX二次开发,CAM 方面的实例代码 [打印本页]

作者: ugthinking    时间: 2008-6-30 17:11
标题: 跪求NX二次开发,CAM 方面的实例代码
最近看了NX二次(NXOpen C++ API)开发的资料,但是苦于没有好的实例(源代码)拿来研究,
望各位大侠赐教!

[ 本帖最后由 ugthinking 于 2008-6-30 17:26 编辑 ]
作者: ugopenman    时间: 2008-7-10 12:49
标题: UG二次开发宝典中有关于CAM的实例代码
二次开发宝典系列可从https://www.ugopen.cn/cn/download/sscnc.htm下载
作者: dianzi24    时间: 2008-7-10 15:36
此段是可以生成程序的完整代码,只有从坐标(10,10,10)到(500,500,500)一根刀轨。
motion_ptr->feed_value 的值为0时生成G00,非0时生成G01。
此代码只有直线,生成圆弧的方法类似,可参考open-api函数库里的ufd_cam_udop.c文件。
加工CAM的入口函数是udop,此入口函数和常用的UG二次开发入口函数ufusr并列,不需要在ufusr中调用,直接在ufusr所在的CPP文件中写入udop函数即可,或者将udop放在一单独的.c文件中,在ufusr所在的CPP文件中包含也可以,#include "path.c"。
编译出来的dll文件不能像普通的二次开发文件一样直接用Crtl + U 调用,必须先在ugii_env.dat文件中定义好变量,例如abs=d:\path.dll。此abc即是变量,然后使用UG的自定义加工模板调用此变量就OK了。

#include <uf_defs.h>
#include <uf_cam.h>
#include <uf_udop.h>
#include <uf_oper.h>
#include <uf_path.h>
#include <uf.h>
#include <uf_exit.h>
#include <stdio.h>

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_initialize();
  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 )
  {
      
    /************  To input GOTO/ motion*************/
      UF_PATH_linear_motion_t    motion,*motion_ptr = &motion;
      motion_ptr->feed_value = 0.0;
      motion_ptr->feed_unit = UF_PATH_FEED_UNIT_NONE;
      motion_ptr->type = UF_PATH_MOTION_TYPE_CUT;
      motion_ptr->tool_axis[0] =0.0;
      motion_ptr->tool_axis[1] =0.0;
      motion_ptr->tool_axis[2] =1.0;
        
      motion_ptr->position[0] =10.0;
      motion_ptr->position[1] =10.0;
      motion_ptr->position[2] =10.0;
      UF_PATH_create_linear_motion( path_id, motion_ptr);
      motion_ptr->position[0] =500.0;
      motion_ptr->position[1] =500.0;
      motion_ptr->position[2] =500.0;
      UF_PATH_create_linear_motion( path_id, motion_ptr);

      UF_PATH_cutcom_t  cutcom_data;
      cutcom_data.cutcom_mode = UF_PATH_CUTCOM_ON;
      cutcom_data.plane_type = UF_PATH_PLANE_TYPE_XY;
      cutcom_data.cutcom_on_status =
                UF_PATH_CUTCOM_ON_BEFORE_ENGAGE;
      cutcom_data.cutcom_off_status =
            UF_PATH_CUTCOM_OFF_AFTER_RETRACT;
      cutcom_data.adjust_register = 2;
      cutcom_data.full_cutcom_output = TRUE;
      cutcom_data.adjust_flag = TRUE;
      UF_PATH_create_cutcom( path_id, &cutcom_data, NULL );

      UF_PATH_end_tool_path( path_id );
   }
  UF_terminate();
}

[ 本帖最后由 dianzi24 于 2008-7-10 15:39 编辑 ]
作者: ugthinking    时间: 2008-7-11 21:08
楼上两位好心人,多谢了!
不知道怎么给你们加分。
作者: dianzi24    时间: 2008-7-12 08:17
斑竹可以加分吧。偶专门从事加工模块的二次开发好几年了,但论坛里关于加工开发的帖子几乎没有,所以偶无从参与,积分一直是0。
斑竹看到了给加点分啊。最起码换成试用期啊,呵呵。
作者: cam-yp    时间: 2008-7-12 08:44
原帖由 dianzi24 于 2008-7-12 08:17 发表
斑竹可以加分吧。偶专门从事加工模块的二次开发好几年了,但论坛里关于加工开发的帖子几乎没有,所以偶无从参与,积分一直是0。
斑竹看到了给加点分啊。最起码换成试用期啊,呵呵。
到UG_CAM版块去,我帮你加分
作者: huangjiuchao    时间: 2011-11-1 17:08
ugopenman 发表于 2008-7-10 12:49
二次开发宝典系列可从https://www.ugopen.cn/cn/download/sscnc.htm下载

你好,请问你有开发宝典相关的资料么
作者: huangjiuchao    时间: 2011-11-1 19:07
dianzi24 发表于 2008-7-10 15:36
此段是可以生成程序的完整代码,只有从坐标(10,10,10)到(500,500,500)一根刀轨。
motion_ptr->fee ...

感谢你的源代码!!!能留下联系方式麽,
作者: jaken99    时间: 2011-11-1 22:45
顶顶顶顶顶顶

作者: SWORDINHAND    时间: 2012-2-27 14:24
cam-yp 发表于 2008-7-12 08:44
到UG_CAM版块去,我帮你加分

学习  了, 才开始研究 自动 加工,UG的模板不好用
作者: SWORDINHAND    时间: 2012-3-28 07:26
才开始研究 自动 加工,UG的模板不好用
作者: qingkongaaa    时间: 2012-9-26 23:12
ugopenman 发表于 2008-7-10 12:49
二次开发宝典系列可从https://www.ugopen.cn/cn/download/sscnc.htm下载

这个要怎么下载?
作者: qingkongaaa    时间: 2012-9-26 23:33
dianzi24 发表于 2008-7-10 15:36
此段是可以生成程序的完整代码,只有从坐标(10,10,10)到(500,500,500)一根刀轨。
motion_ptr->fee ...

在么 方便问些问题么
作者: qingkongaaa    时间: 2012-10-24 21:05
真的好想学习有关的知识啊 不知道怎么去学
作者: yelang00    时间: 2013-5-27 21:53
安装目录下UGOPen中找有一些官方的exaple
UGS\NX 6.0\UGOPEN\SampleNXOpenApplications
作者: 蓝摩羯    时间: 2013-6-23 21:27
dianzi24 发表于 2008-7-10 15:36
此段是可以生成程序的完整代码,只有从坐标(10,10,10)到(500,500,500)一根刀轨。
motion_ptr->fee ...

怎么只显示一根线的刀轨,怎么才能显示刀轨轮廓?谢谢。。求帮助。。





欢迎光临 iCAx开思网 (https://www.icax.org/) Powered by Discuz! X3.3