|
|
- int ATT_EDT_CUSTOM_CAL ( int dialog_id,
5 {8 [! ^$ g \' S! J/ ?$ K - void * client_data,9 e- N* R# H9 w5 }! P8 [& n M$ e. O
- UF_STYLER_item_value_type_p_t callback_data)! m; k- G! d. L: i
- {$ I$ U2 H& ?5 k1 J" @' c% @# U4 l
- UF_STYLER_item_value_type_t data;
. J' d: B) c6 ?" H: ^4 N* }9 W - int stock_class=0;9 Z/ X" V( j5 ~5 u& [/ C$ T n5 o
- int count=0;
+ X. L0 B2 g8 f! S! H/ Q) i/ H - tag_p_t objects; Z# M8 d/ C* m, K
- ) `. K7 j: `# u6 H4 P
- //设置坐标系0 s+ ?" O) a1 _0 E) y2 |$ S/ m+ t
- double csys_origin[3]={0.0,0.0,0.0};, v9 C0 [$ Y0 Y: c/ ~
- tag_t matrix_id;, [: x# x/ R: A+ q% l
- tag_t csys_id ;
, g6 ]. F" Q( u6 x+ N( R - int option=15;
1 D* W7 P# Q7 d% ^+ g. x - double csys_matrix[9];
+ B6 w3 H, |) n( L( x0 x/ j2 Q - char title[40]="定义临时坐标系";
- ]; B# c, w% M1 c -
; R3 l5 s3 I4 J) B9 L8 Q - 3 d' q* w" L& R. N% Z
- //毛坯尺寸7 }) C n3 y W2 F3 ^6 m# e! i' i# i
- char stock_size[256];
9 I3 i' Q1 h. W; y) t- m: I% i' l. c - 7 n% R. C9 S9 S2 h' Z# {
- //坐标对齐边界盒8 f2 E: l2 A+ n3 Y
- logical expand=FALSE;
: v) C6 E% F$ F; x. a - double min_corner[3]; 7 i- ] d! L/ v. i3 t0 u
- double directions[3][3]; # W$ x+ w8 ]4 p* X' g7 }# U
- double distances[3];
$ y; Y; ^* A( X* v; V( B - % p8 ]* G8 {0 h9 F' z6 Z
- //坐标系定义对话框返回值
1 |/ J/ y; D3 @2 B( d7 e6 s& S - int response; o7 y& j: ~) l: K
6 _/ u) @9 P# |0 ^: ]3 i- 4 D, {- f- _4 g) ]
- /* Make sure User Function is available. */
8 F' f1 c/ j, S8 T5 o4 b+ s - if ( UF_initialize() != 0)
/ F9 K) A3 Y. _" c4 m: ]( B - return ( UF_UI_CB_CONTINUE_DIALOG );
* X5 e2 S" F" |6 L) n, R
+ H" y4 x+ E7 t |- /* ---- Enter your callback code here ----- */
& j' b# Z1 n# U! a$ Q1 u6 Q& b - data.item_attr=UF_STYLER_SELECTION; $ M" ^1 a* ^1 Z0 I
- data.item_id=UF_STYLER_DIALOG_INDEX; 8 E( t2 x/ x$ X' ]; j! O
- UF_STYLER_ask_value(dialog_id,&data);
$ v5 _# ~2 U) R& ?1 y0 T6 n6 f - UF_UI_ask_sel_object_list(data.value.selection,&count,&objects);
+ j% T k. e _: q - 2 d) d" q" S( N7 P. `
- data.item_attr=UF_STYLER_VALUE;
5 a; }/ N1 ~( f7 c - data.item_id=ATT_EDT_STOCK_CLASS;
: o2 h# F4 G7 G( j& c9 } - UF_STYLER_ask_value(dialog_id,&data);
- G1 D( u, \# u$ m' b - stock_class=data.value.integer;
) X4 @$ `5 i3 Y, {* S! b: ^
* Q: M( l$ a/ L- b! g- uc1630(title,&option,csys_matrix,csys_origin);% V3 z! a t: u4 a- h3 [4 P
, M- _+ M2 v- X# E @7 L6 }- //定义坐标系9 h8 T2 ?! _, X) C7 u
- if(0==stock_class)3 Y3 o- A5 g% B) C
- {$ j, n4 P% q f# y# [
- uc1601("定义临时坐标系",0);
* ]& R4 U8 M) j( \3 Z' a7 Z - response=uc1630(title,&option,csys_matrix,csys_origin);
- b' y$ D: _8 ] - }+ m' S4 [7 y2 e% I5 P
, f; u" a) D( r; X- if(0==count||3!=response)
1 L/ r6 }$ d/ Y4 C) c4 ]7 t - {: X7 X9 I4 p; [0 [! s' c! F
- uc1601("请选择实体或定义坐标系",1);% l R `5 @4 x9 c7 k
- }1 G" m7 m( G7 z; @- n H* L
- else if(3==response)1 _- e u9 z* x; I
- {; T7 Z& u9 F5 O
- {" w6 k& G/ z3 k. n2 O& X; }- UF_CSYS_create_matrix(csys_matrix,&matrix_id);1 l) s: C) t4 U8 q: A/ H: ]
- UF_CSYS_create_csys(csys_origin,matrix_id,&csys_id);9 I7 X3 l+ z5 h. `9 L7 |5 f
) b% [3 ~2 ]* @; ~9 F% I b- UF_MODL_ask_bounding_box_aligned(objects[0],csys_id,expand,min_corner,directions,distances);
6 K" E6 |: ^4 K- o7 H - @6 @3 Y8 n. F1 U& t( \: K: d; m
- stock_size_string(distances,stock_class,stock_size);9 n# x, A- O3 I/ W- J% e, [
-
' Y' x8 d8 G; m: [( C. A5 ]4 ^! b - data.item_attr=UF_STYLER_VALUE;
/ N3 `, x" _6 D& a - data.item_id=ATT_EDT_MAT_DIM; " ?8 w; U& v/ D5 h
- data.value.string=stock_size; " H/ h$ |* M! a7 k! z& ~8 E
- u/ B/ B. T' {6 ^0 x
- UF_STYLER_set_value(dialog_id,&data);
2 c9 n3 X) U' R7 q2 l4 g - UF_OBJ_delete_object(csys_id);
0 j3 D! v( p4 q; ^ - }4 t4 s9 Q' p, b3 I0 w! y
9 d0 } \3 d: Q- UF_terminate ();
# j& I; u: {" a, k# a - " z6 m8 D1 a( E! k& r* k
- /* Callback acknowledged, do not terminate dialog */
2 p3 p" Z# {( F, {3 M - return (UF_UI_CB_CONTINUE_DIALOG); - w' H$ k( e) r) C5 y( F- C
- 9 }: m5 S0 i* q8 A7 v* x( `1 @6 X
- /* or Callback acknowledged, terminate dialog. */- ]& ~8 z! E' A- i/ y/ X7 ^# c
- /* return ( UF_UI_CB_EXIT_DIALOG ); */" g1 F5 b4 \8 i: D5 T# P
6 l# E" g! _1 p5 k, o: w- _2 K: N- }) m, `7 O* K$ p6 k: N
复制代码 |
|