|
|
- int ATT_EDT_CUSTOM_CAL ( int dialog_id,
# `) t" S9 }7 K, d6 F8 T, R - void * client_data,
4 \! T5 a0 N" t9 B - UF_STYLER_item_value_type_p_t callback_data)( q8 O' ^0 d% x. t. I
- {0 H, w, _$ \' I, D+ J' }- N% S
- UF_STYLER_item_value_type_t data;
2 y7 Q( I: i, X6 s7 a! \$ o - int stock_class=0;( f, c3 \" r* p1 W( j
- int count=0;: g: Y8 r$ v+ S6 ^9 C
- tag_p_t objects;
- p1 U1 I- ^. E - r( O, c, y+ [$ L( y
- //设置坐标系 Z( i9 {# G+ y1 v% k: w* T
- double csys_origin[3]={0.0,0.0,0.0};
9 [1 O2 w$ z2 K. a6 p - tag_t matrix_id;2 l2 G4 u. M- O3 V% c8 e
- tag_t csys_id ;
. \. C/ s* H" h; D( _ - int option=15;
4 M( l% d) d1 I* p% B - double csys_matrix[9];' Q' s7 S. O4 r0 t w6 Q: s
- char title[40]="定义临时坐标系";8 x$ j, V9 a& a4 Q
-
" @) f. h, v" ]( ]0 f
2 p# n0 y# `: K% w- R) G3 X- //毛坯尺寸, M( m# T2 R* y
- char stock_size[256];% \3 k: V" l& P6 Y H1 n; c( I
- % F4 o4 d h. F$ M- h7 R8 v: X
- //坐标对齐边界盒: P3 U3 v! d* `3 f# A% ]" A
- logical expand=FALSE;
: F6 [! N, V& r6 i ^ - double min_corner[3]; 3 g% y8 [% h+ M2 p, }$ F
- double directions[3][3]; 0 H0 A$ w$ e; E ]. h
- double distances[3];5 }0 M7 z2 g4 X# K$ v$ ?3 u
- T. e! }" u, f) }8 N
- //坐标系定义对话框返回值! y# ?3 J8 s+ W7 B& \
- int response;3 i2 A. @5 {* F- ?/ q
+ a4 a8 W! V) s! D- - y: v5 L" N2 i) _) `
- /* Make sure User Function is available. */
0 l4 ^- s. `% N; O! F - if ( UF_initialize() != 0)
4 \" H: D! t( f. Y2 W - return ( UF_UI_CB_CONTINUE_DIALOG );" Z" Z) y# T# Q
5 G @) A0 {7 S6 i4 n5 e9 u( a9 C- /* ---- Enter your callback code here ----- */+ z% d0 v! ?4 H9 D8 ]: [
- data.item_attr=UF_STYLER_SELECTION; & d* g9 _6 _; t: p5 |8 W
- data.item_id=UF_STYLER_DIALOG_INDEX;
, J* [ ]4 h/ E' [) u - UF_STYLER_ask_value(dialog_id,&data);
" s- j t1 a- ~ - UF_UI_ask_sel_object_list(data.value.selection,&count,&objects);
* \) q/ |- k( Q. ]6 b# X* e
! r: e7 V# b* {9 S- data.item_attr=UF_STYLER_VALUE;
7 g$ R& i# H$ P! C' B. I: w - data.item_id=ATT_EDT_STOCK_CLASS;
" p$ d+ [* v+ p& H6 r2 P3 L G - UF_STYLER_ask_value(dialog_id,&data);
+ |! @ \* `9 J0 K - stock_class=data.value.integer;
7 a0 W1 ?2 m% C7 K% r/ V- H/ s - / x- Z# A7 c7 _( I
- uc1630(title,&option,csys_matrix,csys_origin);
$ ]4 O1 l' r" _/ g3 y5 t% x - : |! v) [0 n- o* z3 _8 n; r8 J
- //定义坐标系' b6 U/ H' h+ M* c/ x
- if(0==stock_class)
, T6 ~* j/ K+ }0 A2 i! C - {
7 l& L# N! v+ i - uc1601("定义临时坐标系",0);
- B* R7 u! K/ m! F$ V! p - response=uc1630(title,&option,csys_matrix,csys_origin);
5 \( U0 Y0 [/ h) Z5 a; r2 M - }
# t# A: o9 E9 _+ ~) _2 B - 5 g6 W+ T" f' D! M8 K' v, z3 h
- if(0==count||3!=response)! c9 z6 K7 N: r7 t8 d/ \. b8 Z, z
- {, B) g( E# p% ?2 r
- uc1601("请选择实体或定义坐标系",1);( f4 e, m" Q0 T/ |- d: ~# Q$ N
- }
1 C& F/ ]6 V9 S% Q& L% C1 o - else if(3==response)
. f$ u; t) Y( N8 q1 r7 T, [ - {
9 m4 t7 x; P' f8 s% ]' Z - 7 g r# J+ m3 p7 e6 }' {
- UF_CSYS_create_matrix(csys_matrix,&matrix_id);
* f; ?7 f% ~ ]0 e" _3 e - UF_CSYS_create_csys(csys_origin,matrix_id,&csys_id);
# v" A- E0 ~* X0 ]; S9 d
5 |4 n: p% Q- `; w- UF_MODL_ask_bounding_box_aligned(objects[0],csys_id,expand,min_corner,directions,distances);
# H% L* K- u/ t4 W7 g! |% h" M' f - 5 P! a4 `) l+ r* _
- stock_size_string(distances,stock_class,stock_size);9 P# J2 n& l5 d/ _! y
- % H% [" |0 p. X1 J
- data.item_attr=UF_STYLER_VALUE; & c( A+ F. n# V& |) E, m* h
- data.item_id=ATT_EDT_MAT_DIM; 6 ^2 R; Z0 `9 d6 N' `
- data.value.string=stock_size;
# Q+ l* J) F, Z( @$ k -
* w- E) e4 z) Z$ `5 F - UF_STYLER_set_value(dialog_id,&data);
8 c3 V! @/ F: O( R4 b2 W! G - UF_OBJ_delete_object(csys_id);# q: D7 S0 P6 c" S) f
- }9 m5 F+ H; x* {% p
# z [- Z- J3 m) r; s- UF_terminate ();
& ~, y* d# i3 W7 Y3 D$ }( k
- J9 H$ ]: h, E% }- /* Callback acknowledged, do not terminate dialog */5 j2 I, G- s; w- }9 |* M" Y
- return (UF_UI_CB_CONTINUE_DIALOG);
9 a7 |0 e/ I* Z& n2 @+ M -
2 k, l+ w, T2 z" {% h- ]+ f - /* or Callback acknowledged, terminate dialog. */
: ?# K- t/ T& J4 Y* M6 K; d* T - /* return ( UF_UI_CB_EXIT_DIALOG ); */
: E# _ \! x$ I+ `3 Q
/ ?: `% ` B0 Z* {7 l5 N- }
- ^" z# q6 P! O- e6 c# \6 I; y
复制代码 |
|