请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
×
【PLM之家-NX9.0二次开发实例视频】14 UIStyler生成C代码创建block
! @9 _! l( b ]内容:通过使用uistyler界面进行block创建 目的:熟悉uistyler界面的使用和C code生成
UIStyler生成C代码创建block
& s3 J$ D9 t- a2 j( E% n( z3 O
使用uistyler,NX6.0之前的老的UI,进行block的界面创建,并生成C语言的代码,通过代码模版进行block特征的创建!/ R$ ^" F" E- u$ @
此处使用ufun的创建block函数进行创建!
2 E2 {8 W* p) g2 q. c7 l关键代码分享:$ h) G& l7 [4 ]. P& e% c/ W5 m
- {" A1 |4 h5 o$ }' t5 v' S. Q# d
- /* Make sure User Function is available. */ , C5 p- m* Z: c+ v
3 m* u, P4 u5 N$ ~! r/ t- tag_t block_tag=NULL_TAG;( P N1 l# Q) j: b9 C
- double lengthValue,widthValue,heightValue;
) i( x7 j- H9 V8 A - UF_STYLER_item_value_type_t length,width,height;( Y5 I Z9 W: ~, U4 z
- char *edge[3]={NULL};
, i! E9 M- m+ F) P# C - int error = 0;
1 q! |" f% z# d/ R - double corner[3] ={100.0,100.0,100.0};
9 p- `* e9 q7 ]% ^# h3 k - if ( UF_initialize() != 0)
2 R- U; {+ Y- D. ]6 A - return ( UF_UI_CB_CONTINUE_DIALOG );
4 g: X7 A! b. H. e, \
4 w, C+ `$ _" ]+ p, M- /* ---- Enter your callback code here ----- *// u; A2 L9 }% g) j/ k& s
- ; n$ B, g8 L3 h8 J! f% G8 x8 }
复制代码- ; V4 }. n b% H- C2 P
- length.item_id=PLMHOME_LENGTH;
) m% [1 \* ?2 I: | - length.item_attr=UF_STYLER_VALUE;; h3 e* O3 [7 R" G* ~) @
- UF_STYLER_ask_value(dialog_id,&length);7 m5 |* u6 \- H' {# [0 P
- lengthValue = length.value.real;
& f" ]* x- I7 n! U, E! z5 D9 W
8 I' D5 G- }" ?, A2 n" o- width.item_id=PLMHOME_WIDTH;- v2 k$ q! E) B2 R% o# A0 S5 e
- width.item_attr=UF_STYLER_VALUE;
% x! y# f l) M, z7 N% e6 s2 z! I - UF_STYLER_ask_value(dialog_id,&width);" G- R D% r; B
- widthValue = width.value.real;
# j, T$ A8 H& n) T - & Z X2 l$ @9 E8 y! D( Y7 ^
- height.item_id=PLMHOME_HEIGHT;
5 l- q& r f9 ~- L" h - height.item_attr=UF_STYLER_VALUE;; Z6 q$ G8 L7 @8 O
- UF_STYLER_ask_value(dialog_id,&height);
) L5 a! B! G0 \, |" ~) ] - heightValue = height.value.real;& ]/ e$ P" |7 c+ [4 |
复制代码
: O% q2 X* E& c8 S/ V( J7 d# ~0 A. h8 D- //covert value to char *8 t: O4 e2 d! y6 n; r
- edge[0] = (char *)(UF_allocate_memory(256*sizeof(char *),&error));
3 w% d; Q2 A5 h1 q6 w4 `1 t - edge[1] = (char *)(UF_allocate_memory(256*sizeof(char *),&error));: t2 K! ?4 `- X$ t- \( H6 k
- edge[2] = (char *)(UF_allocate_memory(256*sizeof(char *),&error));
, u7 I+ L" ~4 }5 `+ i: C0 K% G. D - sprintf(edge[0],"%f",lengthValue);
1 C7 r( j' _) c - sprintf(edge[1],"%f",widthValue);
7 F1 }' j6 C- I5 t3 `9 z' A% F - sprintf(edge[2],"%f",heightValue);' G* A# j3 K! D0 O
- UF_MODL_create_block1(UF_NULLSIGN,corner,edge,&block_tag);
: p0 C+ H( G5 g g3 }9 I1 b$ } - UF_free(edge[0]);
7 S, L5 J( I5 H! O - UF_free(edge[1]);" J [5 N+ Z6 S3 M& ~0 p3 l E
- UF_free(edge[2]);
' k- v/ {; u' N$ }1 N -
, a- {0 n, v0 q; f - UF_terminate ();( D8 [+ S& V8 D$ |' Q( Q* h. I
- % F j/ B F9 n9 u( y/ c) m
- /* Callback acknowledged, terminate dialog */" P! [8 C' x& w0 z8 L( f3 w0 L
- /* It is STRONGLY recommended that you exit your */
( F) X. k9 v# | - /* callback with UF_UI_CB_EXIT_DIALOG in a ok callback.*/
6 L; @7 J, G3 f( |1 k% U& p - /* return ( UF_UI_CB_EXIT_DIALOG ); */
% |/ M* j7 ~6 }. X - return (UF_UI_CB_EXIT_DIALOG); ' |# t5 y, u& Q5 d
% I) J9 ^( @# M' n9 h- }
: c4 @4 l6 e, y( d7 c. `
复制代码
% j3 `5 E7 j* l- p$ o/ }! I6 R: k( y8 ?' ]
高清视频见楼下:
1 a: [9 s' q4 k' G2 R# Z+ z, J/ g0 K: r! ~ h9 q1 m" j: c
|