|
|
- int ATT_EDT_CUSTOM_CAL ( int dialog_id,; D9 U& K2 B# S8 m/ M8 n" K" \) } l
- void * client_data,5 r$ q& q' q& {' f, q6 _
- UF_STYLER_item_value_type_p_t callback_data)6 l4 a4 C- q/ U( |4 l
- {% F9 h% Y5 d3 L- n8 G) e
- UF_STYLER_item_value_type_t data;
. x; c1 [6 \; r5 y7 h - int stock_class=0;& f2 p% M B# t ?% G* T. N& u
- int count=0;% P, W6 ~5 K3 n5 `( s% P9 o
- tag_p_t objects;& q8 y; G2 S+ P) T) k( I
- ! ^# k; |) b0 y) e4 l8 t; g$ P) V
- //设置坐标系
! i* s% x4 v: S: g - double csys_origin[3]={0.0,0.0,0.0};% H0 g- h* a/ M" m4 x p
- tag_t matrix_id;
a0 x' }1 v; S" X8 [% `* ~ - tag_t csys_id ;2 {. }- E. Y6 _
- int option=15;
5 j# V$ w0 D5 j ]0 [1 N1 C - double csys_matrix[9];
+ P# _9 W N' ]' I. _% U - char title[40]="定义临时坐标系";2 [( l( k( F; P, A
-
6 [( [7 a1 A6 C1 `; ]
y* I d2 t6 p& s8 j- //毛坯尺寸
u% D; d4 U1 m- H6 Y" e9 e - char stock_size[256];
& W% v3 c! G+ m: F5 W8 Q$ i
3 o( B$ Y* K w+ y1 j3 |- //坐标对齐边界盒4 W1 K/ X' z3 I3 G
- logical expand=FALSE; , k& y. j( K. Y! I* N& ~" ^
- double min_corner[3]; 9 N) C$ N/ K- r
- double directions[3][3]; 9 @7 l6 o/ q6 I' y" |0 b
- double distances[3];
- R9 ~$ e; ~: e6 b
+ z! N' N" r" b- //坐标系定义对话框返回值# f; O. X! }" v& `) b# W$ c+ `/ D
- int response;
/ q) c' Q, u" p: V# H1 H7 a0 J - 5 F, |* w6 ]$ |! n* k
- + R# m, ?3 c3 R# X. B4 d
- /* Make sure User Function is available. */
& o# c& [3 w4 t2 J# {: f6 R - if ( UF_initialize() != 0) ' i/ g! ] S# O4 K$ F+ T
- return ( UF_UI_CB_CONTINUE_DIALOG );
; M0 |) D) y) o& [2 v% Y - 0 F& L; a# Q; ` n
- /* ---- Enter your callback code here ----- */$ l; n+ q( S5 f8 x
- data.item_attr=UF_STYLER_SELECTION;
) s5 W/ [+ g, K - data.item_id=UF_STYLER_DIALOG_INDEX; & f) F+ e) h7 g" f( d+ n/ x
- UF_STYLER_ask_value(dialog_id,&data);
- m* X$ D" e* ~ - UF_UI_ask_sel_object_list(data.value.selection,&count,&objects);. I/ _: m7 Q* [4 Y: y8 y
5 M" `7 f/ @" x5 \5 t0 i; J. T2 ~; l; L: O- data.item_attr=UF_STYLER_VALUE;
) k6 N5 U7 Q3 \. W( J( k - data.item_id=ATT_EDT_STOCK_CLASS;
4 i6 e: J* R) g W1 f; w; _ - UF_STYLER_ask_value(dialog_id,&data);# h' L; w N3 a1 J2 K5 e
- stock_class=data.value.integer;
# ?. W3 b; P4 N8 V% D% @8 I1 P( d+ B
( B* k& s" _% Y. |, N0 h7 A- uc1630(title,&option,csys_matrix,csys_origin);
( l5 t6 l+ m$ z - 8 T% M" p# x- z8 d! _) b
- //定义坐标系4 W& n& Y( Y* ~/ Z
- if(0==stock_class)7 C3 v1 s) b3 N. C# B6 m
- {, I L3 m, R [7 H0 m& z
- uc1601("定义临时坐标系",0);
- @+ T; ^& d! d8 u( D - response=uc1630(title,&option,csys_matrix,csys_origin);
* s* U% W. v' ~' [6 P - }
5 a: E# d6 x8 [ M - # }6 N) s' Z2 s k
- if(0==count||3!=response)
, D) ]! a) K3 ? M. a* J G - {
2 _! B* U1 H4 K9 f* I/ X# f - uc1601("请选择实体或定义坐标系",1);
& s ]* X9 L; Y( v( [ - }
5 {7 g; W" s$ i* x6 o) }0 Y6 @ - else if(3==response)* |% j5 q' r7 F) T% R% m
- {& z% X' ~, \0 E' q: l1 Q/ D
- . d0 c- p! m) p
- UF_CSYS_create_matrix(csys_matrix,&matrix_id);; d; j9 c* ^9 z, ~; N! j
- UF_CSYS_create_csys(csys_origin,matrix_id,&csys_id);
' R1 d s$ k. N3 q2 h
" K0 E4 D3 @) a' A# }- UF_MODL_ask_bounding_box_aligned(objects[0],csys_id,expand,min_corner,directions,distances);
. y5 ^8 f; T+ C9 ?. N - 1 o9 H8 Z$ Z" h H: k: \
- stock_size_string(distances,stock_class,stock_size);6 _' h( n1 _* f( {+ z9 N
- , v1 y: W/ c! X0 x6 L1 u. o
- data.item_attr=UF_STYLER_VALUE; 0 i* F; J$ Z& G8 W( j1 k
- data.item_id=ATT_EDT_MAT_DIM;
/ v* Z% O- r8 T - data.value.string=stock_size;
1 @7 r% f6 X9 G& O! C0 l0 r# B - 4 i; `. m+ s8 f5 a6 [
- UF_STYLER_set_value(dialog_id,&data);
9 a9 k& g6 Z- O( S - UF_OBJ_delete_object(csys_id);
E# J7 N+ ~- S/ a - }
* @$ c# l! |/ ^5 d
. c" Y$ Y$ ^. S# A& o* U d- UF_terminate ();
. }9 P& e, Y: I
3 B$ r& K* b* i6 m, }1 m- /* Callback acknowledged, do not terminate dialog */
) o9 ]6 E% l H' b - return (UF_UI_CB_CONTINUE_DIALOG);
) w. l) c+ `% e -
1 M& b& N/ J8 V8 N; Q - /* or Callback acknowledged, terminate dialog. */
% X( C, a+ q, j4 n O1 t5 t2 f - /* return ( UF_UI_CB_EXIT_DIALOG ); */
5 t% y9 H$ L' G% P3 H% Z& M
0 ]( L; r. ~" V% O% d- }- t$ M" e1 o( m# F* t- Q" r
复制代码 |
|