|
程序如下,编译了一下没有提示错误和警告,但是在ug里无法生成圆柱体。不知道是什么问题,恳请大虾们指教。。。 
3 F% H# P9 s: b3 J3 M7 D
9 H2 E9 P) x* Q* K+ e7 A+ `; O: ]int WHEEL_ok_cb ( int dialog_id,
l o9 N1 h E" r6 S4 t void * client_data,+ t8 [) [* b5 B5 X# {
UF_STYLER_item_value_type_p_t callback_data)
2 A' l6 P7 @' U- y{
T* Z. w, S1 P' l+ A$ u8 u2 F' E /* Make sure User Function is available. */ / X+ H6 S1 S3 Q
if ( UF_initialize() != 0) $ l6 a5 m j# P W, A* d% |
return ( UF_UI_CB_CONTINUE_DIALOG );
5 E' q7 F( {5 a6 T9 r+ C. ~# A+ b /* ---- Enter your callback code here ----- */
& [* ~6 |3 m3 u. B \( t! x; P1 ] create_wheel( dialog_id );
: X8 P1 K9 k4 U" N' U UF_terminate ();4 h' l+ |; U9 V6 `4 Y
/* Callback acknowledged, terminate dialog */3 Q9 ^7 I( v6 q4 c m/ I
/* It is STRONGLY recommended that you exit your */
) M+ `# O$ i( c% J /* callback with UF_UI_CB_EXIT_DIALOG in a ok callback.*/: C5 ^' L2 H1 H7 F& X
/* return ( UF_UI_CB_EXIT_DIALOG ); */2 c% w& P4 X' r
return (UF_UI_CB_EXIT_DIALOG); ) {+ v7 ~+ e$ t3 [+ x% n
}
, z3 y# Z9 {' i) x& Dstatic void get_real_data' Z, u8 [) N9 o- H
( int dialog_id, /*I*/6 K6 P. X: y6 V# @8 [
char *item_id, /*I*/0 j# y$ i2 t: C" d
double *value /*O*/0 s/ j9 N/ _2 h
)8 z* R8 F% b, f% h: q+ {% ], a
{1 k" ~* C! M% T* e6 l/ O: T L0 v
UF_STYLER_item_value_type_t WHEEL;
3 Q" L# Y0 l& d1 S5 S6 J1 Q WHEEL.item_attr = UF_STYLER_VALUE;7 a5 Y6 ]$ {; O& T
WHEEL.item_id = item_id;0 M* r5 o8 |5 s
UF_STYLER_ask_value ( dialog_id, &WHEEL );
1 S0 Q8 Q7 ?9 a# a) k: ]1 R *value = WHEEL.value.real;% C* D- a) j* P* A( Q
}+ S' R& Z0 l! {/ o; [# Y% B
static void create_wheel(int dialog_id), T! p- t- P9 ~# g) u( q
{
T1 R/ T! t. }. o( F0 L0 Y double diameter = 0.0;4 J* D+ |# b+ ~: _
double width = 0.0;
( S: W% z7 J# y5 i0 [4 t0 i double origin[3] = {0.0, 30.0, 0.0 };; X$ j- d4 ~: L5 o/ B
double direction[3] = {0, 0, 1 };
- T6 q4 D: g {/ A char *size[2] = { NULL };! n$ n" {5 k6 y. |5 _2 B
tag_t cyl_obj_id = NULL_TAG;
1 k( U9 S! e6 u8 { int error = 0;6 I5 u( @. u( |$ t7 |6 z, E
//取得用户输入。" v7 z- T( l; v( d- i- z2 O
get_real_data( dialog_id, WHEEL_DIAM, &diameter );
/ `& i4 \ f/ Y, Q) V: }' T; I get_real_data( dialog_id, WHEEL_HEIGHT, &width );
( l N. X; o# F6 j: w- ?) I0 r% D //参数类型转换
# B, Q2 |6 ]! q0 T$ s( p2 B size[0] = (char *)UF_allocate_memory( 256 * sizeof(char), &error );
! W0 z8 _$ w! w* z% O4 z size[1] = (char *)UF_allocate_memory( 256 * sizeof(char), &error );
" }# k- S) [& c. c! l+ m( y sprintf( size[0], "%f", diameter );
4 F* B2 V) {% Y! I$ G9 E, B sprintf( size[1], "%f", width );% D8 |( p' r% p' i: e
//调用UF函数,生成Cylinder4 r: H9 s8 J. _8 s2 L
error = UF_MODL_create_cyl1(UF_NULLSIGN, origin, size[1], size[0], direction, &cyl_obj_id);1 a" Z/ o8 t0 ^
UF_free( size[0] );' {8 }" [2 q f2 L
UF_free( size[1] );
( X Q+ |/ A' A7 K( k; |, B( N} |
|