|
|
- int ATT_EDT_CUSTOM_CAL ( int dialog_id,2 }' B6 k) i: n& n+ s8 |5 E
- void * client_data,
( O' c; g# w6 P4 M4 o - UF_STYLER_item_value_type_p_t callback_data)8 F: H. d4 S( t5 F3 M. b. }
- {$ F6 F8 d& l5 c( w0 f+ e' J
- UF_STYLER_item_value_type_t data;
5 T: u& h3 G$ v- w$ v$ h& a - int stock_class=0;; P q" F9 g& s4 Y
- int count=0;4 w {$ T5 W, v' e
- tag_p_t objects;
& x' K; L; U( f9 p -
, ^, G' C9 S! L( } - //设置坐标系' e( Y' j- r' c* O4 |! \
- double csys_origin[3]={0.0,0.0,0.0};
9 f3 b( i! a9 ? - tag_t matrix_id;& d0 ]* h) x/ g; T9 i Z
- tag_t csys_id ;1 p7 f/ D* v4 u: X: R
- int option=15;2 a$ o$ Z* b' N* E6 r' v9 q
- double csys_matrix[9];
+ l2 ~* V5 i2 ^/ J' i E+ N - char title[40]="定义临时坐标系";
# F J9 G2 x, `% v" l3 K, x -
0 ~( ~7 s6 ]# A- h; ~+ N/ f) z% l
+ |$ G: z0 i" O5 G" n- //毛坯尺寸+ W, H" r. d% M9 [. B* o
- char stock_size[256];9 J3 D7 |5 b! ?0 r
- 3 A! ~% |% v4 l* q4 O* y. W
- //坐标对齐边界盒
3 u8 ^# _+ h4 h: B, I - logical expand=FALSE; ) Q; U( Q+ ?& d) b% ^; K8 f
- double min_corner[3]; C( I: [; E1 y1 H' T+ T1 j
- double directions[3][3];
. y: z5 t8 v: L6 d+ Z, j - double distances[3]; q9 ^/ O9 D7 d: g( p
& V9 l4 m, s1 ?( T9 s9 B$ `- //坐标系定义对话框返回值
' t5 e- ^6 I' k( e- m - int response;" ^+ B- ?# N' i# d7 m% r/ l
6 I, `/ i s) O9 Q1 P$ C
% B- @, x# H. ?, y1 T2 [- /* Make sure User Function is available. */ ! C& U( |& D; X8 o) k+ n0 F
- if ( UF_initialize() != 0)
- q$ D3 Z: R0 z" i - return ( UF_UI_CB_CONTINUE_DIALOG );
# A$ a$ m( T5 a - : W& ?9 l, j# |
- /* ---- Enter your callback code here ----- */* F9 Z. V* k& Q
- data.item_attr=UF_STYLER_SELECTION;
0 I/ }- S/ V4 b - data.item_id=UF_STYLER_DIALOG_INDEX;
$ d) ]+ P" n( T7 f) X& U - UF_STYLER_ask_value(dialog_id,&data); ' Z& ~/ T B4 u3 A) t2 D: R y
- UF_UI_ask_sel_object_list(data.value.selection,&count,&objects);
. v } R3 r& b p* D
0 A/ X2 r5 e; |+ c, P- data.item_attr=UF_STYLER_VALUE;
% x) w; p* t' R: G* E3 l" v8 m - data.item_id=ATT_EDT_STOCK_CLASS;/ [9 h( z% M E5 T- M, z+ M
- UF_STYLER_ask_value(dialog_id,&data);$ F3 e6 b: D0 H
- stock_class=data.value.integer;
' x h7 d0 _; X
) a5 B! ^$ n" g: T" }: @" O- uc1630(title,&option,csys_matrix,csys_origin);4 J7 g V% [4 D4 Y% F _' u3 L
- $ `: @# F7 c: z. E) i
- //定义坐标系
4 P7 S; @7 s7 b, ~# F9 s$ @) s - if(0==stock_class)
" Y0 x( a$ O- C" x* p6 z7 b1 O9 @ - {
, ?/ D( T1 _' r - uc1601("定义临时坐标系",0);
7 C; k S* r$ V+ {) s! X% h; ~" Q6 _ - response=uc1630(title,&option,csys_matrix,csys_origin);/ Z/ {% ]8 J: U9 E2 p7 m
- }8 W" M* l. s9 G+ w/ z, t
: C) E* B6 R- Z g- if(0==count||3!=response)
/ ^9 X$ c4 ^, e+ D: ]. `6 t - {
' ^' w: k. h: @% S2 ~ - uc1601("请选择实体或定义坐标系",1);
) b( t( B$ J X$ H3 w& m) _ - }
H4 _" d1 E0 P0 n0 q& z - else if(3==response)
3 T: R5 c3 R* C! g! I - {6 {2 _8 b% x; i' g$ k/ v
/ G( }9 f, P# T- J% ^- UF_CSYS_create_matrix(csys_matrix,&matrix_id);
4 C) ], z( r" J0 J - UF_CSYS_create_csys(csys_origin,matrix_id,&csys_id);( v% o+ Y7 O. A* j, P& |4 w
- & O) U/ k8 L+ S: _+ G. w
- UF_MODL_ask_bounding_box_aligned(objects[0],csys_id,expand,min_corner,directions,distances);
" B1 n. F v* l - 8 r$ v J. v' C0 B& |6 X5 `
- stock_size_string(distances,stock_class,stock_size);
0 N7 S: I! a: y. U - ! E/ J+ i8 r' w1 y" h t
- data.item_attr=UF_STYLER_VALUE;
4 A7 K# O7 _, U2 C( b - data.item_id=ATT_EDT_MAT_DIM; B/ c- k" k) D
- data.value.string=stock_size; 0 q* I- \& q6 V; J0 N" L
-
4 n( v0 P4 A* t! g! W - UF_STYLER_set_value(dialog_id,&data);, |7 W$ n8 [/ f# m* ^6 B
- UF_OBJ_delete_object(csys_id);
+ M& J2 Q9 W# M0 J - }
' k" T# A/ t- L
2 z' d# |$ _) i8 v8 w) d- UF_terminate ();0 F% P% z e4 u) B, Z
, w, r9 N; T( M: D# Q- /* Callback acknowledged, do not terminate dialog */# o5 O5 A) r0 [6 ~1 r9 j
- return (UF_UI_CB_CONTINUE_DIALOG); 1 ^5 X( X M/ ^: G$ j+ V7 ^) J5 K
-
$ r! C$ m& _" @. f+ Z - /* or Callback acknowledged, terminate dialog. */
. A: t, k" L3 h& w - /* return ( UF_UI_CB_EXIT_DIALOG ); */
) u, M$ I* d( r. j7 H ~) m9 `
; ^; S- a) R( a; [1 V$ N- }
7 |% X1 v# V1 S, R4 {
复制代码 |
|