/****************************************************************************** Copyright (c) 1999 Unigraphics Solutions, Inc. Unpublished - All Rights Reserved *******************************************************************************/ /* The code in the following example queries the centerline information, and frees the pointer to centerline data. */ #include #include #include #include #include #include #include #include void ufusr(char *param, int *retcod, int param_len) { int ifail = 0; int subtype, type; tag_t centerline_tag = NULL_TAG; char error_message[133] = ""; double centerline_origin[ 3 ]; UF_DRF_valid_cline_form_t centerline_type; UF_DRF_centerline_info_t *centerline = NULL; /* Initialize User Function. */ ifail = UF_initialize(); /* Find the tag to a drafting entity. */ ifail = UF_OBJ_cycle_objs_in_part( UF_ASSEM_ask_work_part(), UF_drafting_entity_type, ¢erline_tag ); /* Retrieve the object subtype. */ if( !ifail && centerline_tag ) { ifail = UF_OBJ_ask_type_and_subtype( centerline_tag, &type, &subtype ); } /* Test centerline subtype. */ if( !ifail && ( subtype >= UF_draft_linear_cntrln_subtype && subtype <= UF_draft_sym_cntrln_subtype )) { ifail = UF_DRF_ask_centerline_info ( centerline_tag, ¢erline_type, ¢erline_origin[0], ¢erline ); /* Free the memory that contains centerline information.*/ if( !ifail ) { UF_DRF_free_centerline( ¢erline ); } } printf( "UF_DRF_free_centerline " ); 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(); }