admin 发表于 2019-1-2 13:21:33

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]
查看完整版本: UF_UI_create_usertool函数可以加载指定用户工具