/******************************************************************************
             Copyright (c) 1999 Unigraphics Solutions, Inc.
                       Unpublished - All Rights Reserved

*******************************************************************************/
/* The code in the following example queries the information of a
dimension. */
#include <stdio.h>
#include <string.h>
#include <uf.h>
#include <uf_drf.h>
#include <uf_obj.h>
#include <uf_object_types.h>
void ufusr(char *x, int *y, int z)
{
        volatile int          ifail;
        int                   mpi_array[100];
        double                mpr_array[70];
        char                  rad_symbol[27], dia_symbol[27];
        tag_t                 part_tag = NULL_TAG,
                          dimension_tag = NULL_TAG;
        int                   i;
        FILE                 *file1;
        system("rm preferences.dat");
        ifail = UF_initialize();
        if( !ifail )
        {
                part_tag = UF_PART_ask_display_part();
                printf("Dimension Creation method:      1-Automatic Text;\n");
                printf("                                        2-Automatic Text
,

Appended Text;\n");
                printf("                                        3-Manual Text;\n
" );
                printf("                                        4-Manual Text,

Appended Text.\n");
                printf( "Dimension Tag    Creation symbol\n\n" );
                /* cycle for dimensions */
                ifail = UF_OBJ_cycle_objs_in_part( part_tag,
                                                UF_dimension_type,&dimension_tag
 );
                file1 = fopen("preferences.dat","w");
                while( ifail == 0 && dimension_tag != NULL_TAG )
                {
                        /* find dimension creation parameters */
                        UF_DRF_ask_object_preferences(dimension_tag, mpi_array,

                                        mpr_array, rad_symbol, dia_symbol);
                        for(i=0;i <=99;i++)
                        {
                                fprintf(file1," mpi[%d] = %d", i, mpi_array[i]);
                                if( i % 3 == 0)
                                {
                                        fprintf(file1,"\n");
                                }
                        }
                        for(i=0;i <=51;i++)
                        {
                                fprintf(file1," mpr[%d] = %f", i, mpr_array[i]);
                                if( i % 3 == 0)
                                {
                                        fprintf(file1,"\n");
                                }
                }
                fprintf(file1,"\n");
                fprintf(file1,"dimension_tag = %d,rad_val = %s,
                                                dia_val=%s\n",dimension_tag,
                                                rad_symbol, dia_symbol);

                fprintf(file1,"\n");
                ifail = UF_OBJ_cycle_objs_in_part( part_tag,
                                UF_dimension_type,&dimension_tag );
                }

                UF_terminate();
        } /* end of success of UF_initialize */
        else
        {
        printf( "Error Initializing. Exiting...\n" );
        }
fclose(file1);
}

