/****************************************************************************** Copyright (c) 1999 Unigraphics Solutions, Inc. Unpublished - All Rights Reserved *******************************************************************************/ /* The code in the following example queries the GD&T Symbol information. */ #include #include #include #include #include #include #include #include void ufusr(char *param, int *retcod, int param_len) { char error_message[133] = ""; int ifail = 0; int type, subtype; tag_t gdt_symbol_tag = NULL_TAG; double gdt_symbol_origin[ 3 ]; UF_DRF_gdt_symbol_info_t *gdt_symbol_info; /* Initialize User Function. */ ifail = UF_initialize(); /* Find the tag of a drafting entity. */ ifail = UF_OBJ_cycle_objs_in_part( UF_ASSEM_ask_work_part(), UF_drafting_entity_type, &gdt_symbol_tag ); while( !ifail && gdt_symbol_tag ) { ifail = UF_OBJ_ask_type_and_subtype( gdt_symbol_tag, &type, &subtype ); /* Test type for the GD&T Symbol. */ if( !ifail && subtype == UF_draft_fpt_subtype ) { /* Retrieve GD&T Symbol information. */ ifail = UF_DRF_ask_gdt_symbol_info ( gdt_symbol_tag, &gdt_symbol_origin[0], &gdt_symbol_info); /* free text string first */ ifail = UF_DRF_free_gdtsymbol( &gdt_symbol_info ); } /* Find the tag of next drafting entity. */ if ( !ifail ) ifail = UF_OBJ_cycle_objs_in_part( UF_ASSEM_ask_work_part(), UF_drafting_entity_type, &gdt_symbol_tag ); } printf( "UF_DRF_ask_gdt_symbol_info sample " ); if( ifail ) { ifail = UF_get_fail_message( ifail, error_message ); printf( "fails.\nError is: %s\n", error_message ); } else printf( "is successful.\n" ); UF_terminate(); }