点击查看详细介绍

UF_DRAW_ask_drawing_info() 函数的参数解释说明、函数详细用法,以及实例代码演示

misnn 9年前 698 0

购买与咨询 NX 二次开发视频教程,请联系微信号:13890821008  QQ号:85585969  


函数结构:
UF_DRAW_ask_drawing_info
(
tag_t drawing_tag,
UF_DRAW_info_t * drawing_info
)

函数说明:
该函数获取有关图纸资料,包括尺寸,比例,单位,和投影角度。

函数参数:
第1个参数为输入:
drawing_tag代表参数变量,tag_t 为输入参数类型,绘图标签 - 如果一个空标签传递的drawing_tag,在当前图形将被使用。

第2个参数为输出:
drawing_info代表参数变量,UF_DRAW_info_t * 为输出参数类型,指向绘图信息结构

UF_DRAW_ask_drawing_info函数实例代码演示:
本示例检索图形信息结构,改变了一些值,并重置图形信息。
[quote]
#include <stdlib.h>
#include <stdio.h>
#include <uf.h>
#include <uf_defs.h>
#include <uf_draw.h>
#include <uf_draw_types.h>
#include <uf_obj.h>
#include <uf_part.h>
void ufusr(char *param, int *retcod, int param_len)
{
int ifail = 0;
tag_t drawing_tag = NULL_TAG;
tag_t part_tag = NULL_TAG;
UF_DRAW_info_t drawing_info;
char error_message[133];
char *draw_name = "SH1";

ifail = UF_initialize();

if( !ifail )
part_tag = UF_PART_ask_display_part();

if( !ifail && part_tag != NULL_TAG )
ifail = UF_OBJ_cycle_by_name( draw_name, &drawing_tag );

if( !ifail && part_tag != NULL_TAG && drawing_tag != NULL_TAG
)
{

ifail = UF_DRAW_ask_drawing_info( drawing_tag,
&drawing_info
);
}
printf( "UF_DRAW_ask_drawing_info() " );
if( ifail )
{
ifail = UF_get_fail_message( ifail, error_message );
printf( "fails.\nError is: %s\n", error_message );
}
else if ( part_tag == NULL_TAG )
printf( "fails.\nError is: no active part.\n" );
else if ( drawing_tag == NULL_TAG )
printf( "fails.\nError is: no current drawing.\n" );
else
{
printf( "is successful.\n" );
printf( "The value of the drawing info structure is.\n" );
printf( "size_state: %d\n", drawing_info.size_state );
if(drawing_info.size_state == UF_DRAW_METRIC_SIZE )
printf( "standard metric size %d\n",
drawing_info.size.metric_size_code );
else if(drawing_info.size_state == UF_DRAW_ENGLISH_SIZE )
printf( "standard english size %d\n",
drawing_info.size.english_size_code );
else
printf("custom size = %f, %f\n",
drawing_info.size.custom_size[0],

drawing_info.size.custom_size[1] );
printf( "scale: %f\n", drawing_info.drawing_scale );
if(drawing_info.projection_angle ==
UF_DRAW_THIRD_ANGLE_PROJECTION )
printf(" projection angle : third \n" );
else
printf(" projection angle : first \n" );

}

/* Now change the values */

if( !ifail && part_tag != NULL_TAG && drawing_tag != NULL_TAG
)
{
drawing_info.size_state = UF_DRAW_CUSTOM_SIZE;
drawing_info.size.custom_size[0] = 30.0;
drawing_info.size.custom_size[1] = 45.0;
drawing_info.drawing_scale = 1.5;
drawing_info.units = UF_PART_ENGLISH;
/* leave the projection angle the same, for simplicity */

ifail = UF_DRAW_set_drawing_info( drawing_tag, &drawing_info
);
}
printf( "UF_DRAW_set_drawing_info() " );
if( ifail )
{
ifail = UF_get_fail_message( ifail, error_message );
printf( "fails.\nError is: %s\n", error_message );
}
else if ( part_tag == NULL_TAG )
printf( "fails.\nError is: no active part.\n" );
else if ( drawing_tag == NULL_TAG )
printf( "fails.\nError is: no current drawing.\n" );
else
printf( "is successful.\n" );

ifail = UF_terminate();
}



[/quote]

0

最新回复 (0)
请登录后发表新帖