|
- int ATT_EDT_CUSTOM_CAL ( int dialog_id,1 J1 m& ?0 w) V8 Z! V2 Y* G
- void * client_data,5 C4 D* E7 V! U2 r3 D/ R
- UF_STYLER_item_value_type_p_t callback_data)5 f% K- J2 I9 s
- {
6 m5 m/ p! v3 [ - UF_STYLER_item_value_type_t data;
/ N& e7 Q2 `( q) \! s% M6 E& n* m - int stock_class=0;8 P- |* w5 V* `5 k6 @
- int count=0;8 j; u3 ]! Z8 I. Q( a% Z
- tag_p_t objects;
3 c# B5 R4 q* L7 r9 h( S -
: G2 Z4 n2 Q k6 V - //设置坐标系
% V- u& _" m$ P2 p5 { - double csys_origin[3]={0.0,0.0,0.0};1 H8 V1 T5 m8 n; L3 T/ x4 \
- tag_t matrix_id;
/ U; }* z" o- D& n! y1 \ - tag_t csys_id ;
6 {9 r* x# n2 a+ E2 b - int option=15;8 T" `. I2 d5 x4 X) I: t& j7 Y9 ^
- double csys_matrix[9];
+ v! r( o! P$ E! B: l - char title[40]="定义临时坐标系";4 E6 K/ ?! [6 h4 \: P
-
7 ]# |9 z1 b9 S& U8 b/ k - $ U7 _9 N5 P* j9 i: |+ f: a
- //毛坯尺寸
1 K# B/ s+ S3 ]" l( l - char stock_size[256];
2 @$ N7 r" u1 y; K - 9 U/ n" k- |- z9 X1 `* n8 g+ R
- //坐标对齐边界盒8 n5 M1 ^& d! A5 G5 }! r. j
- logical expand=FALSE; : J7 ?9 N! S. v
- double min_corner[3];
+ @) ]- {; U8 _ - double directions[3][3];
6 [8 B" b5 c6 n( {& W - double distances[3];
) G8 j3 p) e, b; X
3 c: d! |, s0 w% @* A/ P- //坐标系定义对话框返回值1 B+ J3 N7 I% ~
- int response;# n; m( Q1 s) m1 s( S" P7 Y4 U, Q. P
- ! U( I m- Y0 O9 O$ r X7 I
2 J; M& l" ~: g6 _( w% K& o- /* Make sure User Function is available. */
, S% a" G/ L& B) H - if ( UF_initialize() != 0) $ s& b$ F2 X: V6 P
- return ( UF_UI_CB_CONTINUE_DIALOG );: H5 Q3 Q W) r2 \' ?
. A; d5 o. L& m* \2 @- /* ---- Enter your callback code here ----- */7 C9 L3 z% y( h" y
- data.item_attr=UF_STYLER_SELECTION; 9 B+ i6 B5 G6 X1 P
- data.item_id=UF_STYLER_DIALOG_INDEX; * T) Y. G. _5 ~
- UF_STYLER_ask_value(dialog_id,&data);
' O. p# j! \0 b4 J) x - UF_UI_ask_sel_object_list(data.value.selection,&count,&objects);0 |4 w6 u6 j4 C+ M9 s Z" O
q( B7 E3 k R+ R- data.item_attr=UF_STYLER_VALUE;
8 c( s# i* x8 p& y! H) a - data.item_id=ATT_EDT_STOCK_CLASS;; M; @4 w) \( S$ U b" T
- UF_STYLER_ask_value(dialog_id,&data);
0 O( ~ ?" i) O! I5 F! I5 ? - stock_class=data.value.integer;/ M" v L! A, V& ~) |
- 7 ~9 X' [* `- |5 ^! o# ?$ ~* K
- uc1630(title,&option,csys_matrix,csys_origin);2 q8 M5 Z5 B2 }4 b: _5 |
7 y2 l, ~' t+ @( o3 s4 P( p0 l- //定义坐标系
! w- u2 P( C }+ T x$ v/ B8 b8 p - if(0==stock_class)2 b' ~. x8 C: l9 M9 V# E1 W; {
- {
0 [& ^( x& a. P- M. S3 w& Y - uc1601("定义临时坐标系",0);4 ?4 t' M* n, p
- response=uc1630(title,&option,csys_matrix,csys_origin);9 f8 g( C" X- W' s
- }
7 E( u5 s! C3 a( A$ r! l3 M9 q& ^
- Q! t3 |' [9 |% W- if(0==count||3!=response)
. T4 ~+ S+ g6 e' m0 h# H - {
2 c2 W [- U9 z, `% Y: Z - uc1601("请选择实体或定义坐标系",1);
* u( x. j: n; z, {1 w" r, u - }- v; @. k. m* d5 J" o- K3 | G
- else if(3==response)) ], ^8 V: Q9 ?0 p
- {1 r* C+ j* _, r, ^
- / H. S# G, h* @& ]
- UF_CSYS_create_matrix(csys_matrix,&matrix_id);- l C7 r# M% }' J8 r- F' ~6 [/ P* U
- UF_CSYS_create_csys(csys_origin,matrix_id,&csys_id);
+ D3 d- G6 v! V5 ^ q
& Y# n* b% H4 N7 K9 X3 c- UF_MODL_ask_bounding_box_aligned(objects[0],csys_id,expand,min_corner,directions,distances);
# L* |- z$ P' J2 s" F
+ v4 H" v5 D3 ?2 x! k, F/ F$ e- stock_size_string(distances,stock_class,stock_size);
$ q6 A& L2 `1 P( W3 g' t# ? - B# q% D0 Z) p) J9 F# F
- data.item_attr=UF_STYLER_VALUE;
2 W5 K1 _* m1 H: i9 Z* T& a - data.item_id=ATT_EDT_MAT_DIM; 4 s: V" U; C6 E1 Y3 K# K) D- V
- data.value.string=stock_size;
2 y7 n( o; S5 g' C2 { -
$ O; @& Y2 h2 M - UF_STYLER_set_value(dialog_id,&data);
+ g1 }/ \# Q: f6 W" I$ ~ - UF_OBJ_delete_object(csys_id);6 ^& Z( m$ k) b& \( E: s: o; S
- }
3 s4 ?, x! b, u( f- ? T; K
$ K) `5 U7 p% j7 _- c: n- UF_terminate ();
6 z3 a# W0 @1 A n: w - 4 q4 i3 H2 S5 B; Y
- /* Callback acknowledged, do not terminate dialog */: H7 l5 O% S9 L# k1 G
- return (UF_UI_CB_CONTINUE_DIALOG); + U$ N# w' J5 Y# _) W
-
* Q/ z; h% j" D) i - /* or Callback acknowledged, terminate dialog. */7 Y4 a6 Q+ I" @5 L; v3 ~
- /* return ( UF_UI_CB_EXIT_DIALOG ); */
3 X& X# J6 K1 x, n- u9 h
4 Y5 o' V( R# c- }
9 R$ ]2 q, u6 N8 e0 I) Q
复制代码 |
|