admin 发表于 2015-1-21 14:42:57

从NX二次开发转化层teamcenter ITK二次开发的模版分享

在NX二次开发中,默认的开发模版,使得开发NX非常方便,实际上主要是在Visual Studio 的环境下,加入了库的路径,以及一些预处理相关的设置。
关于ITK开发中的模版,我制作了一个,大家可以在这里下载:

此处是给一个报告ITK函数执行错误的函数,方便使用,大家可以替换上面下载的模版template.c里面的代码,直接使用这个。当每次返回的status进行错误获取的时候,直接可以ITK_CALL去捕获错误。这点和我们在ufun中使用 UF_CALL类似!

这种方法省去了大量的调用EMH_ask_errors(&n_errors, &severities, &statuses, &messages)的重复代码!!


#include <tccore/aom.h>
#include <sa/user.h>
#include <sa/person.h>
#include <tc/emh.h>
#include <tc/tc.h>
#include <stdarg.h>

static void ECHO(char *format, ...)
{
    char msg;
    va_list args;
    va_start(args, format);
    vsprintf(msg, format, args);
    va_end(args);
    printf(msg);
    TC_write_syslog(msg);
}

#defineITK_CALL(X) (report_error( __FILE__, __LINE__, #X, X, FALSE))

static int report_error(char *file, int line, char *call, int status,
    logical exit_on_error)
{
    if (status != ITK_ok)
    {
      int
            n_errors = 0,
            *severities = NULL,
            *statuses = NULL;
      char
            **messages;

      EMH_ask_errors(&n_errors, &severities, &statuses, &messages);
      if (n_errors > 0)
      {
            ECHO("\n%s\n", messages);
            EMH_clear_errors();
      }
      else
      {
            char *error_message_string;
            EMH_get_error_string (NULLTAG, status, &error_message_string);
            ECHO("\n%s\n", error_message_string);
      }

      ECHO("error %d at line %d in %s\n", status, line, file);
      ECHO("%s\n", call);

      if (exit_on_error)
      {
            ECHO("%s", "Exiting program!\n");
            exit (status);
      }
    }

    return status;
}


static void do_it(void)
{
   // write your code here
   
}

int ITK_user_main(int argc, char* argv[])
{
   ITK_CALL(ITK_initialize_text_services(ITK_BATCH_TEXT_MODE));
       ITK_CALL(ITK_auto_login());
   ITK_CALL(ITK_set_journalling(TRUE));

                do_it();

   ITK_CALL(ITK_exit_module(FALSE));

    return ITK_ok;
}


admin 发表于 2015-1-21 14:46:15

模版下载地址:

http://www.plmhome.com/forum.php?mod=viewthread&tid=2153&extra=page%3D1
页: [1]
查看完整版本: 从NX二次开发转化层teamcenter ITK二次开发的模版分享