|
|
- int ATT_EDT_CUSTOM_CAL ( int dialog_id,
3 |. v6 r' u/ G k" s - void * client_data,
3 D. O: z9 x9 h, F% F9 s8 K2 a. |* P - UF_STYLER_item_value_type_p_t callback_data)
! f* ]5 G4 q0 N b - {. D7 c" P5 ~* ~7 J2 \
- UF_STYLER_item_value_type_t data;& ]% N; F8 d5 G
- int stock_class=0;
6 T t; x/ u2 \5 K - int count=0;
1 v: o$ H2 [+ i5 O/ B2 c - tag_p_t objects;
[8 a/ V; c. H. i) q$ G6 C! | -
( _* p; J9 |3 c' L& N/ C/ J+ Q; h - //设置坐标系6 u1 X7 P0 ]& V4 j
- double csys_origin[3]={0.0,0.0,0.0};
/ O4 |/ H% H- Y& Q - tag_t matrix_id;
0 q7 \/ w9 \; [" k G; j - tag_t csys_id ;$ |# f9 I2 O7 M0 ]9 {3 n# y. {
- int option=15;- h* M, q8 P/ V0 o1 O5 j3 C4 U
- double csys_matrix[9];/ o- c2 o) ^' n6 x* m1 X
- char title[40]="定义临时坐标系";* x+ |' H4 U2 a% b# V
- , Q& N7 Y; e, w) X8 q0 r
; f' R4 q+ i% Z& C/ K7 E- //毛坯尺寸: u! s1 l+ ^, e; j& x* s
- char stock_size[256];4 v* d' G, O. b+ F
% s- b6 l, N' ~# F; L. g/ h- //坐标对齐边界盒8 \; q. O( {, |* o& D& P
- logical expand=FALSE; 5 r& w; {' Z* |! s9 {
- double min_corner[3];
- j2 R" p ~, U* h0 I - double directions[3][3]; ' _2 M, h# l" `/ G) a" O
- double distances[3];
( b' S& \8 @+ | g - * v( G1 ~) H- e/ @! K& s
- //坐标系定义对话框返回值5 _* k* F! a: b% J$ E/ r
- int response; |: r6 Z a( X- w( ] T# i
- 1 F& v5 P+ Y+ h; G; o% _5 e
- ( K$ d+ k, `. P) v8 W& j( R! R
- /* Make sure User Function is available. */ ( p v. b3 v d. q. V
- if ( UF_initialize() != 0)
' E9 ?2 a9 Y% ^8 p0 C: s# P0 F# ` - return ( UF_UI_CB_CONTINUE_DIALOG );5 I2 r& b! ]. k7 ^
& z3 m1 h( Y( }! K- /* ---- Enter your callback code here ----- */- E: m2 v7 R: ^# x. F
- data.item_attr=UF_STYLER_SELECTION;
\% g6 y2 g( r6 Q - data.item_id=UF_STYLER_DIALOG_INDEX; " L: \6 ^5 u. S' z& ~
- UF_STYLER_ask_value(dialog_id,&data);
* N4 z4 _$ f. d; w9 ?2 k - UF_UI_ask_sel_object_list(data.value.selection,&count,&objects);) w: N) k T% ~, ^. l/ E7 _
+ P p6 z4 L6 ]/ H$ Z- data.item_attr=UF_STYLER_VALUE;
" H) b! a2 q% E' t3 N5 C3 x - data.item_id=ATT_EDT_STOCK_CLASS;
3 K8 I2 u2 o. W9 \# K* d - UF_STYLER_ask_value(dialog_id,&data);- h# G( u/ u( `& [! u/ u
- stock_class=data.value.integer;
7 F9 o ~$ z0 B& g+ N - " Q8 `1 l$ @9 C5 R f( G
- uc1630(title,&option,csys_matrix,csys_origin);
( G: A @3 A+ t& W4 c% [* X: B
7 M; ~ l) D( S5 \1 K- //定义坐标系
8 H b, l9 O% d# i" B2 b5 b - if(0==stock_class)
$ {1 s: n) V2 ~( _% m - {
0 d& x1 X( C6 c# |$ \: | - uc1601("定义临时坐标系",0);
* M; D$ O8 k9 k6 b, u: b; R' { - response=uc1630(title,&option,csys_matrix,csys_origin);6 n0 E: b+ C6 E- ~( j/ l9 O
- }
v( G' o5 \5 J/ \% K
, F% `( `2 T9 {( K' C! t% Q- if(0==count||3!=response)+ b7 D9 \2 _# K: {) n% V
- {6 ^" A" K, E" a& s# x! r0 W
- uc1601("请选择实体或定义坐标系",1);
/ r' `# j$ _6 y# X - }
7 U( d0 G/ T' ]* L( v5 L6 }. B - else if(3==response)
3 J6 n L) H5 P. M+ \) \. R - {
* B7 |% J. j+ u' Q( a* I0 ?9 V* e
$ x. r9 }1 m; ?" l2 N- UF_CSYS_create_matrix(csys_matrix,&matrix_id);
2 m! H5 h& q% @' c5 x) C' | - UF_CSYS_create_csys(csys_origin,matrix_id,&csys_id);
$ A: v7 v$ o1 ^( N& e% T/ z
1 i$ o# D! M- \" q' ]- UF_MODL_ask_bounding_box_aligned(objects[0],csys_id,expand,min_corner,directions,distances);
! _0 B1 k* v/ C1 ]; }- h - ) I7 L; D8 |" b; v! F
- stock_size_string(distances,stock_class,stock_size);9 c5 l( k& F$ f6 y# H# X. w2 p
-
3 _. {$ D( I7 r7 z3 H - data.item_attr=UF_STYLER_VALUE; ; A2 `! |" B6 \
- data.item_id=ATT_EDT_MAT_DIM; : y6 ?4 e( d- }0 D$ f: d
- data.value.string=stock_size; ! z% k) G1 ~5 k8 y
- @# }+ {) r7 L9 H, n5 W
- UF_STYLER_set_value(dialog_id,&data);
6 c/ y. p$ w1 X* l1 J% Z - UF_OBJ_delete_object(csys_id);
7 m+ Q* I+ D( b2 i! C+ _: v/ X/ c - }
7 A- t+ C$ T0 i$ ?# u+ r - ! P- [; K- f5 S
- UF_terminate ();
" ]3 ? l& T5 A4 B5 ~3 X8 l( j! k
# U* S) S! h" p) r1 C- /* Callback acknowledged, do not terminate dialog */, F0 y2 U; l0 _& H# F' c) q
- return (UF_UI_CB_CONTINUE_DIALOG); 1 y4 i5 w9 Q- {/ b4 A( D4 C F5 e
-
3 L9 ]9 B; \) C/ R0 g8 M - /* or Callback acknowledged, terminate dialog. */
- Q, y4 T" l5 T3 e5 T% V+ d5 k - /* return ( UF_UI_CB_EXIT_DIALOG ); */
p, v: ]+ B& V$ T8 J' O3 o - }3 E- Y" x4 H4 I" ?! G$ W
- }+ k5 N( V2 A1 X
复制代码 |
|