/* * This example retrieves the drawing info structure, changes some * values, and resets the drawing info. */ #include #include #include #include #include #include #include #include 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(); }