请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
【PLM之家-NX9.0二次开发实例视频】14 UIStyler生成C代码创建block3 c c6 t% s- I
内容:通过使用uistyler界面进行block创建 目的:熟悉uistyler界面的使用和C code生成
UIStyler生成C代码创建block
0 c: ]2 |8 l; T
使用uistyler,NX6.0之前的老的UI,进行block的界面创建,并生成C语言的代码,通过代码模版进行block特征的创建!
, Q: c/ i6 D3 n3 l" @6 k. J此处使用ufun的创建block函数进行创建!
" ]3 ^8 y. s! y# A. b$ ]2 }0 }关键代码分享:
7 s5 N8 l+ h+ A6 C# q4 j- {
% z# q4 K/ y) A$ F+ O - /* Make sure User Function is available. */
$ V, ~7 C5 R* u( l9 V/ t
( H- M5 X. \& v7 q, z: U/ I- tag_t block_tag=NULL_TAG;) B7 d' R- o* [: }
- double lengthValue,widthValue,heightValue;$ H* ~5 N9 \7 z) T
- UF_STYLER_item_value_type_t length,width,height;
5 p9 G- A x F; J5 } - char *edge[3]={NULL};
* `9 p8 s, E8 o - int error = 0;: q8 e/ K' d' `! S
- double corner[3] ={100.0,100.0,100.0};# J% P* \0 L& V" h+ a# G& A4 y3 F" w
- if ( UF_initialize() != 0) , b; {: e4 n6 S; z$ h
- return ( UF_UI_CB_CONTINUE_DIALOG );# {2 }2 y5 p- ^/ ^, r& ^
/ }! z; q3 E7 h |; T- /* ---- Enter your callback code here ----- */
' t* i. X# F, L( d# d: v - 5 C) @. {" D5 r
复制代码
4 B2 I$ b: h8 I; Q# d( Z- d- length.item_id=PLMHOME_LENGTH;: H( }' ?) `2 Y" a; T i* k5 u
- length.item_attr=UF_STYLER_VALUE;
5 T. P8 r$ s$ }! @ - UF_STYLER_ask_value(dialog_id,&length);
" [! Y! |9 |+ r+ n! ^( [ - lengthValue = length.value.real; Y2 T& d4 `0 j# P
% Q7 M `$ D4 K/ ^7 G- width.item_id=PLMHOME_WIDTH;2 @& _. m$ ?1 E7 C, S( S
- width.item_attr=UF_STYLER_VALUE;+ W3 B; r2 ] ~9 n
- UF_STYLER_ask_value(dialog_id,&width);! H4 l' a+ T; a1 ?
- widthValue = width.value.real;
5 \* Y, z! x8 {" f# F9 P4 ~; W0 S - 0 o" |" b4 P l. _
- height.item_id=PLMHOME_HEIGHT;
; P) ]8 _2 r% J# `+ ] - height.item_attr=UF_STYLER_VALUE;& s/ A2 S/ b1 L
- UF_STYLER_ask_value(dialog_id,&height);3 H' n+ j; o1 y) ?! Q7 s% c
- heightValue = height.value.real;1 z! ]5 }* ~7 P
复制代码
' m% B0 Q- S8 y! d: H; W6 c- //covert value to char *
l m' G3 z; U( e0 k4 H7 e - edge[0] = (char *)(UF_allocate_memory(256*sizeof(char *),&error));
) l) T3 a( u$ z3 H - edge[1] = (char *)(UF_allocate_memory(256*sizeof(char *),&error));
# K4 t: \( m4 P/ b. O3 K0 p - edge[2] = (char *)(UF_allocate_memory(256*sizeof(char *),&error));! ~" u- F1 r- o% y; T [
- sprintf(edge[0],"%f",lengthValue);
1 o1 `* ]( F' s - sprintf(edge[1],"%f",widthValue);
) q7 w( ^" @8 ?; s: D - sprintf(edge[2],"%f",heightValue);
+ D! x: m- g0 P" `5 V7 f - UF_MODL_create_block1(UF_NULLSIGN,corner,edge,&block_tag);6 v1 G5 c1 O; u7 Z& [2 x& ]: r
- UF_free(edge[0]);
% l v' A: V u4 F5 d; B1 h - UF_free(edge[1]);0 U2 O2 B5 @, ]8 ~" r* q& X
- UF_free(edge[2]);8 B( S+ W) N6 f/ t- m3 q
-
* c' h6 M$ U5 T" S7 S; U" O3 _2 K - UF_terminate ();) U: s7 D5 p5 \7 Y2 T
?" k4 P/ s: {3 v- /* Callback acknowledged, terminate dialog */8 l7 j1 k4 P# j% ^
- /* It is STRONGLY recommended that you exit your */. _0 y6 U4 i: C/ H6 O" t; H I1 o
- /* callback with UF_UI_CB_EXIT_DIALOG in a ok callback.*/0 h$ A) l3 Q& d. m! e) K3 Y6 Q
- /* return ( UF_UI_CB_EXIT_DIALOG ); */; a b! H z5 K3 V$ q
- return (UF_UI_CB_EXIT_DIALOG);
Y( u2 w! _: a- O
3 ~0 C5 B4 {7 l( m2 w% y- }- l5 P# s \) O* f
复制代码
& c0 n) }3 o( r, E3 @; i2 m/ N- M* Q" E. g8 |8 v4 Q6 a$ N5 \
高清视频见楼下:5 S. h* C3 G* \
0 k& F- E& m9 Y. ?# Q |