购买与咨询 NX 二次开发视频教程,请联系微信号:13890821008 QQ号:85585969
函数结构:UF_UGMGR_new_part_from_template( char encoded_part_name [ MAX_FSPEC_BUFSIZE ], char* part_type, char encoded_template_name [ MAX_FSPEC_BUFSIZE ], tag_t * part_tag) 函数说明:
创建使用模板部分为基础在数据库中一个新的部分对的部分。如果null作为模板名称,然后种子通过在默认文件中指定部分使用。此功能也需要被指定的零件类型。如果这是NULL,那么部分特定类型在默认的文件中。如果未指定默认的零件类型,然后'项目'的类型使用。
函数参数:
第1个参数为输入:
输入char 字符类型的参数,参数的变量格式为encoded_part_name [ MAX_FSPEC_BUFSIZE ],部分文件名的编码形式。声明与数组大小MAX FSPEC BUFSIZE此参数。
第2个参数为输入:
输入char* 字符类型的参数,参数的变量格式为part_type,部分类型
第3个参数为输入:
输入char 字符类型的参数,参数的变量格式为encoded_template_name [ MAX_FSPEC_BUFSIZE ],模板名称的编码形式。声明与数组大小MAX FSPEC BUFSIZE此参数。
第4个参数为输出:
part_tag代表参数变量,tag_t * 为输出参数类型,新创建的部分NX标记。
UF_UGMGR_new_part_from_template函数实例代码演示:
[quote]
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <uf_ugmgr.h>
#include <uf.h>
#include <uf_part.h>
#define CHECK( func_ ) \
{ int ifail_ = 0; \
char message[133]; \
ifail_ = (func_); \
if ( ifail_ != 0 ) { \
UF_get_fail_message( ifail_, message ); \
printf("ERROR: %s returned from %s\n", message, # func_); \
return ifail_; } }
int main(int argc, char *argv[])
{
int ifail = 0;
char export_dir[MAX_FSPEC_SIZE+1];
char role[UF_UGMGR_ROLE_SIZE+1];
tag_t part_tag;
UF_UGMGR_tag_t db_part_tag;
char* part_number = "example_test_part_30";
char* part_revision = "005";
char* part_file_type = "master";
char* part_file_name = "";
char encoded_name[MAX_FSPEC_SIZE+1];
UF_UGMGR_tag_t root_folder;
char root_folder_name[UF_UGMGR_NAME_SIZE];
int i, count;
UF_UGMGR_tag_t *folder_contents;
UF_UGMGR_object_type_t object_type;
char folder_name[UF_UGMGR_NAME_SIZE];
logical folder_exists = false;
int folder_number;
ifail = UF_UGMGR_initialize(argc,(const char**)argv);
if (ifail != 0)
{
printf("ERROR: Failed to initialize with error code %d",
ifail);
exit(1);
}
CHECK(UF_UGMGR_ask_root_folder(&root_folder));
CHECK(UF_UGMGR_ask_folder_name(root_folder, root_folder_name));
printf("Root folder is %s\n", root_folder_name);
CHECK(UF_UGMGR_list_folder_contents(root_folder, &count,
&folder_contents));
for ( i=0; i<count; i++ )
{
CHECK(UF_UGMGR_ask_object_type(folder_contents[i],
&object_type));
if (object_type == UF_UGMGR_type_folder)
{
CHECK(UF_UGMGR_ask_folder_name(folder_contents[i],
folder_name));
if ( strcmp( folder_name, "Test Add To Folder" ) == 0 )
{
folder_exists = true;
folder_number = i;
}
}
}
CHECK( UF_UGMGR_ask_user_role( role ) );
printf("Current User Role : %s\n", role);
CHECK( UF_UGMGR_encode_part_filename( part_number,
part_revision,
part_file_type,
part_file_name,
encoded_name ) );
printf("Encoded part filename...\n");
CHECK( UF_UGMGR_new_part_from_template( encoded_name, "", "",
&part_tag ) );
printf("Created new part from template...\n");
CHECK( UF_UGMGR_ask_export_directory( part_tag, export_dir ) );
printf("Export directory is %s\n", export_dir);
if ( strcmp( role, "cam" ) != 0 )
{
CHECK( UF_UGMGR_set_user_role( "cam" ) );
CHECK( UF_UGMGR_ask_user_role( role ) );
printf("Set User Role to %s\n", role );
CHECK( UF_UGMGR_set_file_export_status( true ) );
}
CHECK( UF_PART_save() );
printf("Saved part...\n");
CHECK( UF_UGMGR_ask_part_tag( part_number, &db_part_tag ) );
if (folder_exists)
{
CHECK( UF_UGMGR_add_to_folder(db_part_tag,
folder_contents[folder_number]) );
printf("Added part '%s' to folder 'Test Add To Folder'\n",
part_number);
}
UF_UGMGR_terminate();
return 0;
}
[/quote]