|
|
- int ATT_EDT_CUSTOM_CAL ( int dialog_id,7 v2 S& A* M: _4 x! O% Z( j' ^
- void * client_data,
3 Z2 V2 @3 ^9 ?+ {; j9 K9 A - UF_STYLER_item_value_type_p_t callback_data)- Q1 l# r% n* W3 A: m. w; P7 W
- {1 C1 m2 M1 O5 S) \
- UF_STYLER_item_value_type_t data;
2 c$ Q4 W; Q$ {. H' e4 J" G, Y - int stock_class=0;
6 a; F. s& z! {9 ~0 V8 z% B7 V - int count=0;4 |- W5 j* |. w( k! C1 ?
- tag_p_t objects;) X# {3 s" w! i: n! w7 p2 M" N
-
; ~1 o0 ?& a3 F& D2 K5 Y9 j, \ - //设置坐标系
7 D. M) _* }7 g' r9 [) h7 O8 q: J' M - double csys_origin[3]={0.0,0.0,0.0};/ X) c0 [7 e( Q+ p/ d9 _" f
- tag_t matrix_id;
9 y0 {- N, n: F' l - tag_t csys_id ;
! `" H+ r% b6 d+ N; B7 ?; A8 q& X - int option=15;9 A7 W6 ?5 v/ I+ |4 j
- double csys_matrix[9];
. D" \. j) E5 d# { - char title[40]="定义临时坐标系";
7 F r% Z) Y: M6 h7 i* U- x -
% M p4 Z7 z" Q! Y - , H0 C/ v& X; c; E, O5 F. |- g3 P
- //毛坯尺寸% E5 m3 q! L6 ?3 \) z
- char stock_size[256];
3 ^+ m7 [. B- j) Q; ]# r - % p& X5 W2 j/ i' h& l$ {) w' @
- //坐标对齐边界盒
! T) P5 ^5 ]) J - logical expand=FALSE;
% y- f* z2 C+ P - double min_corner[3]; " y1 ~4 e8 }; E0 G
- double directions[3][3];
M' l3 u3 s+ h5 v I. ~. \4 s- T - double distances[3];" F& ]9 ^/ y7 O* ^6 i- ~9 |
- 7 B2 ^0 j+ J- L d
- //坐标系定义对话框返回值
, ~% X, Y" c. }6 _1 Y - int response;
& m9 U7 N9 H7 B. I3 K2 M R - 3 C5 o0 s o$ U
6 c) K) O. S3 A8 P7 Z7 y- /* Make sure User Function is available. */ - ^% t2 p5 d0 Q/ Z# k. @
- if ( UF_initialize() != 0)
5 \: F0 c% g$ q, s, b7 N5 _ - return ( UF_UI_CB_CONTINUE_DIALOG );; ?+ X; Z+ B& z9 {2 M
- % y/ R) L" ?, V( Z, W1 P- M! | ?
- /* ---- Enter your callback code here ----- */! i2 @' \- {4 n7 w
- data.item_attr=UF_STYLER_SELECTION;
4 \: z; A- ~7 W: p7 N/ p - data.item_id=UF_STYLER_DIALOG_INDEX; & C4 U, F' ~0 w7 e% }- o T
- UF_STYLER_ask_value(dialog_id,&data);
6 u2 w& T# y0 s0 g8 B6 H - UF_UI_ask_sel_object_list(data.value.selection,&count,&objects);2 C! E% v4 p3 T4 H
% |8 J2 d. Q; i" @" \4 Y- data.item_attr=UF_STYLER_VALUE;
$ c& h6 b" b1 e+ V2 P- t - data.item_id=ATT_EDT_STOCK_CLASS;) a0 _: f& F2 g; }. H# |# @
- UF_STYLER_ask_value(dialog_id,&data);7 t7 K. H1 X/ q3 ]/ E
- stock_class=data.value.integer;
3 \; R7 ?3 s. Q/ e3 r - 0 B0 u( R# k5 k# e& G9 A# |9 e
- uc1630(title,&option,csys_matrix,csys_origin);
7 K8 l$ \3 V- l: Z
% t# ~. @& m2 y- j+ y# P. x- //定义坐标系8 L6 H/ q! Z+ q9 D9 U
- if(0==stock_class)# h0 c6 X. V2 m
- { k" r& w6 h7 q+ L k. ]* M v+ b U
- uc1601("定义临时坐标系",0);
* R6 y# k& Y* p% f8 I( `" O6 w, m - response=uc1630(title,&option,csys_matrix,csys_origin);
$ ~/ @$ ~$ d- v2 b/ y% j& S - }
; G7 ?5 D1 U" E7 ^ - ; C! S- h9 X/ y, e# H4 T& L
- if(0==count||3!=response)
5 \$ {3 X: l: {9 P, o5 D4 @ - {
, u+ s( Q6 j% V! p7 E, H% E - uc1601("请选择实体或定义坐标系",1);
- L5 w0 U7 {5 D' p* w - }
2 i1 ]2 G3 P9 E: O - else if(3==response)
- C; w8 w% ?/ J# \& [9 u; U - {; S& ~* {# L! ?$ \' h x
6 p' e( ] x9 Y; @! T- UF_CSYS_create_matrix(csys_matrix,&matrix_id);
$ {3 G9 X" S" I2 e( c$ I4 {7 `, ? - UF_CSYS_create_csys(csys_origin,matrix_id,&csys_id);
# r; K; D4 {, j+ c+ Y - - ]- o4 P) m! ?% T* s
- UF_MODL_ask_bounding_box_aligned(objects[0],csys_id,expand,min_corner,directions,distances);
+ ~0 v' p* Q/ ^% l - ! @# }) l( T* P! ^0 u
- stock_size_string(distances,stock_class,stock_size);# s; S- h" Q0 N9 M$ _
-
* D! \2 P; P% F1 ~ - data.item_attr=UF_STYLER_VALUE;
3 g" d% \! Y4 X+ B. @$ C" s - data.item_id=ATT_EDT_MAT_DIM; : f' D7 W* p4 c6 |
- data.value.string=stock_size; & o. H$ ^ V9 [
- I% P% m- s2 f* N; R
- UF_STYLER_set_value(dialog_id,&data);" J) B! a- p! V! ]
- UF_OBJ_delete_object(csys_id);
+ J5 i" q5 h1 @/ ]/ J# b) d' ` - }7 F p% R- {' C- n
5 d9 B+ l0 z8 o. G1 u S7 w- UF_terminate ();
& q' B" r, L! T3 a. }0 E. a- G+ }
8 w6 H' J7 a$ R- /* Callback acknowledged, do not terminate dialog */
8 u1 j8 f! u$ _' G k G4 `6 L% n - return (UF_UI_CB_CONTINUE_DIALOG);
" b: b, \1 ]! t5 a/ l* w i+ P - ' d8 M, V2 [' B3 b8 n
- /* or Callback acknowledged, terminate dialog. */
0 }, R) e: @ W; a" I - /* return ( UF_UI_CB_EXIT_DIALOG ); */' O# s# @' r. o, J' T
- 8 Z* H: h# |5 p: x) e; c5 L
- }
9 q0 j3 b z" I
复制代码 |
|