购买与咨询 NX 二次开发视频教程,请联系微信号:13890821008 QQ号:85585969
函数结构:UF_DRAW_add_circ_detail_view( const tag_t drawing_tag, const tag_t parent_view_tag, const tag_t center_pt_tag, const tag_t circle_pt_tag, const double view_scale, double dwg_reference_point [ 2 ], tag_t * detail_view_tag) 函数说明:
增加了一个圆形的关联详细信息视图到当前图形。
函数参数:
第1个参数为输入:
drawing_tag代表参数变量,const tag_t 为输入参数类型,绘图标签(必须是最新的图纸)。
第2个参数为输入:
parent_view_tag代表参数变量,const tag_t 为输入参数类型,父视图的标签。
第3个参数为输入:
center_pt_tag代表参数变量,const tag_t 为输入参数类型,智能中心点细节圆圈标记。
第4个参数为输入:
circle_pt_tag代表参数变量,const tag_t 为输入参数类型,在细节上圆聪明点的标记。
第5个参数为输入:
输入const double 双精度类型的参数,参数的变量格式为view_scale,所需的视图比例
第6个参数为输入:
输入double 双精度类型的参数,参数的变量格式为dwg_reference_point [ 2 ],绘图基准点(图纸坐标)
第7个参数为输出:
detail_view_tag代表参数变量,tag_t * 为输出参数类型,详细信息视图的标签
UF_DRAW_add_circ_detail_view函数实例代码演示:
在下面的例子中的代码创建了一个圆形的细节视图。
[quote]
#include <stdlib.h>
#include <stdio.h>
#include <uf.h>
#include <uf_defs.h>
#include <uf_draw.h>
#include <uf_obj.h>
#include <uf_part.h>
#include <uf_so.h>
void ufusr(char *param, int *retcod, int param_len)
{
double reference_point[2] = {10.0, 12.0};
double detail_view_scale = 2.5;
int ifail = 0;
tag_t drawing_tag = NULL_TAG;
tag_t part_tag = NULL_TAG;
tag_t parent_view_tag = NULL_TAG;
tag_t curve_tag = NULL_TAG;
tag_t circle_center_tag = NULL_TAG;
tag_t circle_point_tag = NULL_TAG;
tag_t scalar_tag = NULL_TAG;
tag_t detail_view_tag = NULL_TAG;
char error_message[133];
char *view_name = "TOP@1";
char *object_name = "CURVE";
UF_SO_update_option_t update_option =
UF_SO_update_within_modeling;
ifail = UF_initialize();
if( !ifail )
part_tag = UF_PART_ask_display_part();
if( !ifail && part_tag != NULL_TAG )
ifail = UF_DRAW_ask_current_drawing( &drawing_tag );
if( !ifail && drawing_tag != NULL_TAG )
ifail = UF_OBJ_cycle_by_name( view_name,
&parent_view_tag );
if( !ifail && parent_view_tag != NULL_TAG )
/* Retrieve tag of named object to define the */
/* circle points. */
ifail = UF_OBJ_cycle_by_name( object_name,
&curve_tag );
if( !ifail && curve_tag != NULL_TAG )
ifail = uc6476(1); /* set drawing state to modeling */
if( !ifail && curve_tag != NULL_TAG)
ifail = UF_SO_create_scalar_double( part_tag,
update_option,
0.0,
&scalar_tag);
if( !ifail && scalar_tag != NULL_TAG )
ifail = UF_SO_create_point_on_curve( part_tag,
update_option,
curve_tag,
scalar_tag,
&circle_center_tag );
if( !ifail && circle_center_tag != NULL_TAG)
ifail = UF_SO_create_scalar_double( part_tag,
update_option,
0.5,
&scalar_tag);
if( !ifail && scalar_tag != NULL_TAG )
ifail = UF_SO_create_point_on_curve( part_tag,
update_option,
curve_tag,
scalar_tag,
&circle_point_tag );
if( !ifail && circle_point_tag != NULL_TAG )
ifail = uc6476(2); /* Set to drawing view */
if( !ifail && circle_point_tag != NULL_TAG )
ifail = UF_DRAW_add_circ_detail_view( drawing_tag,
parent_view_tag,
circle_center_tag,
circle_point_tag,
detail_view_scale,
reference_point,
&detail_view_tag );
printf( "UF_DRAW_add_circ_detail_view " );
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 if ( parent_view_tag == NULL_TAG )
printf( "fails.\nError is: no parent view.\n" );
else if ( curve_tag == NULL_TAG )
printf( "fails.\nError is: no curve.\n" );
else if ( scalar_tag == NULL_TAG )
printf( "fails.\nError is: no scalar.\n" );
else if ( circle_center_tag == NULL_TAG )
printf( "fails.\nError is: no circle center.\n" );
else if ( circle_point_tag == NULL_TAG )
printf( "fails.\nError is: no circle point.\n" );
else
printf( "is successful.\n" );
ifail = UF_terminate();
}
[/quote]