|
程序如下,编译了一下没有提示错误和警告,但是在ug里无法生成圆柱体。不知道是什么问题,恳请大虾们指教。。。 
$ t1 {3 K- i) L6 {+ p% ^9 H& P5 G% N9 T8 K
int WHEEL_ok_cb ( int dialog_id,
& s3 ^ O$ M3 r% y' O; J& Z void * client_data,6 r. S( R; u3 i; F% Z+ |
UF_STYLER_item_value_type_p_t callback_data)7 M% g/ J( X3 m2 ~ A
{+ J4 P/ @, _7 c( d. l, i
/* Make sure User Function is available. */ $ R9 m3 C- \; D$ d
if ( UF_initialize() != 0) 4 F- t' i. c* f
return ( UF_UI_CB_CONTINUE_DIALOG );" m6 ~. p# w% ?# @7 K2 S( I6 u
/* ---- Enter your callback code here ----- *// |8 s7 C9 P% H0 h' @) v
create_wheel( dialog_id );% @; V& `7 j" @
UF_terminate ();! ? p! c, o# F b" H# w5 h- x
/* Callback acknowledged, terminate dialog */
0 G/ j$ L1 G- `9 V" t /* It is STRONGLY recommended that you exit your */$ H5 U' @9 G" h5 @( F
/* callback with UF_UI_CB_EXIT_DIALOG in a ok callback.*/
4 Y5 V7 T! f/ ?4 L) S4 u g$ c) F- v0 {- U /* return ( UF_UI_CB_EXIT_DIALOG ); */
5 {/ P3 ?& h# p return (UF_UI_CB_EXIT_DIALOG); ; \) H0 i9 ^8 O7 ^% `. X/ G; M5 G
}/ Q* L3 B$ G. L2 D
static void get_real_data
/ R1 V+ ~, i' Q( P- \( int dialog_id, /*I*/
' L" o5 ?5 D# s3 S% P) v char *item_id, /*I*/# }" g5 h$ j; B; ]2 g, _, C
double *value /*O*/
5 k& \+ C* i, N% v )
3 w8 {9 w0 f0 n# ?, t5 `; f{
$ W6 m1 p0 V2 w- o UF_STYLER_item_value_type_t WHEEL;4 `# \: P1 U, g
WHEEL.item_attr = UF_STYLER_VALUE;# a( G9 |) _+ f* {( T; a
WHEEL.item_id = item_id;- @5 O1 x! w5 E$ c8 x, ~
UF_STYLER_ask_value ( dialog_id, &WHEEL );' e2 }3 [) F0 o" U! V3 O( P+ ^
*value = WHEEL.value.real;
( k* G5 _( I; l6 f z" l}
- G- `% Z+ {) S @ ~& R+ \! A4 a. Sstatic void create_wheel(int dialog_id)" w" Q- N2 G" r/ ]! d
{
, g% `! |, \% {/ R% I( D6 J# l/ B double diameter = 0.0;
8 Z+ S) l( f6 K4 v1 b" R double width = 0.0;
# |& k. U4 N1 f+ i# L: v/ z double origin[3] = {0.0, 30.0, 0.0 };
+ g2 I5 { E" O' y0 k2 j double direction[3] = {0, 0, 1 };
; ^& i& ~0 T# {: L char *size[2] = { NULL };2 B) s1 x3 S$ z- G3 u7 k. V3 M) T
tag_t cyl_obj_id = NULL_TAG;
+ Z" t2 w( T5 {3 h- p int error = 0;/ c# i5 S9 f) t8 q) O
//取得用户输入。! z( Z8 i" L& ]2 R' B
get_real_data( dialog_id, WHEEL_DIAM, &diameter );5 K! C* a3 D+ ]. d4 {* f- t8 A6 p
get_real_data( dialog_id, WHEEL_HEIGHT, &width );) p9 s r) X- s- K8 N' h. I" P
//参数类型转换
- w; Z2 E3 c$ v1 c+ A size[0] = (char *)UF_allocate_memory( 256 * sizeof(char), &error );" T7 n3 V9 T; F' O4 q7 U7 D3 |* T2 n
size[1] = (char *)UF_allocate_memory( 256 * sizeof(char), &error );
; W# w% [9 s! j0 I# w, ~ sprintf( size[0], "%f", diameter );0 E. e5 W( g z2 S% J! ?6 f$ N) E
sprintf( size[1], "%f", width );
9 A' |2 g3 @- _4 ^ //调用UF函数,生成Cylinder" s2 d0 d4 i0 V& c0 b) q5 G/ `
error = UF_MODL_create_cyl1(UF_NULLSIGN, origin, size[1], size[0], direction, &cyl_obj_id);
( q$ y, s1 d; Q& z' [5 g* i: Y( F! W8 G UF_free( size[0] );
j1 U! W9 [' y9 t% h% b! N8 l3 p UF_free( size[1] );. e! }; g0 B; h( ]' V5 s
} |
|