UF_UI_create_usertool函数可以加载指定用户工具
转载`!!!!
在uf_ui.h头文件下的UF_UI_create_usertool函数可以加载指定用户工具。当前未发现有哪一个API函数支持运行宏,但可以通过加载用户工具(.utd文件),再由用户工具面板点击执行对应的宏命令。
例示代码如下:
/*****************************************************************************
ufd_ui_create_usertool.c
本文件将演示如何使用以下的 UG/Open API 函数(s):
UF_UI_create_usertool
环境:
VS2008编译,在NX 4.0/NX 6.0上测试通过。
历史:
日期 作者 备注
2010-11-02 zale_lzj 整理创建
*****************************************************************************/
/**
* \API UF_UI_create_usertool
* 加载用户工具(.utd file),可以通过这种方式运行宏(.macro)。
*/
#include <stdio.h>
#include <uf.h>
#include <uf_defs.h>
#include <uf_exit.h>
#include <uf_part.h>
#include <uf_ui.h>
#pragma comment(lib, "libufun.lib")
#pragma comment(lib, "libugopenint.lib")
#define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))
static int report_error( char *file, int line, char *call, int irc)
{
if (irc)
{
char err, messg;
logical response;
UF_UI_is_listing_window_open(&response);
if (!response)
UF_UI_open_listing_window();
UF_get_fail_message(irc, err);
sprintf_s(messg, 300, "\n%s\nerror %d at line %d in %s\n%s",
err, irc, line, file, call);
UF_UI_write_listing_window(messg);
UF_UI_write_listing_window("\n");
}
return(irc);
}
static void do_it(void)
{
char* filename = "C:\\Program Files\\UGS\\NX 4.0\\UGSAMPLES\\file_toolbar_nt.utd";
logical read_flag;
UF_CALL(UF_UI_create_usertool(0, filename, UF_UI_SHOW, &read_flag));
if (read_flag)
uc1601("Syntax error!", 1);
}
void ufusr(char *param, int *retcode, int paramLen)
{
if (UF_CALL(UF_initialize())) return;
if (UF_PART_ask_display_part() != NULL_TAG)
do_it();
else
uc1601("No active part", 1);
UF_terminate();
}
int ufusr_ask_unload(void)
{
return (UF_UNLOAD_IMMEDIATELY);
}
void ufusr_cleanup (void)
{
return;
}
页:
[1]