购买与咨询 NX 二次开发视频教程,请联系微信号:13890821008 QQ号:85585969
函数结构:UF_UGMGR_assign_new_dset_name( const char owner [ UF_UGMGR_PARTNO_BUFSIZE ], const char owner_revision [ UF_UGMGR_PARTREV_BUFSIZE ], const char * app_type, const char * rel_type, const char * basis_string, char model_name [ UF_UGMGR_NAME_BUFSIZE ], logical * modifiable) 函数说明:
生成数据集名称基于一个新的非主部件打电话到Team中心工程用户出口,USER_new_dataset_name。
函数参数:
第1个参数为输入:
输入const char 字符类型的参数,参数的变量格式为owner [ UF_UGMGR_PARTNO_BUFSIZE ],分得部分的字符串名称
第2个参数为输入:
输入const char 字符类型的参数,参数的变量格式为owner_revision [ UF_UGMGR_PARTREV_BUFSIZE ],分得部分的修改字符串名称
第3个参数为输入:
输入const char * 字符类型的参数,参数的变量格式为app_type,应用程序类型的字符串名称
第4个参数为输入:
输入const char * 字符类型的参数,参数的变量格式为rel_type,关系类型的字符串名称
第5个参数为输入:
输入const char * 字符类型的参数,参数的变量格式为basis_string,默认名称的字符串名称(可能是一个空字符串)
第6个参数为输出:
输出char 字符类型的参数,参数的变量格式为model_name [ UF_UGMGR_NAME_BUFSIZE ],新的数据集的字符串名称
第7个参数为输出:
modifiable代表参数变量,logical * 为输出参数类型,无论结果是用户可修改
UF_UGMGR_assign_new_dset_name函数实例代码演示:
程序名称:数据集版本:1.0目的:试验例,以允许用户调用IMAN用户出口为新的和拷贝数据集。
[quote]
#include <stdio.h>
#include <uf.h>
#include <uf_ugmgr.h>
#include <uf_exit.h>
#include <uf_ui.h>
#include <string.h>
static const char *app_rel_types[][2]= {
"UG master part file", "has shape",
"UG part file", "has specification",
"UG part file", "has manifestation",
"UG alternative rep", "has altrep"
};
static int num_app_types = sizeof(app_rel_types)/sizeof(app_rel_types[0]);
static const char *dataset_name = "dummy_dataset";
/***************************************************************/
extern void ufusr(char *name, int *rtcode, int rtlen)
{
int count, iapp, irel, irc = 0, argc = 0, n_revs = 0;
const char *argv[] = {""};
char model_name[UF_UGMGR_NAME_SIZE+1];
char rev_name[UF_UGMGR_PARTREV_SIZE+1];
logical mod;
char part_name[UF_UGMGR_NAME_SIZE+1];
UF_UGMGR_tag_t part_tag, folder_tag, *contents = NULL, *revs =
NULL;
/**************************beginning of executable*******************/
printf("\nstarting assign_datasets v1.0\n");
/*********************************************/
irc=UF_UGMGR_initialize(argc, argv);/* get licence*/
if (irc != 0)
{
printf("Unable to get a ufunc/ugmanager license!\n");
return;
}
printf("got ufunc license\n");
/*********************************************/
strcpy(part_name, "");
/*
Get the root folder to search
*/
irc = UF_UGMGR_ask_root_folder(&folder_tag);
if (irc != 0)
{
printf("Unable to get a folder tag!\n");
return;
}
printf("got folder tag\n");
while (strlen(part_name) == 0)
{
int inx, found = -1;
char folder_name[UF_UGMGR_NAME_SIZE+1];
UF_UGMGR_object_type_t type;
/*
Find the folder contents
*/
irc = UF_UGMGR_list_folder_contents(folder_tag, &count, &contents);
if (irc != 0)
{
printf("Unable to get folder contents!\n");
return;
}
printf("got folder contents\n");
for (inx = 0; inx < count; inx++)
{
UF_UGMGR_ask_object_type(contents[inx], &type);
switch (type)
{
case UF_UGMGR_type_folder:
{
UF_UGMGR_ask_folder_name(contents[inx], folder_name);
if (found < 0)
{
found = inx;
folder_tag = contents[inx];
}
break;
}
case UF_UGMGR_type_part:
{
UF_UGMGR_ask_part_number(contents[inx], part_name);
found = -1;
part_tag = contents[inx];
break;
}
case UF_UGMGR_type_part_revision:
{
UF_UGMGR_ask_part_revision_id(contents[inx], part_name);
break;
}
case UF_UGMGR_type_unknown:
default:
break;
}
}
/* <AGD> 05-Jun-98
If we found a folder and no part then set this as the new root and
try again.
*/
if (found > -1)
{
UF_UGMGR_set_default_folder(folder_tag);
}
}
/* <AGD> 05-Jun-98
Now we have found a part to be used.
Find the revision.
*/
irc = UF_UGMGR_list_part_revisions(
part_tag,
&n_revs,
&revs
);
if ((irc == 0) &&
(n_revs > 0))
{
UF_UGMGR_ask_part_revision_id(
revs[0],
rev_name
);
/* <AGD> 04-Jun-98
Check the default new dataset names for possible app/reltypes
*/
for (iapp = 0; iapp < num_app_types; iapp++)
{
for (irel = 0; irel < num_rel_types; irel++)
{
irc = UF_UGMGR_assign_new_dset_name(
part_name,
rev_name,
app_types[iapp] ,
rel_types[irel] ,
"",
model_name,
&mod
);
NOTE(("Fail code %d model_name %s", irc, model_name));
}
}
/* <AGD> 04-Jun-98
Check the default copy dataset names for possible app/reltypes
*/
for (iapp = 0; iapp < num_app_types; iapp++)
{
for (irel = 0; irel < num_rel_types; irel++)
{
irc = UF_UGMGR_assign_copy_dset_name(
part_name,
rev_name,
dataset_name,
app_types[iapp] ,
rel_types[irel] ,
"",
"",
model_name,
&mod
);
NOTE(("Fail code %d model_name %s modifiable %s", irc,
model_name, mod ? "TRUE" : "FALSE"));
}
}
}
UF_UGMGR_terminate();
}
[/quote]