点击查看详细介绍

UGOPEN在UG NX加工模块下挂一个加工工艺辅助用户界面和UG刀具库等连起来

ugopen VIP会员 11年前 5501 10

购买与咨询 NX 二次开发视频教程,请联系微信号:13890821008  QQ号:85585969  


在UG NX加工模块下挂一个加工工艺辅助用户界面,然后和UG刀具库等连起来,实现工艺选择优化等信息和UG结合的更紧密些。内部UG运行的动态链接库运行有两种不同的入口,分别是:程序入口点:ufusr;程序入口点:ufsta。前者是一般可以直接执行的dll,后者是通过UG菜单、工具栏、UI Styler等用户界面调用的。关于程序入口点,涉及到“User Exit 的概念”

代码见下

/****------------------------------------------- *****/

// 作者: UG二次开发专业技术网站www.UGapi.com

/****------------------------------------------- *****/

//头文件-----------

#include "uf.h"

#include "uf_ui.h"

#include "stdio.h"

/*将UF函数出错信息显示在 information window 上--------------*/

#define UF_CALL(X) (report(__FILE__,__LINE__,#X,(X)))

static int report(char *file ,int line ,char *call,int irc)

{

if(irc)

{

char messg[133];

printf("%s,line %d: %s\n",file,line,call);

(UF_get_fail_message(irc,messg))?

printf(" return a %d\n",irc):

printf(" return error %d: %s\n",irc,messg);

}

return(irc);

}

/*具体用法UF_CALL (UF_CURVE_create_point()) */

//---------------------------------------------------------

/****--------------------------------------------- *****/

// 函数名: do_ugopen_api()

// 功能: 实际工作函数,用户编写的主程序,UG API调用演示

/****-------------------------------------------------- *****/

static void do_ugopen_api(void)

{

char * part_name="D:\\UGS180\\work\\gg.prt ";//输入指定文件的路径

tag_t part;//输出该文件中part的ID

UF_PART_load_status_t error_status;//输出出错状态

/*打开一个已经存在的*.prt文件*/

//UF_CALL(UF_PART_open (part_name, &part, &error_status ));

}

/****------------------------------------------ *****/

// 作者: UG二次开发专业技术网站www.UGapi.com

// 函数名: do_ugopen_api()

// 功能: 实际工作函数,负责调用外部用户界面所在dll

/****----------------------------------------*****/

void do_ugopen_api()

{

//::MessageBox(NULL,"开始调用!","提示信息",MB_OK | MB_ICONINFORMATION);

HINSTANCE hDLL;

typedef void(_stdcall *tShowFrm)();//定义函数指针类型

tShowFrm pShowFrm;

hDLL = LoadLibrary("PrjSelCut.dll");////装载DLL

if(hDLL != NULL)

{

pShowFrm = (tShowFrm)GetProcAddress(hDLL, "ShowSelCutFrm");////获取函数ShowSelCutFrm的函数指针

pShowFrm();////调用DLL中的函数ShowSelCutFrm

FreeLibrary(hDLL);////释放DLL模块

}

}

void ufusr(char *param, int *retcode, int paramLen)

{

if (!UF_CALL(UF_initialize()))//获取二次开发许可

{

do_ugopen_api();//实际工作函数

UF_CALL(UF_terminate());//释放二次开发许可

}

}

int ufusr_ask_unload(void)

{

return (UF_UNLOAD_IMMEDIATELY);//完成操作后立即从内存中卸载

}

/****---------------代码结束-----------------*****/

0

最新回复 (10)
  • zcdong86 11年前
    1

    好资料!不错!学习学习!

  • shiyongyon 11年前
    2

    这个要好好 学习下 谢谢 版主

  • qinchuang1 11年前
    3

    好资料!不错!学习学习!

  • qinchuang1 11年前
    4

    这个要好好 学习下 谢谢 版主

  • qinchuang1 11年前
    5

    好资料!不错!学习学习!

  • qinchuang1 11年前
    6

    我要我要

  • qinchuang1 11年前
    7

    学习中...................

  • a7834180 10年前
    8

    好资料!不错!感谢楼主分享

  • Yj_L 10年前
    9

    感谢分享,好好学习学习!

  • yy806942911 7年前
    10

    好资料!感谢楼主分享!!!!

请登录后发表新帖