|
- int ATT_EDT_CUSTOM_CAL ( int dialog_id,- E. l2 s4 _ p8 G; r( m1 [( n1 V+ I
- void * client_data,
( W4 q* _ \9 ~0 v& C6 f! z1 @) c - UF_STYLER_item_value_type_p_t callback_data)
& C7 Z! h0 F% h8 c7 \ - {
) V. z7 l8 s! @7 ?) v8 a. o - UF_STYLER_item_value_type_t data;
, a1 c3 j3 k" w$ a4 x - int stock_class=0;
- Q ]* `8 J. Z7 F) D! ~ - int count=0;7 S/ }/ }/ v8 Y) o0 T9 K5 s( c! ^
- tag_p_t objects;) r9 p' a5 k( g5 x6 i+ Z" H& L% e) Y
-
# g$ p& I) z9 W0 X4 q - //设置坐标系' a! g/ G! K+ T2 \7 K1 }2 j
- double csys_origin[3]={0.0,0.0,0.0};
* p, \) R# C3 V - tag_t matrix_id;6 e1 b/ c1 C* j; y
- tag_t csys_id ;
/ I9 W. A: ^' l0 ]' O1 \0 ? ~ - int option=15;
% n$ W9 ]# C' ~* T, l - double csys_matrix[9];2 B" a# @0 d$ r- q
- char title[40]="定义临时坐标系";& _/ u" X6 k0 H6 j
-
# ^6 n' W& d7 [6 G
$ t, I/ n& ~$ @; r- //毛坯尺寸
' x7 Q/ l. t; w3 L - char stock_size[256];
# {5 ]1 S& q, [9 I- p
$ W$ b2 f* x; T6 |+ i+ x- //坐标对齐边界盒
* Z" S2 B) X! F) m# g& `5 d - logical expand=FALSE;
- L, k" T/ y- r. `% F - double min_corner[3];
5 n/ z1 k: w6 F A& [) U - double directions[3][3];
3 X5 [ _$ n! @+ \( f1 C3 T( e - double distances[3];: d5 `0 f) O: K0 |1 S
- , r1 q) q8 T* P$ D6 x, i
- //坐标系定义对话框返回值$ n p. t6 Q' g2 z
- int response;, ]$ K/ F+ e7 r- k, N' n/ A6 {
- B0 T1 B! J* g1 b4 ?8 E/ w
* k9 E w* J& |' }7 p; f- /* Make sure User Function is available. */ : z3 m: T; T% a+ o7 F
- if ( UF_initialize() != 0)
7 w- T! N9 i2 P - return ( UF_UI_CB_CONTINUE_DIALOG );6 e1 F" m9 T& A q5 S$ P& ^# }
: F6 ~. _ z. P) ?9 q% S) C- /* ---- Enter your callback code here ----- */
, m4 o# B7 y5 A! n - data.item_attr=UF_STYLER_SELECTION;
; J4 }9 A8 _. |/ q - data.item_id=UF_STYLER_DIALOG_INDEX; $ ~: J- }* p- \4 h6 R N5 k- A
- UF_STYLER_ask_value(dialog_id,&data); + ?' W9 h- k8 V
- UF_UI_ask_sel_object_list(data.value.selection,&count,&objects);
2 e1 D4 S) k9 w/ N6 }
* O- x/ w: I0 m9 y9 _7 o: l6 u- data.item_attr=UF_STYLER_VALUE;
1 D n$ U- ]4 @, d6 Q/ w/ L - data.item_id=ATT_EDT_STOCK_CLASS;
# b2 `2 z8 a) J% u4 Z. z - UF_STYLER_ask_value(dialog_id,&data);
' f1 ?$ F2 w' l; {) g* t - stock_class=data.value.integer;
8 j. |) _1 j2 S$ Q/ K( ?" r: M0 s - ! W8 g2 F) H2 O2 g$ U; _6 Q' o
- uc1630(title,&option,csys_matrix,csys_origin);
; p4 J1 w; z9 ^' G9 l& g; x, n
& H5 r8 o# }4 U- //定义坐标系! F+ @1 W' @/ e: O; Q( ^. M
- if(0==stock_class)* o& ~, x& _- B+ p. g
- {$ p/ A! D& B$ r
- uc1601("定义临时坐标系",0);7 a+ O" K! i9 Q! F
- response=uc1630(title,&option,csys_matrix,csys_origin);4 B) O; O0 s. y9 r3 A, a' d4 S
- }+ }! r- n1 P1 h. Q! u: \
; R5 |6 \8 f& E/ _- if(0==count||3!=response)9 a4 Y/ V3 q+ t* N# V: E
- {- g: A% a" Y% P0 @3 ?4 ~
- uc1601("请选择实体或定义坐标系",1);' H' F* I+ W' g. V* g: o) j
- }) F' H w7 d5 s; Z" c! W% j3 X
- else if(3==response)% Y! X& i5 k, y* L) c* N: ?
- {$ J* k7 n8 ^) [" a" ^; @, L
- " O v7 g# E2 F. _' s1 u/ G- [/ |
- UF_CSYS_create_matrix(csys_matrix,&matrix_id); J w+ g+ N. J& \
- UF_CSYS_create_csys(csys_origin,matrix_id,&csys_id);$ S+ g9 V! f1 }5 ^( n c9 ]
- 2 l7 Q5 T1 e/ \. E- Z
- UF_MODL_ask_bounding_box_aligned(objects[0],csys_id,expand,min_corner,directions,distances);
- \: ~$ G, y/ L( l% ^
1 |2 U( O& ]2 }) B% Z3 Y: @- stock_size_string(distances,stock_class,stock_size);3 z; V- C% g7 L
- # F7 O; k' z" d! A+ H+ w
- data.item_attr=UF_STYLER_VALUE; & i+ ]% ^4 q; l) N2 P" Z3 L
- data.item_id=ATT_EDT_MAT_DIM;
+ w1 Q, O8 I2 P' h% }' ~& Z S+ l - data.value.string=stock_size;
% t# F' }9 e3 G2 j - ) e+ i: Y! V. d, z2 G0 ?
- UF_STYLER_set_value(dialog_id,&data);8 L0 D0 d# L4 H5 j8 `4 |/ o/ J9 l$ O; ^
- UF_OBJ_delete_object(csys_id);, R0 F3 D% D% G2 d$ V# S
- }
" W' i% Q1 l# j9 [. ~3 e J - ( t5 X7 `% N! J) Q) t- S }
- UF_terminate ();. q E5 S7 L0 L" z5 y
X% S5 X' {. V- /* Callback acknowledged, do not terminate dialog */0 W# [) D% @0 `) F
- return (UF_UI_CB_CONTINUE_DIALOG); # r W8 K& l3 T
- : V9 i/ w& x L2 q
- /* or Callback acknowledged, terminate dialog. */
: W# ^' P' M' z - /* return ( UF_UI_CB_EXIT_DIALOG ); */
6 ^" H8 p- q3 B% e8 h: A G! b
6 S+ G- O( }# ^- }
% |! {$ O. [6 _
复制代码 |
|