|
- int ATT_EDT_CUSTOM_CAL ( int dialog_id,
& v6 |& t5 [; T% q6 \( J - void * client_data,- T0 f% h5 V, ?; H4 x# o# c4 ]
- UF_STYLER_item_value_type_p_t callback_data)! \: ^& t6 ^9 s
- {
. b. i- b# o; L L - UF_STYLER_item_value_type_t data;- B4 Q3 n% P d9 B
- int stock_class=0;+ L9 d$ v1 N5 P& S* B. c. q
- int count=0;" i/ k3 @4 D7 q; {8 e
- tag_p_t objects;9 k& Q9 I$ p/ ]/ _+ s' l8 \' h C$ ^
- 7 }+ h/ C: H% x
- //设置坐标系
5 R) N% s6 Y$ O/ Q5 f' m' Y/ R - double csys_origin[3]={0.0,0.0,0.0};! R# B% j; c7 L0 c( |5 N# M
- tag_t matrix_id;, m6 X3 U* d0 b J- d
- tag_t csys_id ;
# X% s0 E% v, q" ^7 h# f, r' y - int option=15;
5 _9 m+ p7 m, |4 y" V$ O* ]6 d - double csys_matrix[9];5 R1 {6 W W( E; T
- char title[40]="定义临时坐标系";# J! O- E) {# Q7 B: m2 b
-
" b# R0 s$ y M! u; J/ e( W
: D. }, P! }" _6 S, L, e+ B1 A, D- //毛坯尺寸
' W: w6 |+ z) p5 z7 ? - char stock_size[256];
% k& j# |6 K. O) c R9 e+ p
# L1 Y* y$ v0 W! d0 l' v- //坐标对齐边界盒) ~0 v. b# C/ b# R
- logical expand=FALSE; 7 Z2 s' E' D* ^8 P
- double min_corner[3]; ( E- y I8 g! y! i9 q
- double directions[3][3]; 2 x% ~$ f8 z) e* p
- double distances[3];
0 {& r: ? E+ Q$ H3 f4 p2 ] \9 O" W
9 N+ A, y6 h8 L6 `' K" @1 B- //坐标系定义对话框返回值* ~$ ~) f5 E% P \
- int response;
$ Y. Z) p! O) X: z, h! b - 4 l3 ~ E/ E2 i' v3 z0 i' v
- ! O0 u1 j; q# P# ?9 _& t
- /* Make sure User Function is available. */
. Y: s8 G: D3 J2 y! c& Z - if ( UF_initialize() != 0)
$ C0 P! Z+ D) U2 ]0 [ - return ( UF_UI_CB_CONTINUE_DIALOG );: D: f8 H0 [5 r4 L) ]! ], r2 J
- # `3 p$ O, C3 _! Y) y& {
- /* ---- Enter your callback code here ----- */
3 v9 f2 n% q P8 A: c4 c7 D - data.item_attr=UF_STYLER_SELECTION; $ K; {2 y9 t, Y- I
- data.item_id=UF_STYLER_DIALOG_INDEX;
( o7 P9 @6 |* X' D% B - UF_STYLER_ask_value(dialog_id,&data);
4 u3 t6 D9 D' h+ R0 `" O2 B" X% c - UF_UI_ask_sel_object_list(data.value.selection,&count,&objects);
7 F2 ]( a6 u0 \+ A9 e& f r, G2 S
/ n# h& V/ {( ]2 i2 t' h9 m! E& v* x" G- data.item_attr=UF_STYLER_VALUE;
6 b' E a! ^8 q - data.item_id=ATT_EDT_STOCK_CLASS;
0 \8 r6 T% A4 H - UF_STYLER_ask_value(dialog_id,&data);( \5 g. y& l9 x" N/ T. Z+ s0 w: l
- stock_class=data.value.integer;
+ W- w9 C3 P* D% ~. }* }, Y - ; c% c9 C* m% z
- uc1630(title,&option,csys_matrix,csys_origin);7 c5 h$ q0 h8 G* j$ n
- ) k' i9 x& G( }5 I5 m
- //定义坐标系
" y7 o, |. x' P( Z: `2 m! s0 U - if(0==stock_class)0 q8 y- N. M6 ]! |) B4 l( E
- {
$ L* o6 x. w8 d3 `# D9 S9 L1 H - uc1601("定义临时坐标系",0);% G$ p1 O. }: {7 j% ?6 z2 G
- response=uc1630(title,&option,csys_matrix,csys_origin);/ [% N/ k0 D1 G j) S
- }% z& C$ w5 r D/ ?- `
8 a$ [7 ^$ c% n( \- if(0==count||3!=response)
- K' e( S o' K; o) } - {
# B. ?+ \) k' ?7 N$ y/ ^/ P- R8 v - uc1601("请选择实体或定义坐标系",1);
1 B0 S* k5 T3 m% Y - }8 s! D& r; o* _% w. @/ D
- else if(3==response)
) R3 e. C" S3 e" Q$ \ - {
* ~. U& q% ?- k) W. u0 @" h
' d% ?5 [' O) n- UF_CSYS_create_matrix(csys_matrix,&matrix_id);- G4 M* W$ t# _
- UF_CSYS_create_csys(csys_origin,matrix_id,&csys_id);% Z1 {7 y5 z: K) I+ [3 s; g* }
7 I; j# }8 @2 [" q1 g$ h4 A- UF_MODL_ask_bounding_box_aligned(objects[0],csys_id,expand,min_corner,directions,distances);2 x6 ^5 u3 J/ D
- 4 g( }, M9 h: s4 k# D( @
- stock_size_string(distances,stock_class,stock_size);1 _* U& k2 c" g
-
/ n6 _( Q; M; }5 u8 W! U - data.item_attr=UF_STYLER_VALUE; * l$ k o: Z+ s9 H: u [
- data.item_id=ATT_EDT_MAT_DIM;
0 t. `4 i& T% d9 C: Z, [: y0 W6 @0 a - data.value.string=stock_size; ( v) E7 L. c% s+ R. ]
-
4 q; Y7 x6 z* V& f6 i/ W - UF_STYLER_set_value(dialog_id,&data);
- ^6 ?0 ]9 U- h9 V' h - UF_OBJ_delete_object(csys_id);
8 \5 v, g3 m' v; a - }
9 p7 o: e) m+ s* d0 B$ [
' I; ~6 t: }8 r% H+ l0 b9 Z& s6 ]- UF_terminate ();# u0 U5 t2 Y& }2 C! ^" b& e# Y Z) ]
- / K' e: D# h3 q
- /* Callback acknowledged, do not terminate dialog */
1 {2 g, @$ y2 F$ ^/ U - return (UF_UI_CB_CONTINUE_DIALOG);
9 y5 ?0 `: U2 m/ m; q - ! ]6 V Y0 r, r5 k3 ~7 h: Y) P
- /* or Callback acknowledged, terminate dialog. */7 l" s+ d9 f V6 L4 V% }
- /* return ( UF_UI_CB_EXIT_DIALOG ); */. R( F4 [$ g: l
& I9 m6 r7 D1 T; b7 o- }9 a# h# _ T' s8 |
复制代码 |
|