|
|
- int ATT_EDT_CUSTOM_CAL ( int dialog_id,/ r5 R8 N& g1 G5 w2 l2 \4 w Q
- void * client_data,
0 H2 \- s% b: [. M& {+ c, b - UF_STYLER_item_value_type_p_t callback_data)
1 F! K/ u9 h7 F0 d0 i - {4 ]- L) S6 j$ t6 y( d
- UF_STYLER_item_value_type_t data;9 k' u* b# V* E3 p! h- y8 P
- int stock_class=0;
. A1 H) P5 M! m( y0 D1 ]; R - int count=0;
( i r; r4 r( ?, @( g* j - tag_p_t objects;
) c' |# y% F+ z7 W7 B% T -
/ t, D- l! W- {6 p - //设置坐标系8 l8 X: x, e+ w0 J) [
- double csys_origin[3]={0.0,0.0,0.0};5 x8 r( x# E0 ]6 u6 u, _0 |# t
- tag_t matrix_id;
) u6 M5 p* x0 S$ e3 U - tag_t csys_id ;9 n2 x" h" |! D+ G7 W) A8 ~$ @0 d
- int option=15;
- ]2 N7 @) B3 Y8 F0 t/ P9 y - double csys_matrix[9];& r2 D- R- x, R
- char title[40]="定义临时坐标系";' _0 ~) t( V# d) D# J
- 3 o0 R3 r6 ]5 x. i0 j7 t& n
- 5 F( F6 M' C) f
- //毛坯尺寸/ D/ Q) ?7 {! M7 d1 [3 M& o% w- F x
- char stock_size[256];+ i' W' w% q# n- c S
- 0 u/ b! J0 z) R4 `+ e
- //坐标对齐边界盒
+ Y- ?$ J+ E& m2 q4 O - logical expand=FALSE; ! A7 u- b" [$ G, r7 y
- double min_corner[3]; 2 W5 [0 ]" H4 C
- double directions[3][3]; " c% U- u5 t8 ]0 m( }8 b1 s
- double distances[3];4 g3 e4 f' {! m$ ]& u
- . k8 r5 i! b2 k1 z, @
- //坐标系定义对话框返回值* h" x: S0 R4 G R+ O% J
- int response;' c, Y7 X4 _; L( I; g
% |& s; v, t0 m h0 H
; B! ^ M/ i' i5 z! ?: }- /* Make sure User Function is available. */ 8 o$ a2 u b ?, t* r) V! r
- if ( UF_initialize() != 0)
; r3 ~6 O7 l* m D7 g3 t - return ( UF_UI_CB_CONTINUE_DIALOG );
* v) U2 j2 {) i2 I7 t( O) I4 h - * |% j% Z9 N8 c V$ w* C
- /* ---- Enter your callback code here ----- */
) I5 ?/ H w7 e* @* z! z3 g I - data.item_attr=UF_STYLER_SELECTION; j4 d, I: D4 @- a3 {" B
- data.item_id=UF_STYLER_DIALOG_INDEX; $ s, T( H3 ~' }% d! c% W
- UF_STYLER_ask_value(dialog_id,&data); 0 y- H8 T/ g; P
- UF_UI_ask_sel_object_list(data.value.selection,&count,&objects);
0 S- M2 k9 A3 U9 o" K: T5 O+ U - ; n' Z$ b; H; Y6 k8 e
- data.item_attr=UF_STYLER_VALUE;
6 ]8 D9 w" Y0 @# D: S) [ - data.item_id=ATT_EDT_STOCK_CLASS;
1 Q2 x5 @5 h7 r' G7 ]6 o0 R - UF_STYLER_ask_value(dialog_id,&data);
1 D+ k9 }4 A6 i0 V - stock_class=data.value.integer; B. U* }- A& B3 x
. f: D- y) X1 X! j. B6 ~! @9 \- z; n- uc1630(title,&option,csys_matrix,csys_origin);
. n3 @5 i0 E5 C: d5 a& a1 n - * G) d( t2 U( U4 @! H: Y
- //定义坐标系" C$ E- J9 ^. S: B
- if(0==stock_class)
' p; C" L( [8 p% u - {
: S6 O* X3 i3 @ - uc1601("定义临时坐标系",0);/ I. T. v9 z# n- U. V
- response=uc1630(title,&option,csys_matrix,csys_origin);
+ t" @; g9 {* C' U! u+ c0 T6 M - }: w2 W/ D/ R' m( ^9 | Q1 x1 M
1 S. ?/ A" R# q$ F- if(0==count||3!=response)8 |- n. f9 [- M y& y% z
- {
/ g3 Y+ A# h, H# X9 d - uc1601("请选择实体或定义坐标系",1);
! r' r. N+ m% H; v2 l" Y! S - }
3 c" P1 @& y3 n5 A% v7 A - else if(3==response)8 t- M3 Y$ _/ W- N
- {2 _' ~( A2 z/ P+ _2 \( Q( O: P: t
H* y0 u! G4 Z# S1 }- UF_CSYS_create_matrix(csys_matrix,&matrix_id);# \/ q8 `2 e' ~6 p+ e! S5 |( d
- UF_CSYS_create_csys(csys_origin,matrix_id,&csys_id);6 m4 p* V8 D+ m5 s
- # q* Z5 d- Q) g9 L; F# }
- UF_MODL_ask_bounding_box_aligned(objects[0],csys_id,expand,min_corner,directions,distances); Y# M5 P& W4 ^9 i
- l+ k2 U8 i2 m( V
- stock_size_string(distances,stock_class,stock_size);1 I7 k7 I6 B# f' f5 Z! D$ k- v9 N
- 1 X& c! J, n5 Q% K. E
- data.item_attr=UF_STYLER_VALUE; 8 o% ?% l. E- u W( w$ x
- data.item_id=ATT_EDT_MAT_DIM;
5 Z2 s2 n2 m/ v' {) W& ^6 R2 V - data.value.string=stock_size;
9 V% n( x& @& E+ t - ! S4 P2 F7 c8 \7 Q: o" H& G% ]4 x
- UF_STYLER_set_value(dialog_id,&data);
6 J. z3 [' I U3 r - UF_OBJ_delete_object(csys_id);2 w5 O* }) J. j( v$ E
- }
5 l6 h0 K; L- R! H
4 g9 A; j- c0 h# g" y- _- UF_terminate ();
, j2 G0 ?, }( \8 J6 N- [
+ J$ _& T1 S- \0 G- /* Callback acknowledged, do not terminate dialog */* S" s5 }8 u5 Y7 T& D6 `' H
- return (UF_UI_CB_CONTINUE_DIALOG);
( j$ Y/ `# w H& _7 T5 A7 w0 \ - 2 b3 E3 v+ S5 a5 g! i
- /* or Callback acknowledged, terminate dialog. */+ p0 K8 v+ l( i2 @% b* k
- /* return ( UF_UI_CB_EXIT_DIALOG ); */$ m! p; s$ O6 x* b# }4 e/ }" \
9 u8 G1 a4 b) c( w9 v# `# M- }) U S& x x: f/ v& \: y
复制代码 |
|