|
- int ATT_EDT_CUSTOM_CAL ( int dialog_id,7 U) T& E" X3 z
- void * client_data,
# y( V, z+ f) }4 a5 J' {2 N! L - UF_STYLER_item_value_type_p_t callback_data)) `7 u. b! a9 b) L
- {2 [- u2 ]7 G& P9 k0 D! {
- UF_STYLER_item_value_type_t data;) [9 g# {( o* R; G; {
- int stock_class=0;/ V# N A. U# H/ |5 g5 l8 P
- int count=0;
. C+ p6 K9 @' b - tag_p_t objects;' ?% T' Q+ r6 z: q
- ! x9 p* D' P" T' g! l" D M$ _, t. c
- //设置坐标系1 C" Y T& h' e. K* p. h+ J3 u3 M
- double csys_origin[3]={0.0,0.0,0.0};' V* d6 J8 ?0 {4 ~6 k+ R
- tag_t matrix_id;
5 l' V- d# k/ G- X+ W2 i - tag_t csys_id ;* ^+ g+ l) T0 _7 i" S1 U' [
- int option=15;
* l3 ^3 O+ U1 f$ _8 Y* o" _2 Q - double csys_matrix[9];
' F# k/ H8 b" f - char title[40]="定义临时坐标系";; `/ @6 J% {) t( q; C
-
$ n' w2 R( Z1 I- P$ i7 Y - 9 |8 H4 B/ w; a( Z
- //毛坯尺寸3 J3 t0 T' Q6 x0 l' R4 q
- char stock_size[256];
6 P; t, I7 ]. d1 J& G - " _2 ]* h7 Y2 A
- //坐标对齐边界盒
) K1 J! m6 Z" X+ j$ \ - logical expand=FALSE;
2 C* s. q3 L. j2 ]/ j0 R - double min_corner[3];
8 P" i/ e4 Q1 g$ S - double directions[3][3];
; Q, G e, K: x2 X C - double distances[3];
# P3 Y" {& _. o$ K2 f5 I - 9 N1 e/ _( M" _% P
- //坐标系定义对话框返回值
" B4 O2 _) i+ w) l& M - int response;
4 H- d: v8 Y# `& k. P1 M! }' y - 5 J, O& Q( Z* H8 R
V9 t& C+ g& | s$ |0 g( V) x- /* Make sure User Function is available. */
6 j' U5 B7 s9 {% p - if ( UF_initialize() != 0) + A# k# B6 y- }$ R" i: N
- return ( UF_UI_CB_CONTINUE_DIALOG );8 _- |+ G7 A& U ]5 f; }8 H. A
- ) g' d( Z0 C4 i7 e
- /* ---- Enter your callback code here ----- */5 C; D; ^2 m$ x' \5 L! y
- data.item_attr=UF_STYLER_SELECTION;
8 u3 w4 G- t8 ?- ~- O& Y( ` - data.item_id=UF_STYLER_DIALOG_INDEX; . }) d* _! D6 a& w* _+ Y# D
- UF_STYLER_ask_value(dialog_id,&data); 8 K1 B9 u+ c- J1 U2 y
- UF_UI_ask_sel_object_list(data.value.selection,&count,&objects);
' t+ {4 r/ D2 f* B' X' V- B3 Q) Z. ~ - - D6 v h+ T& ~1 ^
- data.item_attr=UF_STYLER_VALUE;2 b) d: S; S9 O2 v# k
- data.item_id=ATT_EDT_STOCK_CLASS;
) S! W6 o# C. q1 m* d - UF_STYLER_ask_value(dialog_id,&data);
' i N5 G6 a0 @0 B. E. Y7 N( L - stock_class=data.value.integer; Y4 Z; W+ V5 \, n6 Y# {* ?- u
- 4 l( K1 b' r, a$ D' n: e
- uc1630(title,&option,csys_matrix,csys_origin);% S* K$ }9 f5 Z) c+ R# F
- " T1 t* G0 C) }2 L( u% I7 a7 t- W
- //定义坐标系
" Z% Z3 e3 ?1 {' `$ Z) k - if(0==stock_class)! v4 ?* O0 d* f4 ~' `
- {
6 S/ G8 A6 Q! m - uc1601("定义临时坐标系",0);
_2 y, s' y O7 K1 [ - response=uc1630(title,&option,csys_matrix,csys_origin);* H0 t% U* E; q. m; y
- }
. L _% k3 M4 H8 E! v d - 8 u- s" s$ `. q* I6 f* I3 G
- if(0==count||3!=response)) k: ]6 V2 r1 X: ~1 D
- {
0 y; Z# o" r3 C* W- y8 D - uc1601("请选择实体或定义坐标系",1);
( p+ b2 l8 X0 U. B1 B3 } V. e - }; z# e3 ~# K' V
- else if(3==response)9 s u! {- Q4 `
- {5 [( F7 k# w& @
5 i4 D! E7 T# p; G4 x4 }- UF_CSYS_create_matrix(csys_matrix,&matrix_id);* H) n' m& u4 j- W- {
- UF_CSYS_create_csys(csys_origin,matrix_id,&csys_id);7 n) z. x, @1 c: s' A! y
- 7 t h: R; ?2 O+ O# J4 f
- UF_MODL_ask_bounding_box_aligned(objects[0],csys_id,expand,min_corner,directions,distances);
/ S( T9 V7 Y" R: @8 X) ?) r y6 r8 y( u - % o) r, K2 s. s+ t
- stock_size_string(distances,stock_class,stock_size);
x8 {1 I, U L3 \' D$ F - / O0 g' c$ |! a) c, F
- data.item_attr=UF_STYLER_VALUE;
/ S7 u3 e: R& V+ A - data.item_id=ATT_EDT_MAT_DIM;
3 t' f0 K: V. m8 C8 E - data.value.string=stock_size;
& {$ ?% B! q2 Y* s% W C; H2 @$ W2 f - 5 @& _9 ?( Q* c2 U& }& _: {
- UF_STYLER_set_value(dialog_id,&data);& D1 P+ n; Y+ \6 m2 W% `: D, Y* O
- UF_OBJ_delete_object(csys_id);( J! O3 S1 O4 e, s4 X" m: P' b
- }# t. C- V" j* x% Z6 H
z8 I9 a5 `* p" v% ^- UF_terminate ();% N l6 Y( t; d( ^" h0 n' b7 y `( ?
2 A, X [& N% f U4 W- V- /* Callback acknowledged, do not terminate dialog */
; @) g9 Y4 N, \5 O- x; \ - return (UF_UI_CB_CONTINUE_DIALOG); % V$ p( p" V8 P3 m
- 5 |3 c- T3 r4 W: X( I
- /* or Callback acknowledged, terminate dialog. */6 Y E0 E" ~: i! l( i- G
- /* return ( UF_UI_CB_EXIT_DIALOG ); */
8 W4 q& S1 Z8 r1 H+ w3 g
7 j8 f5 v) ^% [! [8 b, X7 T- }
1 p8 e! O8 C9 {6 a6 o" y& U
复制代码 |
|