|
|
楼主 |
发表于 2015-5-6 17:35:40
|
显示全部楼层
- int ATT_EDT_CUSTOM_CAL ( int dialog_id,
" v9 }! n* f) Y( o7 [9 R - void * client_data,2 R, c W4 q4 M4 ~- k/ X
- UF_STYLER_item_value_type_p_t callback_data)
1 p4 w* {! O7 C4 R& S - {
( y$ E5 J/ J' ]' h% r - UF_STYLER_item_value_type_t data;( K" _$ }# x8 ]
- int stock_class=0;
3 d& B3 m" [& x% T* v4 _ - int count=0;' q( K' M2 Q0 T' n
- tag_p_t objects;
3 g' U* g& L+ v - . M" l& n2 Q" D" A6 x; T) @. s
- //设置坐标系
4 |$ h* m3 D$ V; b - double csys_origin[3]={0.0,0.0,0.0};
/ H# P7 E& w8 m T3 i' E& b - tag_t matrix_id;# {, \, v7 e/ k
- tag_t csys_id ;
% q2 t( T6 @' S+ G' h/ r6 |( k - int option=15; }* R' e; |& r7 | g1 v
- double csys_matrix[9];
2 `% E) Q$ ?" G @ - char title[40]="定义临时坐标系";
8 ]( R, y( D2 y* Y - " c8 S" l& ^6 n+ c& W. L
- - n% B/ [) y8 u/ U- H
- //毛坯尺寸. k! d" F$ \ ^. o4 I, o5 L, Z
- char stock_size[256];
, r7 @! n! @) O# D* ? - / A& m: o: ?' [" {
- //坐标对齐边界盒
& W9 _0 N, @; ?5 m; { - logical expand=FALSE;
2 w, E+ g. W5 X- j g - double min_corner[3]; ( W6 w& |; Q g+ ~- m
- double directions[3][3]; 0 h5 K5 @; k2 U8 p B
- double distances[3];5 W. n. u4 f, k# B: X! S
3 A2 x1 s" [5 H& y, Y4 v- //坐标系定义对话框返回值) `7 b! | w3 y' F- b/ p
- int response;. j$ P. d7 q2 u1 g0 u* w' I$ j) e
- 2 T/ T% d: H6 |& h v
- $ |& a0 r3 i# k' P
- /* Make sure User Function is available. */
! Z P2 Q* K" I* T! h7 G, b - if ( UF_initialize() != 0) , g$ c% ^' ^$ o* x$ g+ Q: k" ]
- return ( UF_UI_CB_CONTINUE_DIALOG );4 E) p, P8 c9 ?& ~* L
m: V( b# G8 i, [* g) L- /* ---- Enter your callback code here ----- */
( @1 j( C" A, a# c, c6 W9 p - data.item_attr=UF_STYLER_SELECTION; " a% J w, O# h# h( c4 |) N: z
- data.item_id=UF_STYLER_DIALOG_INDEX;
I7 ^. M1 {0 q+ S* o" h - UF_STYLER_ask_value(dialog_id,&data); ! S. y% I8 I) n2 [* \( R9 ?: _6 N
- UF_UI_ask_sel_object_list(data.value.selection,&count,&objects);( ?/ R. Q% L+ \* ?
- ; j7 v1 b) [+ h/ g( ^( ?9 A/ S& a
- data.item_attr=UF_STYLER_VALUE;
" {! T, r* j; w% J( R: C - data.item_id=ATT_EDT_STOCK_CLASS;0 V0 T; S6 I; s
- UF_STYLER_ask_value(dialog_id,&data);' S2 P4 J" \0 ~1 h( _. L/ p9 i; C
- stock_class=data.value.integer;
" N" y4 J6 P% U `( ?* B
- I5 C- {: c% `" F1 `. l- uc1630(title,&option,csys_matrix,csys_origin);
6 V) b+ b: ^# ^/ } - ' ]" n5 r. v" V7 S, V
- //定义坐标系' y5 H. v( h/ Q3 v/ k
- if(0==stock_class)
5 O0 v; H# i6 h, t. B# J - {3 I6 j: U3 E, Q. G- B: X' l
- uc1601("定义临时坐标系",0);
1 w8 M4 i. z( t5 s( O% Q, ] - response=uc1630(title,&option,csys_matrix,csys_origin);' p5 s0 q# h& Y4 O/ D! M6 Z
- }
8 s: a: v: s) ?( n# B$ I1 t - ) A$ `$ N) |3 j! x5 W2 U
- if(0==count||3!=response)
8 b- @: ?( ?: v# e& \. t - {! ~" Q5 R/ T, f% P; P
- uc1601("请选择实体或定义坐标系",1);
8 ]" C( ?5 r( m3 w6 k+ @1 ?! ` - }
+ o7 o3 }' L$ x, _ - else if(3==response)
! y& u* U/ C5 W6 }; w - {- y- Y, u+ i" H4 X3 S; i7 ]; v# W1 c2 {
- 4 G. {! a* x5 }) |# c4 U; o# t: Q
- UF_CSYS_create_matrix(csys_matrix,&matrix_id);
+ ?' p4 n' d- U: D - UF_CSYS_create_csys(csys_origin,matrix_id,&csys_id);
" D8 a# f/ P" X/ e& M* d - ( l% l; J7 n% u7 E/ d9 C0 T- L
- UF_MODL_ask_bounding_box_aligned(objects[0],csys_id,expand,min_corner,directions,distances);3 {! f( M- n5 u
( f; C5 U( R# C6 Y2 r- stock_size_string(distances,stock_class,stock_size);! z+ u8 }: @( h7 C* H" D C8 k
-
, n6 ~# w% f2 x) w - data.item_attr=UF_STYLER_VALUE;
2 h z' E$ a" B: H' K - data.item_id=ATT_EDT_MAT_DIM;
. e& @! n- A$ q - data.value.string=stock_size;
4 l3 }* W4 G0 W -
. G$ ~2 R; z ? - UF_STYLER_set_value(dialog_id,&data);' `" K+ P% C) H7 Y' C( b, g. L
- UF_OBJ_delete_object(csys_id); w9 @. r4 z: T8 T' @; Y6 a, C9 R4 E8 t
- }
# X) d+ d( n& L4 w3 R7 r5 n [( E
$ _! N, o& Z7 P6 ]9 Z- UF_terminate ();
& ^1 G+ `- K4 p7 w. w - 6 C0 I: C5 a O3 [) ?
- /* Callback acknowledged, do not terminate dialog */
" T( T; a8 m$ S - return (UF_UI_CB_CONTINUE_DIALOG);
3 B! B) ]' q, T6 g4 ]; q9 @1 a -
0 y9 ~; C+ l: R8 M3 w5 K# M+ `$ s - /* or Callback acknowledged, terminate dialog. */
: c- e$ H9 j* r6 u0 n' A - /* return ( UF_UI_CB_EXIT_DIALOG ); *// Z+ M! u. \7 ]0 c
- : R, b8 F `4 r
- }
5 t+ P) U. |/ j; R0 c2 W' |
复制代码 |
|