从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;
}
模版下载地址:
http://www.plmhome.com/forum.php?mod=viewthread&tid=2153&extra=page%3D1
页:
[1]