|
|
- int ATT_EDT_CUSTOM_CAL ( int dialog_id,
8 J* ^- j. h9 O4 t. P+ Z% C - void * client_data,1 }! V; h0 x! i V9 r3 C
- UF_STYLER_item_value_type_p_t callback_data)
! d8 F) s. G8 C - {
; ?2 [ D9 C% m - UF_STYLER_item_value_type_t data;
, R5 m s7 A: b - int stock_class=0;
+ a: c9 o- x6 o - int count=0;
8 Q9 w+ o( S) V: ~9 L: ] - tag_p_t objects;; l+ p; n- q* f
-
8 F. Y4 g2 l: i1 o3 _; L6 D - //设置坐标系
; l3 v& J( e! C: B' M. Q - double csys_origin[3]={0.0,0.0,0.0};# d3 S) k+ z: A" S: A6 E
- tag_t matrix_id;
/ h R4 U. A0 w6 A% ?# O; W/ I/ N - tag_t csys_id ;
# I0 w6 j" {* Q/ E. ^" ^- N4 J }" e - int option=15;
- _% P/ A; E( d8 }+ U - double csys_matrix[9];
9 Z k8 Z: l7 r& b% U1 D/ l0 B - char title[40]="定义临时坐标系";) j9 P4 B) N! E! ~: Q! m
-
7 @% @7 q: L! q8 P8 N; P - / |: h" ~( Q: R) f, W* g
- //毛坯尺寸8 k4 m. h i$ K6 a& e @9 z
- char stock_size[256];' |* i7 h6 q- q! H6 O$ M/ U7 P6 m
( F4 B6 I( T) B- //坐标对齐边界盒
1 D& D" P0 D6 A, G6 O: x' m2 s. ` - logical expand=FALSE; 8 e$ U" N( Y% `
- double min_corner[3];
2 Q6 O8 W( {; a1 L2 \ - double directions[3][3];
+ u0 t$ n2 D% M# U* L& d4 a - double distances[3];
, w- G+ i4 S! F - 4 x9 ?, L/ U0 V: `
- //坐标系定义对话框返回值, m! A4 Y8 t" ]/ f$ K# e
- int response;. h' B! ` g4 d# q+ o
; S2 S; ~1 q) [/ S: V3 Z- " J* P, l' n4 N% V E
- /* Make sure User Function is available. */ ) ]0 u. p, v4 O) t/ L" O
- if ( UF_initialize() != 0)
' u" n% c) m, ]0 x1 d - return ( UF_UI_CB_CONTINUE_DIALOG );; r0 [, E: I I4 C$ G; y* E$ ~
- ' H) } w, M' q6 I3 b9 W
- /* ---- Enter your callback code here ----- */6 L( q2 K& R: E0 c
- data.item_attr=UF_STYLER_SELECTION; . i. X7 \9 v9 H
- data.item_id=UF_STYLER_DIALOG_INDEX;
. ^5 B; {4 b0 ?# K - UF_STYLER_ask_value(dialog_id,&data); ) O2 G3 R. H! h% e% X9 J
- UF_UI_ask_sel_object_list(data.value.selection,&count,&objects);5 s, N! y: f4 R' n2 z& Z
- 0 K Z/ p) f- t3 F
- data.item_attr=UF_STYLER_VALUE;( C$ [" u% d0 I) S; N8 \1 x2 e% V
- data.item_id=ATT_EDT_STOCK_CLASS;, D) k; {! d3 x+ }+ q
- UF_STYLER_ask_value(dialog_id,&data);; m+ V+ c2 X0 ~9 J( S
- stock_class=data.value.integer;: c' M3 c* e Z- | ~
[* x a( q1 _) E) ^3 q4 c- uc1630(title,&option,csys_matrix,csys_origin);
& {+ @4 N0 E2 Z3 _) |& f. n! a
/ q3 j# {5 w/ o0 |' R9 i- //定义坐标系- O* L8 Q! y2 u: u
- if(0==stock_class)
: ]( G& c9 H& g- m+ C - {
8 C3 f: D" T2 L. A" I - uc1601("定义临时坐标系",0);& U6 q) z9 i0 ^: X1 Q5 l
- response=uc1630(title,&option,csys_matrix,csys_origin);
: S4 L7 _# n4 C, d6 Q M - }, F K# H- `0 s9 Q# x1 A
- * U2 S$ S% p" J8 g: X3 d
- if(0==count||3!=response)
' O/ O+ t/ A- O - {( n$ I$ K1 o% ?& c1 q
- uc1601("请选择实体或定义坐标系",1);
: ~6 i8 d% p1 O# L - }& U; _/ d* X& A0 H+ q
- else if(3==response)
! { ~" b" C2 o ~ - {% }0 ?. ]( W% B# M4 K0 U4 t
- # T l+ G0 O3 j( s4 }7 ~
- UF_CSYS_create_matrix(csys_matrix,&matrix_id);( }9 D; W+ ^& C- A2 S
- UF_CSYS_create_csys(csys_origin,matrix_id,&csys_id);) W7 `* r4 A$ U* n* _0 E2 v0 d
- . x$ V5 a3 v+ U
- UF_MODL_ask_bounding_box_aligned(objects[0],csys_id,expand,min_corner,directions,distances);
' H; s& Q' a- M( y2 Y) u5 N - ) d5 c" r3 V6 G0 M" f1 Q N$ x5 N
- stock_size_string(distances,stock_class,stock_size);
- S3 r. m. E) ?8 K9 G -
! G) F5 G3 G" v: E8 z - data.item_attr=UF_STYLER_VALUE; ( B1 N, f' c$ W. d7 R6 O0 R9 I0 l. T: m
- data.item_id=ATT_EDT_MAT_DIM;
4 e! W! [3 \9 Y7 H" r - data.value.string=stock_size;
0 @8 [1 Q- e. o+ s( \5 r& Z - 7 K: W% d( g; k0 S
- UF_STYLER_set_value(dialog_id,&data);( X6 X Y' w7 n3 B
- UF_OBJ_delete_object(csys_id);
- d8 e8 S9 ]) x* V% O4 F0 K - }
5 q( E Z% H7 N8 F- _ P: N- { Y
" w8 {+ j1 y# D! w6 i" w9 U- UF_terminate ();
& C4 h$ k$ U* Q b- H - ' i5 O1 `% u, a* Y4 m" s! K
- /* Callback acknowledged, do not terminate dialog */
@% f6 f% t* O, g& w# _9 p - return (UF_UI_CB_CONTINUE_DIALOG); : j- P/ l/ \/ n6 m2 `
- , v' j4 O4 C0 x
- /* or Callback acknowledged, terminate dialog. */+ I! j2 _. |! e
- /* return ( UF_UI_CB_EXIT_DIALOG ); */7 S, d* O: D1 i1 M+ ?: n; {
1 b2 c& m0 I$ s7 H, p: A9 F- }
& `5 N' n. }' z; I6 y: ^
复制代码 |
|