|
|
- int ATT_EDT_CUSTOM_CAL ( int dialog_id,
G: R7 P J$ K) A - void * client_data,) D% Y. { m7 ^3 C' H# Q4 ^
- UF_STYLER_item_value_type_p_t callback_data)
8 i8 G5 F3 g5 s+ B' [; a - {
. @; [( `+ I' H - UF_STYLER_item_value_type_t data;
: i7 y; P2 J; Z2 R: p - int stock_class=0;. a j a9 X' J, }+ Z8 P. r
- int count=0;
# _: z. T5 m7 |7 G - tag_p_t objects;
% [! ~1 W/ j" f2 K/ x0 w3 V - ) f1 P) V! `8 _2 O
- //设置坐标系
3 D$ u7 O1 f0 X" a+ M6 g* J - double csys_origin[3]={0.0,0.0,0.0};
q; o1 ^& O. L* R - tag_t matrix_id;
# k. s u4 C" Q L - tag_t csys_id ;; }# C1 I( q }" Y A$ S- {
- int option=15;5 `1 h/ N! h: K( }3 e
- double csys_matrix[9];
0 O: i% C# L( O4 } - char title[40]="定义临时坐标系";2 ?( \0 h3 M# K
-
- P- l, i8 `* T - 8 m8 b* H) v: B% J! t9 ~
- //毛坯尺寸
$ f- \1 W W2 o, q$ S) _4 p - char stock_size[256];8 c9 v; d0 {; ~
- , J$ q3 w, \$ {3 M6 V4 Z4 d
- //坐标对齐边界盒
8 \9 C( t4 I1 v" i9 X - logical expand=FALSE;
8 T6 a0 o& M2 [6 t3 G7 _ - double min_corner[3];
3 @2 N" u; x! T( ^2 w D- ^ - double directions[3][3]; 6 Y0 H1 N: Q1 c; Q
- double distances[3];
2 S9 z1 l( g' I7 M/ I" _
: ?- e. L' u/ f# | r- //坐标系定义对话框返回值. E) U- g i, `" Y6 W
- int response;
0 o; N/ {" Z7 M. j# h% F, a* {" w+ y/ H' V
/ n. I; O% M7 {- u- : o9 C' J! Q! t; e2 T3 s7 h$ K
- /* Make sure User Function is available. */
* v8 x% v3 G/ {2 I - if ( UF_initialize() != 0) ; U2 ?+ T7 B |6 v3 U
- return ( UF_UI_CB_CONTINUE_DIALOG ); `" M+ e9 n) y, J' J% [
9 G, |! M3 k4 w3 G" N3 N1 R1 w/ N# F- /* ---- Enter your callback code here ----- */+ B' T4 `, W3 a
- data.item_attr=UF_STYLER_SELECTION;
% X# K% n! A! s/ E6 g0 O - data.item_id=UF_STYLER_DIALOG_INDEX;
2 e: f% w3 y9 e- ~0 P - UF_STYLER_ask_value(dialog_id,&data); " O/ W+ T1 Y4 `; D
- UF_UI_ask_sel_object_list(data.value.selection,&count,&objects);2 T; ~% }- X2 f4 ]
7 A9 x+ G2 K& C, q+ a$ l3 M- data.item_attr=UF_STYLER_VALUE;0 Z |: R5 Q/ P! k) |, L. V( r
- data.item_id=ATT_EDT_STOCK_CLASS;
; w( A- R* b. {9 ]( E1 h( k* q, ~ - UF_STYLER_ask_value(dialog_id,&data);: _3 m! v U/ _4 E
- stock_class=data.value.integer;
7 a! r2 L1 T% g2 ~+ j) B2 D# c4 [ - " s, v/ t% M4 |# I
- uc1630(title,&option,csys_matrix,csys_origin);' N" L4 J: H' {. i, W0 J1 e
- + w. d6 s# z7 B9 c& ^; S7 ~6 `$ \
- //定义坐标系
9 ^, {' H* Z3 r4 l) J, \, \9 o9 U - if(0==stock_class)
5 C0 Q; z; N7 _8 M - {% k4 b: ~2 t. c# P. k. [/ B( M0 i
- uc1601("定义临时坐标系",0);' J5 W- L2 N! h# z
- response=uc1630(title,&option,csys_matrix,csys_origin);; f1 B7 l& O+ K( Q/ |! Z) U# \9 j0 |& j
- }
: ?* G- Q! N. H) Z+ F/ b& [: V - 9 T1 s: s! V1 u% @. t- A2 [9 J
- if(0==count||3!=response)1 s8 m7 t* ]1 n3 w) z# w! }. X2 J2 T
- {
" R/ D# j" W" z3 C. s- F/ N - uc1601("请选择实体或定义坐标系",1);
1 \. ?; _- D& B - }/ e; m9 c% M5 f. o+ |4 h2 b
- else if(3==response)
, U! a9 C' K9 \ |& f1 } - {. g; ] N" y: j) ]6 W
- % `- K# l) o, m3 \
- UF_CSYS_create_matrix(csys_matrix,&matrix_id);8 q0 p/ W1 s7 n) @" ]
- UF_CSYS_create_csys(csys_origin,matrix_id,&csys_id);
- Z ]" E' q& q - 4 {+ D8 X( c( E
- UF_MODL_ask_bounding_box_aligned(objects[0],csys_id,expand,min_corner,directions,distances);! n( f3 _& q( ? l1 X7 X
- $ i6 d: I& m; D' @5 V4 l
- stock_size_string(distances,stock_class,stock_size);
& y3 D8 q+ V& M! \9 q1 x5 V - ) f* Q( O1 _7 Q% T3 o# B
- data.item_attr=UF_STYLER_VALUE; 5 ]$ D) e' w# m+ D( A) t. a7 F
- data.item_id=ATT_EDT_MAT_DIM; 9 b" V( U' ~: o! n& J6 e
- data.value.string=stock_size;
/ B& \' X1 I+ N- | -
4 q& U5 Q: ~2 X* G# B, @1 R( Q$ k% | - UF_STYLER_set_value(dialog_id,&data);
0 i9 W {. |( E u" F - UF_OBJ_delete_object(csys_id);% m2 H& ^- x, P- f
- }
$ _- B' _5 Z1 k
- ^ W, m8 w; r9 W* Y- UF_terminate ();
* @( t( U1 s. |/ [, {8 w( `4 R5 X* F - , Z$ }4 ~3 e C' A
- /* Callback acknowledged, do not terminate dialog */
0 j2 E: ]. a: _9 Z - return (UF_UI_CB_CONTINUE_DIALOG); + U8 e9 l# M( o0 b
- 1 T& t8 C) Q1 x8 U& W5 Q2 b& a8 l" y9 i/ n
- /* or Callback acknowledged, terminate dialog. */
5 h. k: ~$ g# P. k- A - /* return ( UF_UI_CB_EXIT_DIALOG ); */6 I4 ^6 v& O$ h" S7 C
- 1 v7 u4 T0 s( W8 `
- }/ a) w8 D$ H g1 H/ e% o1 ^/ m
复制代码 |
|