请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
×
【PLM之家-NX9.0二次开发实例视频】15 UIStyler生成C++创建block
9 R# q/ p' Q7 P U% j& \: B 内容:通过使用uistyler界面进行block创建 目的:熟悉uistyler界面的使用和C++ code生成 使用C++生成的模版,在对控件进行获取值的适合,方便快捷,代码量少,但是好像生成的模版不太稳定。
UIStyler生成C++创建block
+ o, F( F4 r6 P# G4 t 在上面的例子中,通过生成C进行了block特征的创建,这个例子使用同样的UI,生成C++的代码模版,使用C++模版进行block 的生成!
" P F! ?- L4 ]6 [$ B9 q1 {
# c3 O) i* N d可以看出使用C++生成的代码实际上是NXOpen 下面的UIStyler类的很多方法实现的,对话框的赋值方便快捷!
& ?4 V3 V. o. `8 Y6 a , S1 g$ i/ z3 z. i
关键代码分享:
* L7 _ }1 n( x0 r* j- 2 t- I* i* [6 Q- k l" ^& P' F
- try
# z$ q- s7 B Y - {
" b. \$ \4 g* f; k) W, X6 ?1 u - if(!UF_initialize())
1 E* x% z+ W2 }; ?, x# E) o - {" \$ `- l3 C, I; h- B
- double corner[]={0,0,0};7 d6 O. p' ` g4 p9 r
- char *edge[3]={NULL};
5 S! S1 L% `( K0 V* m" C+ Y - tag_t block_tag=NULL_TAG; d1 {1 U2 a+ a
- int error = 0;$ z- ^, l8 c) k$ `3 q) n) J# D9 w4 n
- double length =this->plmhomeL->ItemValue(); y! M% h; S }+ w& m
- double width = this->plmhomeW->ItemValue(); y, T9 y" x- F) @
- double height = this->plmhomeH->ItemValue();" P3 w$ [6 h" K" Q% e. ? ~# D% s
4 M- b9 ^ ^1 @+ `+ L- edge[0]= (char *)UF_allocate_memory(256*sizeof(char),&error);
. p4 @2 h( |5 d" k Q1 T0 H; ^ - edge[1]= (char *)UF_allocate_memory(256*sizeof(char),&error);
" W# S' N( j- \ - edge[2]= (char *)UF_allocate_memory(256*sizeof(char),&error);$ V- ^* Z2 D6 W7 ` z. V( A& e
- sprintf(edge[0],"%f",length);
+ r3 f8 ]; c, }7 H - sprintf(edge[1],"%f",width);
9 B& @& w ~) R+ X' Q - sprintf(edge[2],"%f",height);8 q6 u3 [! P# i# Q E
- UF_MODL_create_block1(UF_NULLSIGN,corner,edge,&block_tag);
7 ^( H) v+ t4 Z( m( f+ D; ]; U - UF_free(edge[0]); i8 T* U% U4 A7 D& i/ y& y7 g, h
- UF_free(edge[1]);/ |# z0 P: G( R c; h! n
- UF_free(edge[2]);
$ v" e8 ~4 X: N. ` x/ ~7 p. I4 r7 k% ~( k - }; D# R' M& d7 v4 a- _
- UF_terminate();
9 m: _9 O" r! I9 ?$ { - }
9 r0 Q2 Z$ z( H8 p6 x1 N
复制代码
' `. @& Q* M' V7 u. u+ `
, O1 p% o+ }' C4 `. k
' r! Z" `$ c7 d 6 p o4 W; _. S. G% o( b t S
高清视频请关注楼下:
8 H$ ] |. g; {$ p+ ]: r* B ( ~0 U( v* \9 |; c
' A6 ~" m7 @0 _5 {
5 y8 {" X# l* B; {
|