|
程序如下,编译了一下没有提示错误和警告,但是在ug里无法生成圆柱体。不知道是什么问题,恳请大虾们指教。。。 0 G2 L" j6 e: b6 E7 Q3 I9 Q
, j1 B) W4 h- r; g8 Wint WHEEL_ok_cb ( int dialog_id,
# B4 S& B7 v3 B void * client_data,
* C0 @# t4 N4 O% Z+ @5 a' [ UF_STYLER_item_value_type_p_t callback_data)/ C" }. N+ L Q1 ~0 A. p2 k7 a
{0 O K% j) i; @% q; i
/* Make sure User Function is available. */
0 m+ F5 a( K; }% f/ K c! [ if ( UF_initialize() != 0)
8 v1 |! X; |9 v return ( UF_UI_CB_CONTINUE_DIALOG );
* G8 Q% W1 t" Y4 S3 b /* ---- Enter your callback code here ----- */7 M- S0 ^' R' N- ~# w
create_wheel( dialog_id );
- d- B3 ?! V( @, ^; V UF_terminate ();
t" ]0 b2 y9 R2 B2 I$ O& j /* Callback acknowledged, terminate dialog */
6 j4 W! l. C3 n /* It is STRONGLY recommended that you exit your */2 r7 g3 d4 y4 F1 o S! R( M
/* callback with UF_UI_CB_EXIT_DIALOG in a ok callback.*/" W$ ?2 T/ U" t7 Y1 N; w4 ?+ P @3 i- {
/* return ( UF_UI_CB_EXIT_DIALOG ); */5 v( D9 b7 y3 }: s" D1 d. o8 X# M
return (UF_UI_CB_EXIT_DIALOG); : `1 b, W+ K _- I: t# a
}
& O4 U; w8 p! K# U# Ostatic void get_real_data1 \: Z; O& [8 b! Y+ q
( int dialog_id, /*I*/
. V, C `, U9 o& T( ]7 Y7 g char *item_id, /*I*/+ {2 s. ^& V, V& X2 f( {) B
double *value /*O*/. }5 q* h$ q0 C. ^4 N
)" Z- C0 Y" B( h- R& y7 r
{
6 b( J& { v5 r) a$ v. u: u UF_STYLER_item_value_type_t WHEEL;
5 _) U, r. |, A2 Z. i. E# { WHEEL.item_attr = UF_STYLER_VALUE;
( Z& D" v" y6 w5 B+ U* c& ] WHEEL.item_id = item_id;
6 d& T1 U. X% e; q ^+ q7 V UF_STYLER_ask_value ( dialog_id, &WHEEL );
3 }- t! y e7 I4 ] *value = WHEEL.value.real;8 l C7 ]% r( A- N
}
/ p# Q* Y1 m w8 w# L {static void create_wheel(int dialog_id)" L h" { x, c/ ?7 s
{
2 \1 J4 @, X/ M$ X double diameter = 0.0;
( g5 E8 p2 G. F5 l0 W& @ double width = 0.0;
: ?' [$ S) B5 ? double origin[3] = {0.0, 30.0, 0.0 };% r0 r0 C9 U+ Y2 F1 P# o v! o1 R) r
double direction[3] = {0, 0, 1 };8 |$ c6 {6 Y6 M& a! v
char *size[2] = { NULL };0 `7 M) s2 B+ H1 j' n* O
tag_t cyl_obj_id = NULL_TAG;- z5 _2 }! y* h4 K
int error = 0;
: x5 c: S' T6 y7 V1 g' J //取得用户输入。
7 s |% P- G3 [8 y( { get_real_data( dialog_id, WHEEL_DIAM, &diameter );0 m) ~. v9 p8 W" `* u5 W
get_real_data( dialog_id, WHEEL_HEIGHT, &width );1 q! G8 z8 x+ O, f9 |; _& b
//参数类型转换9 K9 U0 H- x* D! H- n
size[0] = (char *)UF_allocate_memory( 256 * sizeof(char), &error );
) Z) r# I& h2 Z size[1] = (char *)UF_allocate_memory( 256 * sizeof(char), &error );
: T1 i2 h8 a: P7 x4 G sprintf( size[0], "%f", diameter );" v* n4 L* W; B8 c5 L5 K4 h! n6 |
sprintf( size[1], "%f", width );6 i5 K; L* b) ]6 R) f% @
//调用UF函数,生成Cylinder
. @# ^. J9 t% Z# f% X error = UF_MODL_create_cyl1(UF_NULLSIGN, origin, size[1], size[0], direction, &cyl_obj_id);- m# v' l, i$ l
UF_free( size[0] );
/ O, U1 v; R2 D( F UF_free( size[1] );3 {) L" q0 v; m: X* o4 H
} |
|