|
|
- int ATT_EDT_CUSTOM_CAL ( int dialog_id,$ |6 Y8 M( z& c! F
- void * client_data,
2 e6 {1 t* x9 H. B" U6 ` - UF_STYLER_item_value_type_p_t callback_data)5 I, d( _5 d n3 r
- {4 r: N; l2 j6 D- t& ~2 h- q2 G1 c
- UF_STYLER_item_value_type_t data;
$ `( C' i* Z! _8 D4 X& V6 o$ F - int stock_class=0;
; S) _7 j. t2 m. q - int count=0;' N7 j2 J( F( j% m
- tag_p_t objects;: D$ Y& u" g, ?. Z4 l
- " T5 C4 V. c$ ^
- //设置坐标系
3 ?6 V f6 L% S2 M" i' ^7 A U - double csys_origin[3]={0.0,0.0,0.0};
( ?) C3 J4 T1 M3 o - tag_t matrix_id;
! Y/ u1 d8 M+ Y$ L6 d: D* F% U - tag_t csys_id ;
' J) _3 ~& F; ~+ {: c x0 G - int option=15;
9 ^, y( n" f" S o ?" S- e - double csys_matrix[9];
3 Q' b6 a- }7 D& Y* S# z7 h - char title[40]="定义临时坐标系";6 d: }8 v$ N" k
-
( E! h6 y9 Q% t, G7 l
; V( {. n" u- `) W) D7 Y- //毛坯尺寸( S" |9 o* E! O: @9 H; \4 V
- char stock_size[256];
! \& Y/ q I4 |8 z) y - & g1 o; }* M- m- O* e
- //坐标对齐边界盒
8 u# ?/ T. q8 K% \6 O& Y - logical expand=FALSE;
4 t8 [' {$ w2 N1 T/ L |. F - double min_corner[3]; 5 m7 w4 Z4 m" m; E4 t
- double directions[3][3]; : ^ r1 i, {8 V" n+ T
- double distances[3];
: a: a/ H8 f0 ~/ R - 0 ~ |1 r3 W Z" Q! f/ W7 ^
- //坐标系定义对话框返回值
& f8 u- l1 X5 U! _/ l# g - int response;
S L$ _3 ~4 o - 8 X a- Y. s& E0 S
- " G: ?, m u; L$ `
- /* Make sure User Function is available. */
: K8 P' a+ q1 h4 I5 B& Z& S! M - if ( UF_initialize() != 0)
9 }+ z4 r* O7 ? - return ( UF_UI_CB_CONTINUE_DIALOG );% n7 g( d6 Q" t) _8 {, Y0 m) d
- 9 S/ c' ^8 M0 ^ _% c/ d* f+ m
- /* ---- Enter your callback code here ----- */
% m3 C6 k* A* E' C& Q: I, t# P - data.item_attr=UF_STYLER_SELECTION; : B4 p4 A" M7 A
- data.item_id=UF_STYLER_DIALOG_INDEX;
* q0 v3 F& }& w: R1 @; f - UF_STYLER_ask_value(dialog_id,&data);
1 f' @! r) w/ d4 X) ]$ o: n/ i - UF_UI_ask_sel_object_list(data.value.selection,&count,&objects);
7 \/ e( h# n. q' b& s& S
+ x x7 s( G/ Z2 h* Z2 h% v5 ]" P- data.item_attr=UF_STYLER_VALUE;
' R0 N9 E2 g8 R8 O) l - data.item_id=ATT_EDT_STOCK_CLASS;
" O( j& C2 ~* M/ _+ |- E, M3 B/ r - UF_STYLER_ask_value(dialog_id,&data);6 T5 ^7 x; t: z$ r. [
- stock_class=data.value.integer;/ S1 o( n; Y& n1 W$ T
0 I4 u/ _6 R3 H' M2 E }; x- uc1630(title,&option,csys_matrix,csys_origin);6 b0 ~ S6 {, C h# N3 U Z
- h0 B$ Q U+ M0 d! x: i* O- //定义坐标系# W6 B; g* b7 |- d& B
- if(0==stock_class)+ T8 P$ z# |7 ?
- {
/ C7 U. B! m h - uc1601("定义临时坐标系",0);
# j9 b$ b, C! d6 g9 s( v5 S( @ - response=uc1630(title,&option,csys_matrix,csys_origin);
) q" `, D& B* V$ o$ d0 V1 A - }: X$ O% N) ^+ x
- ) |% I" n5 e9 |2 p! W
- if(0==count||3!=response)5 e+ n0 b" E z7 E4 a
- {7 M: n9 o: V! I5 B4 r( I
- uc1601("请选择实体或定义坐标系",1);7 n3 d+ g; W: e8 d& `, }' Y
- }
2 X- o! _/ Y) [9 l* W - else if(3==response)
- v& h8 \2 T# l( { - {4 z( \6 p) w0 G1 @- e. q9 F c: W
- $ M) X# Q' v( X3 j5 X* C
- UF_CSYS_create_matrix(csys_matrix,&matrix_id);
* C& \4 A* z. ?, u! Q0 x7 N! k - UF_CSYS_create_csys(csys_origin,matrix_id,&csys_id);
# @7 h& r# L* v" \/ `- ` - / t- K- A8 J# c$ A2 q
- UF_MODL_ask_bounding_box_aligned(objects[0],csys_id,expand,min_corner,directions,distances);
' k* S9 E& ]8 Q8 ]5 y' F - 6 K2 x8 @( Y' I+ Y5 c; e
- stock_size_string(distances,stock_class,stock_size);
. x" T) x$ Z5 z) x -
" ~& m" J6 Z/ z1 X( _ - data.item_attr=UF_STYLER_VALUE; , G% v7 B! q' L' G. c* |
- data.item_id=ATT_EDT_MAT_DIM;
: z1 G, ?1 p( x, a3 ? - data.value.string=stock_size; 7 b1 i, o7 ^5 [5 V7 D
- / t, L- C; F6 K+ }
- UF_STYLER_set_value(dialog_id,&data);
3 q7 V1 P( U1 Q' a1 X1 y: q - UF_OBJ_delete_object(csys_id);
' Q1 Y. y5 o3 m: H) N2 o; y - }
8 F4 m% P7 L, D, a - ' c: _# R8 m7 T( S
- UF_terminate ();9 X* }3 R* q5 d
- ) n, N# L* ?# e6 h; {% v
- /* Callback acknowledged, do not terminate dialog */
6 B2 M, z9 c9 M) z8 M0 _5 ~ - return (UF_UI_CB_CONTINUE_DIALOG);
4 h3 `$ s% ^! a' C -
% {* ~8 X% \: b0 B- s - /* or Callback acknowledged, terminate dialog. */( Q7 C% @1 X9 v
- /* return ( UF_UI_CB_EXIT_DIALOG ); */, O7 w; j% K. b$ s2 w) |2 C$ C
: ?) t8 l- g* w: i9 G5 H$ @# H% {- }
( L9 w7 b6 U* ]- q0 c
复制代码 |
|