请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
×
【PLM之家-NX9.0二次开发实例视频】14 UIStyler生成C代码创建block. `0 Q9 c {# `" Q9 g
内容:通过使用uistyler界面进行block创建 目的:熟悉uistyler界面的使用和C code生成
UIStyler生成C代码创建block
- g; H& o- ^* r D! s; U
使用uistyler,NX6.0之前的老的UI,进行block的界面创建,并生成C语言的代码,通过代码模版进行block特征的创建!
) C: X; E2 p7 K/ H# x3 j% Z+ @此处使用ufun的创建block函数进行创建!1 t0 X# c; d. z, a
关键代码分享:1 U$ G5 `" G, Q8 D
- {' q0 O. Q9 h" z
- /* Make sure User Function is available. */
- `' a7 c4 M/ X0 F! e6 l - 3 V% i& P; A) h( A8 {
- tag_t block_tag=NULL_TAG;3 U8 Z0 P1 r: p& P
- double lengthValue,widthValue,heightValue;; |9 N5 ~" H* M' K' N" |
- UF_STYLER_item_value_type_t length,width,height;2 y% @5 U$ }: P4 {& m3 V
- char *edge[3]={NULL};
# a; o& Y* l& _* [/ E2 | - int error = 0;- Q4 a* r6 P. ?! u3 C4 n
- double corner[3] ={100.0,100.0,100.0};6 R+ H% ^; {. z7 O
- if ( UF_initialize() != 0)
+ a# A8 o& B" l {" _, [% `! | - return ( UF_UI_CB_CONTINUE_DIALOG );
" W5 k* f+ H+ S* j8 R& ^7 b
( c* s/ p3 i. c! e- /* ---- Enter your callback code here ----- */% H. Y' h+ R5 k: J
- + A0 X8 _7 l+ \; S
复制代码
3 W3 q. X9 p/ {9 g- length.item_id=PLMHOME_LENGTH;
4 h+ }( H" g- g& J+ g0 O( G/ ` - length.item_attr=UF_STYLER_VALUE;
* z) k6 j9 P Q% [8 W/ { - UF_STYLER_ask_value(dialog_id,&length);# Z, w: x* P3 n3 r* z0 G4 F- e
- lengthValue = length.value.real;2 |7 f( Q' ~) V# A2 X
& M+ A' i: q2 C" N( x6 R- u# Y- width.item_id=PLMHOME_WIDTH;8 T$ A2 Z5 Y2 D/ C3 V2 w9 s: e$ ]- U6 G% x
- width.item_attr=UF_STYLER_VALUE;' v3 O N/ J# B! Q& f1 o j; h
- UF_STYLER_ask_value(dialog_id,&width);# F* @8 i5 G/ R7 f d% `' f7 |/ [
- widthValue = width.value.real;1 |# H/ f5 ?5 I X3 ?1 P
& ^9 j# i- t( [3 {2 [0 C- height.item_id=PLMHOME_HEIGHT; I1 ]0 [( D# g& B, h1 n! d2 u9 v
- height.item_attr=UF_STYLER_VALUE;, w! R: ?/ u5 i
- UF_STYLER_ask_value(dialog_id,&height);$ t) N+ b) @. N* `. ?& E$ Y
- heightValue = height.value.real;
' I2 e) q% k3 B9 }0 H& U
复制代码
- c/ b) n+ w2 I6 `& p" @( t- //covert value to char *6 V8 r& A2 {! p5 @
- edge[0] = (char *)(UF_allocate_memory(256*sizeof(char *),&error));6 H" z# _6 ?+ e
- edge[1] = (char *)(UF_allocate_memory(256*sizeof(char *),&error));
4 J* `, R P5 ?6 Y - edge[2] = (char *)(UF_allocate_memory(256*sizeof(char *),&error));# c7 r6 F# V- D! n. t9 s' h! ?
- sprintf(edge[0],"%f",lengthValue);
: r) z' H3 @3 C$ `+ |5 L) }3 f - sprintf(edge[1],"%f",widthValue);, N, Q" [! i1 B0 l) W! Z3 w
- sprintf(edge[2],"%f",heightValue);
; y9 G( L& ^- d - UF_MODL_create_block1(UF_NULLSIGN,corner,edge,&block_tag);. v- S: S6 j" A4 w
- UF_free(edge[0]);
7 K: O4 b; P! u$ B6 ^1 z! w ^8 {7 Y - UF_free(edge[1]);( x" u( g- y" K4 A: w
- UF_free(edge[2]);
: L4 a- z4 |5 r - 8 P* O( O& e6 o( \
- UF_terminate ();$ C/ d0 A7 B& X2 r# Q% ~/ u7 I8 n
) p( q2 A$ P8 B- /* Callback acknowledged, terminate dialog */
6 j' I2 |9 j6 G3 V0 R! u6 h) f - /* It is STRONGLY recommended that you exit your */" L2 h- Y9 A3 Q5 k7 e
- /* callback with UF_UI_CB_EXIT_DIALOG in a ok callback.*/+ _; |/ ~7 T# n) C$ M( L
- /* return ( UF_UI_CB_EXIT_DIALOG ); */$ D# f! O s. Z5 @0 }$ P( n6 T6 M
- return (UF_UI_CB_EXIT_DIALOG);
# y; \5 M& X! o9 O4 k1 k - 0 |( z4 I9 Y! F7 r; X. r2 h
- }* T& q" c" t1 a7 ^1 ^$ U8 S
复制代码
8 T Q3 ]- n& g6 B
4 [" k! W# ^5 I, K4 K+ v9 V高清视频见楼下:6 ?4 `7 U) a; j( @! s! b
% G. r6 Z" J2 ^3 o' A/ L/ x) f
|