|
|
- int ATT_EDT_CUSTOM_CAL ( int dialog_id,
6 r4 A4 G! N; ^: o - void * client_data,* P3 C% k& b" U7 P+ z* Q- T
- UF_STYLER_item_value_type_p_t callback_data)
* p# M- H0 T: K+ T" O - {( \ \/ ]" \* q+ C3 B
- UF_STYLER_item_value_type_t data;
3 ^7 o1 ]5 d- \$ @ - int stock_class=0;8 }- B& B* A& ~( N* Q9 C5 H; f
- int count=0;
8 ]+ \6 f: j2 T6 \' @ - tag_p_t objects;) n% ^8 V# |: X1 _' K6 Z8 ~) @7 `
-
, R) v% V8 z( l3 I5 u1 t! { - //设置坐标系7 J. D- n0 H& g6 ]& @* w
- double csys_origin[3]={0.0,0.0,0.0};# Q/ S' A' K- } E
- tag_t matrix_id;) @+ J3 K; S0 v& s ]
- tag_t csys_id ;- O D1 d) j6 [# W; ~5 m: x
- int option=15;
1 o) o. b j' l, l8 K - double csys_matrix[9];
& _0 `; A1 z: G/ h: o9 M3 L - char title[40]="定义临时坐标系";7 d9 l" ]- J- h9 w
-
: G$ r0 j' g( d. Y$ b
. K( u7 y7 i+ [0 K3 e: a- //毛坯尺寸
, @3 J4 D/ q+ W! Z - char stock_size[256];' n. }6 s4 {. l$ B2 }( z! i
3 q S2 Z* t5 b$ }- //坐标对齐边界盒
' E0 w& w* P& u% l% p+ C: C' A - logical expand=FALSE; * n: r+ T) U% n
- double min_corner[3]; & h; q/ o8 R7 i" K. @2 T; \, Y
- double directions[3][3];
- n0 T0 N; R% }5 k9 }. I - double distances[3];7 B3 G* x. A2 W, k1 m/ y" g
- 8 J" Q- O' A% T3 u$ T4 `/ P
- //坐标系定义对话框返回值
) s3 |$ B6 ~0 t* U; b - int response;
5 A- A* z1 E2 \* v0 [8 t, J1 a# c) S
' N/ s- q' Y+ j* ^4 z7 w- p
. F+ S( @( l4 Q8 G- n8 t- /* Make sure User Function is available. */
1 l. L) Z1 u) D- h - if ( UF_initialize() != 0)
9 _2 E' o8 B- J- R - return ( UF_UI_CB_CONTINUE_DIALOG );
0 V8 U2 @1 N. Y7 k4 Z( g
$ g( ]. t- W& z9 M! l; _( w- /* ---- Enter your callback code here ----- */
5 A3 E' g; [+ B1 h& {$ G - data.item_attr=UF_STYLER_SELECTION;
! n" L$ f/ a5 o+ [7 Z - data.item_id=UF_STYLER_DIALOG_INDEX;
6 C4 P1 \7 f& |0 Q6 V - UF_STYLER_ask_value(dialog_id,&data); & r9 D2 m4 s% c% ~/ S$ x' z$ j1 \
- UF_UI_ask_sel_object_list(data.value.selection,&count,&objects);& |% E k9 K Z0 L! t
! l* w$ I, Z0 m3 Z: z: R1 e- data.item_attr=UF_STYLER_VALUE;
" r$ t# u7 i; T) ~, } - data.item_id=ATT_EDT_STOCK_CLASS;
4 w4 {1 ]+ a" X; D7 g - UF_STYLER_ask_value(dialog_id,&data);
, E9 q9 X# O; f. U - stock_class=data.value.integer;
) W5 E/ c( Q. G; }& a F' Y - 7 G5 J3 u7 O) O7 e1 I
- uc1630(title,&option,csys_matrix,csys_origin);
" y/ z7 f- x; G9 n" ~/ u* N - $ }, K/ m3 U2 q0 `- E9 W
- //定义坐标系
) `: \2 T/ Z# @$ K - if(0==stock_class)/ j& j" G F( | ?
- {9 W, O& @5 w- t5 x
- uc1601("定义临时坐标系",0);4 a9 C, h7 b6 F! B. i
- response=uc1630(title,&option,csys_matrix,csys_origin);
! t; {( @. l4 j9 Z$ u2 | - }' D, b/ A4 w7 S1 e! j/ l
0 r/ Y" s9 @+ i) s! \: `! A- if(0==count||3!=response)
' {9 @' d1 W2 [- k: r H - {' s. n* V& h4 v# J, p1 Q/ d/ q/ g
- uc1601("请选择实体或定义坐标系",1);' [, a/ M, Z1 G, Q# D: N) G
- }6 S+ z* z: q+ Y8 S
- else if(3==response)
0 N: N- D/ G1 V' p0 ?$ B2 B - {
/ s! y' g' [2 Y! K4 t H: t
1 i5 o# z, a$ X( `' B- UF_CSYS_create_matrix(csys_matrix,&matrix_id);6 S* ?% R6 U5 r/ X1 {
- UF_CSYS_create_csys(csys_origin,matrix_id,&csys_id);
% z0 F4 |* u3 Z* G1 T3 o! [; E - . W. e6 S7 ^* s# G/ @* B1 ?
- UF_MODL_ask_bounding_box_aligned(objects[0],csys_id,expand,min_corner,directions,distances);0 @' U; Y6 o; a' C
- 8 r8 U3 _/ x& t0 z
- stock_size_string(distances,stock_class,stock_size);3 M2 l# v7 G' p- D' m* ?) b2 G
-
J" n9 L# Z9 y- o. G' b9 ^- H - data.item_attr=UF_STYLER_VALUE; ; `: G/ r" @# W
- data.item_id=ATT_EDT_MAT_DIM;
- B" Y0 ?( A% r! G- v3 g/ Z# C" z - data.value.string=stock_size;
& k# x% ]/ K( N/ C3 K+ d0 i8 g4 r - # V: e3 H0 Z2 c, e. N
- UF_STYLER_set_value(dialog_id,&data);
" L( x6 n0 ?% L! @7 k H4 N - UF_OBJ_delete_object(csys_id);
/ r* x& Y4 J. ~& P& H - }3 c9 [* t6 p I' G( d2 {8 S
4 A7 m8 x2 k! F( S5 @: R- UF_terminate ();
* \+ Y. v$ z1 D5 z" d) [6 r+ G" c) |
' Z7 L" Z; u* B2 J, T# W4 n2 S x- /* Callback acknowledged, do not terminate dialog */
0 U4 N9 `3 M/ K, { - return (UF_UI_CB_CONTINUE_DIALOG);
9 M% _& I$ D1 X -
$ n' T. ~- C+ ?" ]3 p1 c5 L7 @ - /* or Callback acknowledged, terminate dialog. */
Y5 B4 J" X. [ - /* return ( UF_UI_CB_EXIT_DIALOG ); */
4 A) W8 V" K; U; b; p3 r4 u. A - $ \4 Q# K. C( @ V
- }; Z9 N* o3 a; b$ P
复制代码 |
|