找回密码 注册 QQ登录
开思网工业级高精度在线3D打印服务

iCAx开思网

CAD/CAM/CAE/设计/模具 高清视频【积分说明】如何快速获得积分?快速3D打印 手板模型CNC加工服务在线3D打印服务,上传模型,自动报价
查看: 24699|回复: 15
打印 上一主题 下一主题

[求助] 跪求NX二次开发,CAM 方面的实例代码

[复制链接]
跳转到指定楼层
1
发表于 2008-6-30 17:11:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多同行朋友,交流,分享,学习。

您需要 登录 才可以下载或查看,没有帐号?注册

x
最近看了NX二次(NXOpen C++ API)开发的资料,但是苦于没有好的实例(源代码)拿来研究,
望各位大侠赐教!

[ 本帖最后由 ugthinking 于 2008-6-30 17:26 编辑 ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 赞一下!赞一下!
2
发表于 2008-7-10 12:49:17 | 只看该作者

UG二次开发宝典中有关于CAM的实例代码

二次开发宝典系列可从https://www.ugopen.cn/cn/download/sscnc.htm下载
3
发表于 2008-7-10 15:36:51 | 只看该作者
此段是可以生成程序的完整代码,只有从坐标(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 编辑 ]
4
发表于 2008-7-11 21:08:36 | 只看该作者
楼上两位好心人,多谢了!
不知道怎么给你们加分。
5
发表于 2008-7-12 08:17:40 | 只看该作者
斑竹可以加分吧。偶专门从事加工模块的二次开发好几年了,但论坛里关于加工开发的帖子几乎没有,所以偶无从参与,积分一直是0。
斑竹看到了给加点分啊。最起码换成试用期啊,呵呵。
6
发表于 2008-7-12 08:44:37 | 只看该作者
原帖由 dianzi24 于 2008-7-12 08:17 发表
斑竹可以加分吧。偶专门从事加工模块的二次开发好几年了,但论坛里关于加工开发的帖子几乎没有,所以偶无从参与,积分一直是0。
斑竹看到了给加点分啊。最起码换成试用期啊,呵呵。
到UG_CAM版块去,我帮你加分
7
发表于 2011-11-1 17:08:24 | 只看该作者
ugopenman 发表于 2008-7-10 12:49
二次开发宝典系列可从https://www.ugopen.cn/cn/download/sscnc.htm下载

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

感谢你的源代码!!!能留下联系方式麽,
9
发表于 2011-11-1 22:45:55 | 只看该作者
顶顶顶顶顶顶
10
发表于 2012-2-27 14:24:43 | 只看该作者
cam-yp 发表于 2008-7-12 08:44
到UG_CAM版块去,我帮你加分

学习  了, 才开始研究 自动 加工,UG的模板不好用
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3D打印手板模型快速制作服务,在线报价下单!

QQ 咨询|手机版|联系我们|iCAx开思网  

GMT+8, 2025-1-31 02:07 , Processed in 0.027710 second(s), 10 queries , Gzip On, Redis On.

Powered by Discuz! X3.3

© 2002-2025 www.iCAx.org

快速回复 返回顶部 返回列表