|
帮助文档里的实例4 \! \% ?) I5 k8 C
void ufusr(char *param, int *retcod, int param_len)& M# D! N5 n% V
{
0 b1 C% A R# y char error_message[133] = "";! F2 g( K% \2 y' C$ P
int ifail = 0;$ a& x' x W% [ W" O6 \: \
int type, subtype;9 @, J/ W) R1 ?4 z. j
tag_t label_tag = NULL_TAG;1 l# f+ S% [) G( p0 K0 ? z
double label_origin[ 3 ];
8 ~) d( r# d1 N" y s4 e; _ UF_DRF_label_info_t *label_info;
( W: q7 U$ F1 I: ]" l% H# ^ /* Initialize User Function. */7 E1 j( g. p7 b
ifail = UF_initialize();
- B4 [' X; Z% P; S0 k0 N- V /* Find the tag to a dimension entity. */6 b0 u( |# B: A$ o: t
ifail = UF_OBJ_cycle_objs_in_part( UF_ASSEM_ask_work_part(),
' w! [ X j9 z9 z, [+ r UF_drafting_entity_type,* }) w0 A5 E, H3 i A6 J% L8 g+ F
&label_tag );
7 X* {' Y6 \( Y. j# u /* Find the tag of an ordinate dimension. */3 b1 S/ O5 n1 b$ ^& g ]0 ?
while( !ifail && label_tag )+ r* }& l3 E! [! c) d4 o# w* e9 _
{
$ R9 f5 z% I) I/ X ifail = UF_OBJ_ask_type_and_subtype( label_tag, &type,
/ ^- P0 b5 ~% D/ a4 Z4 o1 A &subtype );5 G, G% p; T0 s( T2 M8 R
/* Test type for the label. */5 n1 ~# ]1 J8 q U0 }
if( !ifail && subtype == UF_draft_label_subtype )7 j0 i0 ^& m$ u% Y
{
; U2 a& e9 C: G* b /* Retrieve the label information. */
2 ~7 t% X! Y' k7 b9 _0 [) p ifail = UF_DRF_ask_label_info ( label_tag,
; u$ ]$ e: ^5 W" Y8 P- i+ m &label_origin[ 0 ],. m) ^6 L0 s. r% V
&label_info );' S7 i! j# Y! D0 e
/* Free label information memory. */- j% e6 f0 h1 Z# t! M: p1 ]
if( !ifail )
; x9 C. k+ E, C( i UF_DRF_free_label( &label_info );$ w4 x) X3 ~: `+ u0 L/ m/ I* q
}4 E# S8 F, k# t u
/* Find the tag of next drafting entity. */, e% [' g3 }: ^7 p
if ( !ifail )- a/ D) s0 z1 c$ c ?* @/ r
ifail = UF_OBJ_cycle_objs_in_part(2 o% i) ~% R: A2 k" G
UF_ASSEM_ask_work_part(),
) \, j2 Z% G( w# b) M0 t UF_drafting_entity_type,1 \6 u3 l. x' t5 e6 m* t
&label_tag );! L/ G. t6 C$ u( v; d# x. M
}
7 f# r4 M1 k! F9 j1 [# l2 C1 Q4 q printf( "UF_DRF_ask_label_info sample " );( {% n2 O7 r: U
if( ifail )
/ R& ^, @1 d: [" U7 L7 \3 a {/ K# e; Y; a% s% E# F4 F# {4 M
ifail = UF_get_fail_message( ifail, error_message );
$ W) e& b& N7 ] printf( "fails.\nError is: %s\n", error_message );
" o% U! ~& [. _& V }
% p+ T% M; X' P else
$ B5 W, m9 E0 y printf( "is successful.\n" );. n' o; o- Q8 S9 x0 w
UF_terminate();8 M" u. {& ~; p; G" ]
}
* [- `1 c, j- j8 ?8 h! Q% q% Z
6 Y4 t+ F! q7 P& d+ Q |
|