|
|
- int ATT_EDT_CUSTOM_CAL ( int dialog_id,
; C( K0 D8 x8 D( B9 g - void * client_data,
1 @, }6 R5 u! Q4 J - UF_STYLER_item_value_type_p_t callback_data)
* I4 I* l4 \, u+ c - {" o. e% U( l4 ?
- UF_STYLER_item_value_type_t data;
! L/ P0 a$ b1 N - int stock_class=0;- l# @8 |+ d9 k- ^8 T
- int count=0;% ^" V4 J- t! z# E7 j E& N) n
- tag_p_t objects;
* l" R) a# ]; k# Y/ C -
U+ k2 l9 r, c8 \! w" l2 i6 t( m - //设置坐标系5 E0 e/ e# T* W$ c
- double csys_origin[3]={0.0,0.0,0.0};5 W: k |. A) ] ?. O g1 Q
- tag_t matrix_id;5 {1 z* g) s9 l4 @
- tag_t csys_id ;6 ]& J2 F4 ?( ?& P: A- L g- z# Y
- int option=15; f- F7 i, b0 @$ t! I9 T
- double csys_matrix[9];
0 X' |: [, u+ H# ]" o0 q - char title[40]="定义临时坐标系";
( g' M5 G( j" u; j - 0 U' U7 |; k9 Y3 {
- $ N* @ l7 o9 ?* B: `$ m x) U: {' b
- //毛坯尺寸, X! x; u" D2 B# Q, K! R# d
- char stock_size[256];
* `3 M2 n7 u. k2 U - $ I' V2 F0 ?0 S
- //坐标对齐边界盒
2 U- w( Q- V& n0 d6 G4 X% D - logical expand=FALSE;
3 F5 r# p$ ?5 a( V7 }4 j. r - double min_corner[3];
1 c" [9 H- d4 k3 @% j - double directions[3][3]; . [: s0 O7 F# H! n% i; _2 x
- double distances[3];) P) l1 b) m1 q5 k
) |; Z( q8 Z: R" U$ q% U9 e- //坐标系定义对话框返回值
- Q2 J. c X. E3 v. Z - int response;
$ r: a2 n% O% O; N$ l' O
* r" W3 W$ G* S! ?
. @0 x+ f2 ]" k9 B- /* Make sure User Function is available. */
: O+ x. X+ H2 S/ E- b6 w - if ( UF_initialize() != 0)
! ~7 _ b) W0 \ - return ( UF_UI_CB_CONTINUE_DIALOG );
! d" S* V( | u( Y
; f, }$ g G& V V+ X- /* ---- Enter your callback code here ----- */
/ J4 k; I: n5 k. }9 f7 w! | - data.item_attr=UF_STYLER_SELECTION; $ g6 Y7 K; F* [8 D/ X
- data.item_id=UF_STYLER_DIALOG_INDEX; ' X" ?) A. F! \; g/ t* [
- UF_STYLER_ask_value(dialog_id,&data); 0 B. i% S* Z- d0 B/ x& ]' }
- UF_UI_ask_sel_object_list(data.value.selection,&count,&objects);4 k" i' {: T2 _4 d, o8 g
- ! m$ b8 p. p# e
- data.item_attr=UF_STYLER_VALUE;& s+ t/ G4 z6 V+ F% p" U$ J, {& t; ^
- data.item_id=ATT_EDT_STOCK_CLASS;/ F- G! E8 q8 z/ }/ f
- UF_STYLER_ask_value(dialog_id,&data);4 ~/ P5 S: g& M8 `4 [& N3 b
- stock_class=data.value.integer;2 n, d1 K U* F9 K6 a* k% Y7 `! K
- ) L j) v6 k, Y! a- M a3 v: a
- uc1630(title,&option,csys_matrix,csys_origin);1 N" }, X- @, x* g) U+ C, l
, b Z+ i2 D6 ?! g+ M$ x- //定义坐标系
2 I1 @( ?/ ?9 g; V' F0 @ - if(0==stock_class)
8 U' E' e- D% u8 }8 k' a) z* Q3 f' Q - {
h- B% u9 P( Q! r% `7 { - uc1601("定义临时坐标系",0);
; @/ V: B' _& K3 `8 ], P, o p - response=uc1630(title,&option,csys_matrix,csys_origin);
: [6 j# D% x \$ C6 U. L5 \ - }; M( P+ |* z* J7 W, E: [1 q; Q
- ' G! w! }# I- v9 M# P- N; L: K
- if(0==count||3!=response)( P, P3 ~" N9 f/ b! r
- {' E4 M: F1 v8 v. ?' L" Q7 G% m
- uc1601("请选择实体或定义坐标系",1);- h u( P/ M1 k$ M/ F% [+ p8 H* p9 d
- }7 g7 e" e' @8 v z$ p+ W$ t. _" T2 @
- else if(3==response)4 g0 l# Q# M( G2 ?2 k
- {
2 X1 m+ o5 v) X+ k4 D6 Z
" p5 D2 c' L/ [' X# }2 A5 U- UF_CSYS_create_matrix(csys_matrix,&matrix_id);) q V F( ?5 j' h7 K# h
- UF_CSYS_create_csys(csys_origin,matrix_id,&csys_id);
% n" q% {; b) d& J
' r6 G5 L& Y& I) Q) T* o" p3 J- UF_MODL_ask_bounding_box_aligned(objects[0],csys_id,expand,min_corner,directions,distances);9 f- c( }3 P" ]& [- \7 a
- ' I; ]. p: t# T6 v
- stock_size_string(distances,stock_class,stock_size);
; d- D/ w2 B. w- a- S -
! e, R3 ?3 \+ A1 ^2 v - data.item_attr=UF_STYLER_VALUE;
& x; E# c# Y' f7 Z& f - data.item_id=ATT_EDT_MAT_DIM; 3 o8 k5 M( A7 M4 _, R, d
- data.value.string=stock_size; 2 f: V9 p( G# _$ n Z
-
. x5 K, l, l3 R L$ j - UF_STYLER_set_value(dialog_id,&data);
& F8 G+ ` e# [1 _3 ?9 R' x; q' N - UF_OBJ_delete_object(csys_id);7 q4 L$ c/ p4 q4 U) Q$ X2 @9 \+ N1 L
- }$ E x1 c! M* J# v( m
5 W9 G( d' B! c" G5 K( F/ v- UF_terminate ();( {1 m0 G/ l$ M% W7 K$ Q
- + g% j' b G. z6 n9 P
- /* Callback acknowledged, do not terminate dialog */
+ B S9 g* `3 \1 q# G9 [4 A/ w - return (UF_UI_CB_CONTINUE_DIALOG); 4 }- U% i! z7 f! @# y' O
- . y5 m# f x0 K* s2 T6 L0 C% a
- /* or Callback acknowledged, terminate dialog. */' F" i% a. ~. `2 U/ P
- /* return ( UF_UI_CB_EXIT_DIALOG ); */
3 @+ t V' c2 D# S - " }7 ?2 s% l5 O4 R2 f
- }) O* ?+ W: o4 ]/ R
复制代码 |
|