|
- int ATT_EDT_CUSTOM_CAL ( int dialog_id,6 Q' P* A5 _8 P, n! `. J6 O$ B
- void * client_data,+ b: a3 R$ ?. C, |
- UF_STYLER_item_value_type_p_t callback_data) `7 m, Q( w* [$ Q) o& \
- {
7 D8 T) P3 b, L" [% C - UF_STYLER_item_value_type_t data;" A9 j. r. o9 R$ x
- int stock_class=0;3 @+ u, [2 Q1 @7 {! ?2 w
- int count=0;
' |1 v* L5 o/ R; G+ C8 s( c5 Z - tag_p_t objects;. O( r5 P: R% m0 [# R
-
) L3 ]1 r. ?. H' @- S! u - //设置坐标系
" T( \5 o; W5 ^. w - double csys_origin[3]={0.0,0.0,0.0};
% T4 q) D" p1 ^ - tag_t matrix_id; G2 }0 C4 `: z# O
- tag_t csys_id ;/ w9 X8 y" @7 w/ U: O2 w6 B
- int option=15;
8 z R+ X2 @% M5 O5 q! I+ w& A5 F - double csys_matrix[9];8 S# h1 M3 a o3 L0 P' Q
- char title[40]="定义临时坐标系";+ c$ ~8 G( ^( m
-
0 R1 G; X* U. j+ s) W9 V, q
( n @% z. Z/ U4 Z. U1 g- //毛坯尺寸) L; Y( V! Y9 y2 a( s
- char stock_size[256];- X3 Q/ f1 G& |
- * t* A9 ?4 J2 x+ w- F8 @
- //坐标对齐边界盒$ K$ k L2 @! J4 R7 r
- logical expand=FALSE;
( ?* R Q/ n1 \4 V3 c - double min_corner[3];
+ n8 ~- W c2 u; M - double directions[3][3];
: H& I# n. `( F6 V. _ - double distances[3];
( X) a. M0 ~$ c& R+ ]
# J0 k: D* V N. P% p' P( z- //坐标系定义对话框返回值2 t& n! S7 t# Y% B3 E
- int response;+ }9 t3 f4 b' c5 A8 ` G) |$ q
- 8 L* |* M, m% E" e
- + `2 N, z) M' E& {' u2 ?
- /* Make sure User Function is available. */
6 a0 E/ V% P J* J2 u - if ( UF_initialize() != 0)
# m" O/ ]9 ~' m; b8 C% a, ] - return ( UF_UI_CB_CONTINUE_DIALOG );
; \, P& R/ X. k7 u
& a/ Q5 O3 i1 N- /* ---- Enter your callback code here ----- */
2 ~3 [* C" d1 m1 }. b# R - data.item_attr=UF_STYLER_SELECTION;
% Z7 X, B5 {9 f$ o: z% v' x - data.item_id=UF_STYLER_DIALOG_INDEX; / k/ P; K2 Z9 [ s) @* M
- UF_STYLER_ask_value(dialog_id,&data);
7 Z! K+ l+ R+ o0 V, S9 `4 ~3 } - UF_UI_ask_sel_object_list(data.value.selection,&count,&objects);) A% ^8 K& a! Y; X$ T, ?
- 6 `, p4 T8 H7 `
- data.item_attr=UF_STYLER_VALUE;
* y6 \& p5 H6 e - data.item_id=ATT_EDT_STOCK_CLASS;) e( A0 ^( H ^7 E* ~3 I
- UF_STYLER_ask_value(dialog_id,&data);
; \6 A) W! e! E: U" C - stock_class=data.value.integer;
: i0 O; M& t- ~2 h
5 S9 c/ P5 j& @- uc1630(title,&option,csys_matrix,csys_origin);
; P, M" }4 p+ x& Y7 }; x1 B4 w
$ D+ z' ?5 G" V I1 u- //定义坐标系) q Y5 l0 u" e6 u
- if(0==stock_class)
% }1 n; u( W! Z# ~9 A' r9 ^& _ - {6 y$ ?, f- S8 D' f
- uc1601("定义临时坐标系",0);
6 {7 D m5 g% D4 w - response=uc1630(title,&option,csys_matrix,csys_origin);
+ \0 d2 l- o: \ - }
0 Y6 l! `( m! j- x/ B4 K - # ~( o9 W9 ^2 e- D8 R2 G: L
- if(0==count||3!=response)4 j8 V2 b+ T& o3 J$ K
- {# c) y0 K) j$ C+ {# B+ }
- uc1601("请选择实体或定义坐标系",1);
6 m% J. H+ Q- ^# j+ ^ Y+ N1 F - }8 H3 p/ Q+ s8 h( t7 [; \( }3 b; G
- else if(3==response)- J: z; x( m6 M! W
- {8 _4 }6 J+ Z) q! y& p9 C8 D
- % K7 D& \+ M4 n- ~: ~3 K
- UF_CSYS_create_matrix(csys_matrix,&matrix_id);* _& r& n% \! }9 `- R3 g- ?
- UF_CSYS_create_csys(csys_origin,matrix_id,&csys_id);) t/ S \" X# s- ?$ J; [& X, C+ r d
0 @5 V9 } |) `2 A- UF_MODL_ask_bounding_box_aligned(objects[0],csys_id,expand,min_corner,directions,distances);
_8 n' C0 w; s! q+ g - 4 _$ d+ z& v- y$ ?% Q" ^- L
- stock_size_string(distances,stock_class,stock_size);
* @( R E1 x' B: m -
/ |8 |/ y0 A% M& ~' p$ ^ - data.item_attr=UF_STYLER_VALUE; 4 |$ c% s( J) }
- data.item_id=ATT_EDT_MAT_DIM; / ~5 |0 _# o* v \' {/ u+ t3 g
- data.value.string=stock_size;
8 F* x8 b2 X) {7 P D -
b. G1 j2 [* F - UF_STYLER_set_value(dialog_id,&data);5 M% D5 ]( w! Y( T
- UF_OBJ_delete_object(csys_id);
% r5 U# f# N( J" r& a, g9 X3 D- y+ f - }
P7 k( C7 F7 O. y( P - 6 f/ V' ^) k0 K r) P
- UF_terminate ();
7 q5 z% P: E" F
9 q3 g. r- W% Y* u, s8 z- /* Callback acknowledged, do not terminate dialog */
7 _: K, T9 a) K - return (UF_UI_CB_CONTINUE_DIALOG);
- T9 S+ U4 c. y# Y# | - % B# }7 S0 ]+ ?6 V% v4 J/ x
- /* or Callback acknowledged, terminate dialog. */) O2 k5 R+ f7 `) t
- /* return ( UF_UI_CB_EXIT_DIALOG ); */0 ?% P7 H) p4 J" ~: y
3 R9 Y* o3 J) R( n3 S+ p' W- }6 a4 S0 x! A! N% X% A* u: O
复制代码 |
|