|
- int ATT_EDT_CUSTOM_CAL ( int dialog_id,
/ O& R# t# q' G - void * client_data,
% M! A+ p& x1 t7 W; D- Y1 |2 M - UF_STYLER_item_value_type_p_t callback_data)
2 P/ R8 b0 W+ ?1 F' E - {1 }! x: k& l: J) e
- UF_STYLER_item_value_type_t data;" A1 {2 \; N |) Y N9 R* H6 b6 z0 }
- int stock_class=0;: b# z8 o9 @# c3 H0 [+ q8 K
- int count=0;0 f5 l. z! z2 x; d L
- tag_p_t objects;
" U3 E8 g" j5 m% q- i+ f, x - 8 ]8 J3 r2 R I2 X8 W
- //设置坐标系
* ?' Q/ Z+ X& F2 n - double csys_origin[3]={0.0,0.0,0.0};5 e+ Q9 d1 U( w. m$ O I
- tag_t matrix_id;4 W+ j) L& f% X: x1 q+ i
- tag_t csys_id ;) _: }1 o0 C2 g4 ~9 B- Y
- int option=15;
" D6 B- q. K0 E5 ^3 F - double csys_matrix[9];
1 C Q5 L! F4 e8 i - char title[40]="定义临时坐标系";8 p. w2 i. k6 `( Q7 i, h/ J
- * i! t6 u& D0 g) q$ W! V* j
7 ^+ e" w7 z0 I6 j0 [- //毛坯尺寸
* h7 S7 p7 J0 s7 f% W; ^# o7 d' u; o - char stock_size[256];
1 [6 Y+ T* {: f( _/ o
/ d7 x0 D1 w/ H- o; P& \- //坐标对齐边界盒
9 S9 P. ~8 F5 j& h% T - logical expand=FALSE;
9 {7 t( A1 B4 B* U d9 r+ W3 S - double min_corner[3];
; E6 ], \' H) h - double directions[3][3];
! Y( N! R( T. w, K+ l' V- I- t - double distances[3];+ ^6 m* I( |7 ], p6 P5 P
6 U; P1 g) Y: c& y' g% s5 ?3 N- //坐标系定义对话框返回值
1 ^ K2 X1 N* f( Z' [ - int response;' x& V- r F& h3 o
# ~ U5 ?& ` g `- ' s# f4 v8 K) G/ M+ d8 f) Z
- /* Make sure User Function is available. */ 2 q+ g- X6 p0 N8 x. O, V! R/ |
- if ( UF_initialize() != 0)
% H) @% L5 y) p1 C1 u) W: c - return ( UF_UI_CB_CONTINUE_DIALOG );: R: [8 c3 l. W! ^0 @* y
- ! o& E. n2 m% n. W
- /* ---- Enter your callback code here ----- */2 K" J6 ]6 Y U" y. F
- data.item_attr=UF_STYLER_SELECTION;
F" |7 T4 b& F5 \4 h$ v - data.item_id=UF_STYLER_DIALOG_INDEX; 5 E6 b4 e4 v9 B! {
- UF_STYLER_ask_value(dialog_id,&data); 5 l8 h( _+ C) w0 E! j
- UF_UI_ask_sel_object_list(data.value.selection,&count,&objects);
2 {) |' e4 {1 N+ i9 r0 D% O6 G- [
! U6 j" |, j8 v1 d- data.item_attr=UF_STYLER_VALUE;
c+ g6 N! L7 a, \' ~, i8 o6 P - data.item_id=ATT_EDT_STOCK_CLASS;
( Q) Z4 q" Y1 b; Z: |# k7 H9 f - UF_STYLER_ask_value(dialog_id,&data);- E9 _5 t/ p1 R4 ]) U2 G
- stock_class=data.value.integer;7 S) T; u9 z( T$ r
$ |1 p) e. H: K& Y9 W' e- uc1630(title,&option,csys_matrix,csys_origin);
7 _( R# ]: C9 `" S5 _. F. O
' p+ |! L8 ^5 @8 B9 F3 g, o- //定义坐标系
! v% W9 `9 ~ }; D8 i4 s - if(0==stock_class); N6 P" V" Q& A: X ^: J% Y
- {
0 |: f9 U& i! G j6 r/ T+ d, A" q: y - uc1601("定义临时坐标系",0);
% Q$ ]& m0 O" v - response=uc1630(title,&option,csys_matrix,csys_origin);
3 e& d0 r: d0 f$ q1 h; B1 t - }
3 W$ A% @/ T, O" }2 C/ t# p3 i - + B, K' l% [; p# m7 V% l0 Z
- if(0==count||3!=response)9 `$ A g6 ~+ F; y" s' V
- {4 Z- u4 e$ o# x, [
- uc1601("请选择实体或定义坐标系",1);
! D9 D0 n% |! Y; x# g8 H" p - }7 A$ B1 V/ n% V" X
- else if(3==response)
. T. m9 A( b: a& u( T* ~; f3 C - {
( f; G& c2 Y) X0 R- | N8 s% w - z& [) V2 H1 g" n* H: \& }1 l
- UF_CSYS_create_matrix(csys_matrix,&matrix_id);
) g' G- v0 N0 V - UF_CSYS_create_csys(csys_origin,matrix_id,&csys_id);
! D% ]8 _" l: \6 D
! H2 V; U+ D) e0 M# p- UF_MODL_ask_bounding_box_aligned(objects[0],csys_id,expand,min_corner,directions,distances);5 @# {# ~( a# B& T* r5 U) D
; A9 S }$ D6 q$ w. m8 h- stock_size_string(distances,stock_class,stock_size);
0 I* E* X) i: Y) m5 [ f6 a - + U5 q7 a7 h( |( A1 H
- data.item_attr=UF_STYLER_VALUE;
8 M. K B q' ~ - data.item_id=ATT_EDT_MAT_DIM;
, N# K h$ B' T8 ]1 | - data.value.string=stock_size;
7 s9 b/ M- j! ?, D -
, [% y1 d1 C1 l. `. ]( e( t1 ] - UF_STYLER_set_value(dialog_id,&data);5 D: P& H/ K E- X6 G7 F) c# a/ f: i
- UF_OBJ_delete_object(csys_id);% X# W$ f5 A* y6 H* a/ ?# T z! h
- }
! {2 D- l0 d: ?0 U: c, H - + z: S7 G9 r5 m- f. j3 | n( l9 b5 v4 X
- UF_terminate ();0 p* j: Z! D. y
- . H6 o, \! X) u7 I$ _% e
- /* Callback acknowledged, do not terminate dialog */% P8 {/ v6 O( g& L% D0 j
- return (UF_UI_CB_CONTINUE_DIALOG); $ D* K' i* C% [( K
-
2 K& b5 ^" D, `- V. _ - /* or Callback acknowledged, terminate dialog. */ D$ }; i0 N# u' Y5 a0 i5 w
- /* return ( UF_UI_CB_EXIT_DIALOG ); */; C1 E- o% o" W8 J- X0 V
- ( P- x- f- m. @7 s% K8 v) D. L
- }
; e1 {* a8 _/ V0 Z& }
复制代码 |
|