|
- int ATT_EDT_CUSTOM_CAL ( int dialog_id,
2 h7 d0 B# p- [, u; _7 H% v& x5 s) U# @3 { - void * client_data,7 t1 `) L6 V$ y! y5 j, i( e
- UF_STYLER_item_value_type_p_t callback_data)
: ^1 E5 ] ~/ a. Q' `7 N: ~ - {
) ]2 m' ] W2 j% i* [2 N - UF_STYLER_item_value_type_t data;3 t- q2 {6 ?; _0 ]
- int stock_class=0;
- |3 k8 y* Q& M3 J$ h - int count=0;
; A3 O; Z7 D( a7 c5 f - tag_p_t objects;& l' g' }. T$ j8 a4 ]2 h
- 3 q) l6 Q- e9 U8 @0 I
- //设置坐标系& h( f/ T7 v3 s0 ^4 m8 w: C5 d H
- double csys_origin[3]={0.0,0.0,0.0};6 ?1 p7 Y3 X7 ]0 J( w! L, g
- tag_t matrix_id;
& k# F1 O9 |8 u1 V4 `" U" |$ Z% q - tag_t csys_id ;
3 q! X6 C- S9 G0 e - int option=15;
0 m4 Y% }% k- N+ N% ~1 f) U5 C - double csys_matrix[9];
% F9 `) v g. Q6 [! f6 o - char title[40]="定义临时坐标系";/ z, j2 _9 l. u% B
- 8 S0 [6 Z0 W/ t
- 7 W' d! |" u7 u6 K9 [+ m. g0 R
- //毛坯尺寸
9 C- L6 l8 @3 [8 Z& | - char stock_size[256];
. x! R0 V" h) F1 @
* u4 v: `* H. V- //坐标对齐边界盒
j2 v, h; {5 c6 K3 V' a- S - logical expand=FALSE; 2 q; r0 _& K9 w4 \
- double min_corner[3]; 2 ] V; y2 w' O0 `# N( w8 u1 w% L
- double directions[3][3]; 7 h( g3 L/ X/ t! Y
- double distances[3];
7 G `5 G1 _& G" h# b z - ; I# w4 q; B, n H- K
- //坐标系定义对话框返回值( A6 G* o4 ^8 u1 s7 S Z
- int response;& x0 n: R" c( {+ X
- ; X0 @6 z1 c- r1 K& K" Q
- 6 C* O$ @) N! e! s) ]0 E3 p5 ~
- /* Make sure User Function is available. */ 3 J6 z) x7 \$ `# Z& y# n' b
- if ( UF_initialize() != 0) 1 x% o; X1 m! R( ~
- return ( UF_UI_CB_CONTINUE_DIALOG );7 W( S' f3 C4 }3 H! |1 t8 l. K
7 ?8 i! j) h. K- u- /* ---- Enter your callback code here ----- */. Z1 Z A% b9 h) K, u6 r Z2 y
- data.item_attr=UF_STYLER_SELECTION;
2 \; P& d8 ?: W; A# n1 O6 w - data.item_id=UF_STYLER_DIALOG_INDEX;
( L) i+ m _% Z - UF_STYLER_ask_value(dialog_id,&data); 7 t, k' g" r6 m9 u
- UF_UI_ask_sel_object_list(data.value.selection,&count,&objects);8 U5 y+ K) L4 I
) i% O+ J7 w5 @6 n3 l& G! G- data.item_attr=UF_STYLER_VALUE;2 \+ E+ l% ?$ ~
- data.item_id=ATT_EDT_STOCK_CLASS;7 [+ d7 y$ A6 Y
- UF_STYLER_ask_value(dialog_id,&data);* b& y( m, q/ A& u4 E: s( n
- stock_class=data.value.integer;2 F7 M8 T. t* [, ^
- . j+ Q y% S; `# e% E: O
- uc1630(title,&option,csys_matrix,csys_origin);
/ B5 F- `) ?8 E9 W5 A: t' K
% U# q3 y% h9 }- //定义坐标系
6 Y9 {) c5 `7 G" N* y7 K8 g+ o1 ^ - if(0==stock_class)9 p7 u1 k8 u" Y8 n
- {
, ~$ w, x \* f+ c! Y0 ]' i - uc1601("定义临时坐标系",0);
0 U5 s1 t9 L, W, U+ ]& y - response=uc1630(title,&option,csys_matrix,csys_origin);
( K" V- L, O$ `# Q2 d s - }. ^. b4 C$ x _: P% p: d/ w1 t$ B
h: s& B" s# C6 A) D; ?4 _" }- if(0==count||3!=response)# [2 P* W& v! N" \1 b( }
- {
& P4 S% z- H& \ s' E1 N' o6 h( T* G - uc1601("请选择实体或定义坐标系",1);
& Z% n5 \+ ]7 U+ C, F: t4 V - }
% v6 |7 e) ?# q. W L* T1 G - else if(3==response)5 g- z9 D5 y: f: m( ?+ H9 ?/ Y
- {8 Q- M; a/ Y; x' `7 M: }4 I4 m
- $ h9 h3 Y# z% W- w
- UF_CSYS_create_matrix(csys_matrix,&matrix_id);1 L9 ]1 q# c9 C [' G8 \% U' d. D
- UF_CSYS_create_csys(csys_origin,matrix_id,&csys_id);
' `- V+ {. J# y; f
5 o H q' K0 h- UF_MODL_ask_bounding_box_aligned(objects[0],csys_id,expand,min_corner,directions,distances);
% u% |7 [, E$ y r; G - 2 l; u9 x% m. S g" k
- stock_size_string(distances,stock_class,stock_size); E, ?; C$ u3 n U2 o) h
-
8 T6 V$ G9 r4 A- ?$ X - data.item_attr=UF_STYLER_VALUE;
- L7 L6 E& c0 d, U' d- Y% h - data.item_id=ATT_EDT_MAT_DIM; 6 X0 g, s! z) x9 h
- data.value.string=stock_size; * H) A1 e! n8 p/ k
-
& p4 O1 _1 ]3 t! m* B- S' p - UF_STYLER_set_value(dialog_id,&data);' D' E, P3 l& ?7 a$ N+ e
- UF_OBJ_delete_object(csys_id);
, N) I2 k4 ]) I6 ?; ~ - }' V) `6 ?0 G8 a2 e2 b
- ) B2 V( y0 r$ n) ^; ^7 Q
- UF_terminate ();
; Z# E* i9 p/ Q2 [9 @# T; y
8 ], H6 E4 {) R; H, I% n* I- /* Callback acknowledged, do not terminate dialog */
6 l/ e- K& o, ~1 n/ A2 v - return (UF_UI_CB_CONTINUE_DIALOG); ) S1 g. @ ^' P
- & X4 ]6 j( E. y7 L( q
- /* or Callback acknowledged, terminate dialog. */( H- O+ R3 |- C% V- I. y R8 \0 h- Y
- /* return ( UF_UI_CB_EXIT_DIALOG ); */, u: b& q1 d6 v$ A. F$ Q4 b
' d% W4 M9 g \- f8 w# ~* @0 w- }' o$ m# ~ ^- }7 T! c7 I0 }" a, x
复制代码 |
|