|
- int ATT_EDT_CUSTOM_CAL ( int dialog_id,
% Y/ ~: D- o3 g2 U+ G$ j - void * client_data,
2 I2 v" J+ L, E' r! R( B: u - UF_STYLER_item_value_type_p_t callback_data)4 G1 e- z. V: F0 q
- {
" h4 b7 |9 a& F& w, c) N5 { - UF_STYLER_item_value_type_t data;& M. v1 B2 Y& d% j
- int stock_class=0;# S6 D- m0 M6 g2 x! B
- int count=0;
3 L+ ~& P; A, S: P9 Q* ^ - tag_p_t objects;
5 R, g- D4 \& z. B( ] - . t4 r) x& V7 c6 E) s" r9 w$ E
- //设置坐标系
i; `3 `/ F) m# X0 b% y - double csys_origin[3]={0.0,0.0,0.0};
- L" a9 K) f* _' y - tag_t matrix_id;
$ P8 X# v7 i, J1 l- n( p0 a - tag_t csys_id ;4 v( J3 a$ X, m' P6 D! c
- int option=15;
3 e. H6 G# a! Y0 i" T - double csys_matrix[9];
3 _4 V! q% o6 }; } - char title[40]="定义临时坐标系";
: u7 ]5 g9 i. Q8 C - 6 Z" r7 h+ Z, |: m j o, ]
- % X* \$ D& {8 d6 P# \
- //毛坯尺寸
; p' T3 v! i" \# O( x2 E& N8 Q - char stock_size[256];( {; O2 k1 b0 Z$ `1 U
8 X8 q7 @1 n4 r- //坐标对齐边界盒" O k4 y6 K5 Q8 X" X% X& \" {
- logical expand=FALSE; - d) \" s: _ M8 u8 C) c
- double min_corner[3];
" u P+ g1 W6 c) g- [2 Q - double directions[3][3]; * H5 E2 ^- f3 D2 f: n
- double distances[3];
" v& O) s, P# y6 t, I0 G1 d/ R
4 p/ q" f1 z Q5 [1 Q! N- //坐标系定义对话框返回值6 _0 S) y' Z$ `7 h' g1 t8 m
- int response;, @/ M8 X1 t4 s& Q6 O, W, |# _' j9 h2 n
- 1 r2 s/ ]" z2 M
3 [/ ?. [8 r. e* w- /* Make sure User Function is available. */ - ?- l" y; I+ k! t# `6 L+ _/ H
- if ( UF_initialize() != 0) % {' c; ^* T: u5 T7 ^( N
- return ( UF_UI_CB_CONTINUE_DIALOG );
% V* o) f' i# H* x. P7 _. T
' I' f' A6 |2 Y: t6 m( ^* U- /* ---- Enter your callback code here ----- */
/ z) H y& _# V( a7 L: N# z1 q - data.item_attr=UF_STYLER_SELECTION;
* o+ |' @ G2 z8 V8 [ - data.item_id=UF_STYLER_DIALOG_INDEX; " E/ A1 k3 M, L; F+ R
- UF_STYLER_ask_value(dialog_id,&data);
- C8 V# e; Y# G+ Q0 z( k - UF_UI_ask_sel_object_list(data.value.selection,&count,&objects);6 R5 c' J2 N/ N' E7 X" ]
- / l, t' k8 f0 q" d! @
- data.item_attr=UF_STYLER_VALUE;" x7 }3 Y, {$ E' R0 H; |( o
- data.item_id=ATT_EDT_STOCK_CLASS;
# B4 D* J7 \$ y n4 s, o - UF_STYLER_ask_value(dialog_id,&data);
+ q& U& ^8 Z7 J/ g9 |7 ?4 [ - stock_class=data.value.integer;5 s+ r, L+ x$ \ x
3 _2 s2 @% h6 m! k3 i1 c- uc1630(title,&option,csys_matrix,csys_origin);1 `% q$ O: n! j' Q( U
- ) h* B$ d+ Y; Y6 m4 @
- //定义坐标系6 l5 {: X, A6 ^! d
- if(0==stock_class)
0 d: Y8 K2 J4 B - {
! Y9 Q4 ~' }# G7 O# V5 a. a - uc1601("定义临时坐标系",0);" } q. g& U2 m7 T. W
- response=uc1630(title,&option,csys_matrix,csys_origin);
$ i* }, Q" u z- S! g3 j - }6 @9 A& x( Q7 W, p$ M
5 x% x4 M9 d( F* J Y+ c: l2 H- if(0==count||3!=response)
3 @7 ~% d; V7 S7 P0 f( Q0 |2 w! a- g - {6 P; E; o; U6 g, Z) Q6 ?& n) z( @
- uc1601("请选择实体或定义坐标系",1);
( @6 B( G- e8 _% H, z - }
% X: c* Z; j2 h6 V, I1 } i - else if(3==response)
. h8 ^3 G( F# f( {. E; o$ \ - {
. u1 d; Z0 g+ L) m2 y. k
7 E1 @3 Z$ E+ M" q. d& v- UF_CSYS_create_matrix(csys_matrix,&matrix_id);$ A. L- p" T2 J
- UF_CSYS_create_csys(csys_origin,matrix_id,&csys_id);$ m6 l$ c9 P1 N2 }( B
. n/ K. f2 h5 y" H! U0 f5 }5 s- UF_MODL_ask_bounding_box_aligned(objects[0],csys_id,expand,min_corner,directions,distances);2 M! W& }- h" G# A
# Q1 U: w3 X5 H6 R/ ?/ y- stock_size_string(distances,stock_class,stock_size);6 V1 o, L+ H3 X5 G6 K% X, Z+ v9 n: b
-
) c2 s, x& X7 h% O& D! P - data.item_attr=UF_STYLER_VALUE;
" P8 u' L& K0 }( l1 I - data.item_id=ATT_EDT_MAT_DIM; / @* |" R) h! v) M2 U
- data.value.string=stock_size;
; N$ S3 l9 g5 q$ B$ i5 X- q - - o( i5 Q( y0 _- A f) X
- UF_STYLER_set_value(dialog_id,&data);" D3 x% F1 n+ M- z
- UF_OBJ_delete_object(csys_id);
/ F- b; w8 Z% |2 D - }1 [0 |2 F3 B7 ^8 L J7 M
1 d$ @, a5 U# _" w! h5 o1 V r5 C- UF_terminate ();
. d. m/ s$ G m& ^8 ^- d - , h& d9 o r7 y5 o9 }; \# [8 H
- /* Callback acknowledged, do not terminate dialog */
) I: q5 [4 a8 P- J - return (UF_UI_CB_CONTINUE_DIALOG); ~' S0 [* u6 q( c, ~+ X
-
& h- H6 q' t) y3 C$ W - /* or Callback acknowledged, terminate dialog. */& _4 Q+ h n$ K& J A
- /* return ( UF_UI_CB_EXIT_DIALOG ); */" S4 i2 x+ @# I: k0 b: ~- m
- $ V* @& k6 z) ~ ]7 x; V) j
- }
9 I8 ]" M( K% K* o5 z; z# ]
复制代码 |
|