|
- int ATT_EDT_CUSTOM_CAL ( int dialog_id,
$ B1 E: S! t, Y& E# y; R - void * client_data,
9 C% U, k( Y( c - UF_STYLER_item_value_type_p_t callback_data)) s: w, {7 G8 o- I
- {: Q9 V4 N/ |% M! I% O) z/ J. L
- UF_STYLER_item_value_type_t data;
" J1 `9 n* ~- O9 ~- T2 F2 S - int stock_class=0;
; T* b; _! c6 c0 C - int count=0;& {' y" r2 V5 W! U E
- tag_p_t objects;, d, w6 o: z8 x& b, ~/ S
- 3 I5 t: ]* x3 i% @- X& {& G- z
- //设置坐标系
! f, w# Y) {9 |5 i/ `& A" ] - double csys_origin[3]={0.0,0.0,0.0};( |9 D3 H* N d* ?: v) { t
- tag_t matrix_id;
- S7 P* p1 {: l: M0 d3 G' L - tag_t csys_id ;
9 ^; \3 B4 A" G8 Z - int option=15;
9 a3 D' S2 X0 i - double csys_matrix[9];
: z o1 e5 [2 W - char title[40]="定义临时坐标系";5 U. Z. R) ~: Y2 S) t# R( H* W
- ! Q6 L1 g4 q# ]+ ]( p4 g
- $ i0 T/ _* F' Q& c2 y8 K* Q
- //毛坯尺寸
" v! b# k0 r* R9 H - char stock_size[256];! B- X1 t* w5 R0 K+ T& f
3 t. o. n7 T3 t/ e2 \5 \' k- //坐标对齐边界盒
# h7 I# U/ T( J2 D l) g. D" t - logical expand=FALSE; ( m) R5 p! d: i: V& s' X" [
- double min_corner[3];
- ?9 J1 Y7 K5 T; V - double directions[3][3];
/ }* L) Y9 y$ u- b5 Z - double distances[3];5 V: {( \+ T, \. j. u( l5 p
- " ?: z8 \! _' x3 _' o8 d# s7 G
- //坐标系定义对话框返回值7 o8 E+ k/ c/ m7 P
- int response;: Z& n3 V/ k" W# |9 x
- 2 e+ L+ e3 z1 @# L
. I& i/ N! [& {& ?- /* Make sure User Function is available. */ & v0 q. t! q. D) x8 Y% K& o
- if ( UF_initialize() != 0) 1 o: p2 h( Z$ c: N1 T
- return ( UF_UI_CB_CONTINUE_DIALOG ); C) A. y. I+ S: s
- 9 G8 u6 f* {0 z8 U* v. X. g
- /* ---- Enter your callback code here ----- */ G; ?2 g" O d; Q' B" P4 z5 f% c
- data.item_attr=UF_STYLER_SELECTION;
" o3 b/ b9 A) X+ |" I - data.item_id=UF_STYLER_DIALOG_INDEX; ' A6 ?/ \5 E& n2 {
- UF_STYLER_ask_value(dialog_id,&data); 0 W8 x5 |0 R- d E
- UF_UI_ask_sel_object_list(data.value.selection,&count,&objects);; m9 {; ?1 u, F& P. n2 I
- - I% z( @6 _2 m' a2 `
- data.item_attr=UF_STYLER_VALUE;
9 L Z& j& i9 z - data.item_id=ATT_EDT_STOCK_CLASS;
$ U. z; Y4 Y3 h - UF_STYLER_ask_value(dialog_id,&data);
g; ^. N2 c' i# x3 W: X - stock_class=data.value.integer;
- b; Z0 U0 J! W3 f( m
- O" H5 W" k$ m4 E* G- uc1630(title,&option,csys_matrix,csys_origin);; w4 |# G; u. E, r$ v8 L2 ?
, m* P4 I$ }* p4 |- G- //定义坐标系) F* ?. {* d# R% c) E+ [
- if(0==stock_class)
& R q$ P0 l) P6 Z, I: F - {
/ Q, s* c, [- }6 K7 F0 i - uc1601("定义临时坐标系",0);
+ y8 i; R4 h( L( v - response=uc1630(title,&option,csys_matrix,csys_origin);3 V% ]* U0 W6 n( u$ }
- }
T7 |: t2 ?2 _0 V' L& Q3 G - ( m) r2 k8 ~3 U; h% \
- if(0==count||3!=response)" ^- B6 Z. y+ t) R
- {( b/ n9 {' _+ f6 Z5 t
- uc1601("请选择实体或定义坐标系",1);
3 a$ t7 v* \ f( t, g - }
! k& g! t, T& _) X* G7 T1 ` - else if(3==response)
4 r8 K) a O7 |; l6 V/ _ J9 ?& i - {
1 t0 p1 i( S/ Q& t& u* G* Q/ g
$ s& ?- N2 c) e/ @7 t5 J c- UF_CSYS_create_matrix(csys_matrix,&matrix_id);! l' H6 H3 z! g- U% i
- UF_CSYS_create_csys(csys_origin,matrix_id,&csys_id);( }! c" h: u! l6 M( P, H
- 6 X. t- V! Q& z0 I. [0 u3 Y
- UF_MODL_ask_bounding_box_aligned(objects[0],csys_id,expand,min_corner,directions,distances);+ t9 h Y; Y5 e/ H5 J
- R- N& {4 l8 o& u3 z- stock_size_string(distances,stock_class,stock_size);8 v! ?: o, h( M0 Q/ H# g& u
-
" E5 K2 l: {* l; l+ l: Z5 h h - data.item_attr=UF_STYLER_VALUE; , f9 I% V1 Z9 H* z
- data.item_id=ATT_EDT_MAT_DIM; 3 e0 W$ Q# G4 @0 V
- data.value.string=stock_size; e; y' B% |- \) r6 z) x* g& P
- 1 t3 R* i% Z- N) [9 r4 d
- UF_STYLER_set_value(dialog_id,&data);
0 O" c1 K" Y% Y! F# A - UF_OBJ_delete_object(csys_id);
, X& I7 P/ f M& b' u! @ - }" I1 m% C$ O# g9 Z/ w. @
- - K' k, g. y1 ]4 y$ c
- UF_terminate (); M) } m) N; J x4 H5 _ x( c
- , V# _( M" h) G. Y" Z2 t# q
- /* Callback acknowledged, do not terminate dialog */
$ k" z& k1 O' x$ |5 r - return (UF_UI_CB_CONTINUE_DIALOG);
+ D2 x4 M/ z( [# L4 }! p1 y - & c6 c. @ Q7 ]6 T2 m
- /* or Callback acknowledged, terminate dialog. */9 e* o ?, y1 Z
- /* return ( UF_UI_CB_EXIT_DIALOG ); */5 ~! i; h% ?4 t: p- p8 j
# t( f& X$ W5 V- w- }
4 f& B( y3 h) T' m* A" t! g1 E9 }
复制代码 |
|