|
|
- int ATT_EDT_CUSTOM_CAL ( int dialog_id,+ [/ O# W4 c6 S
- void * client_data,
( T9 A S6 l9 _! {+ `1 b- B - UF_STYLER_item_value_type_p_t callback_data)' g& l( {$ f i. I" p0 V
- {
4 T- |7 H( P# i - UF_STYLER_item_value_type_t data;
! n3 q+ \/ _7 W: _: |* P - int stock_class=0;
9 @! g6 _$ ? S* b5 p - int count=0;
0 d) O {; A2 H8 F f - tag_p_t objects;
# y/ ?& x7 N9 H! ^ -
0 t9 S r" h, }: L - //设置坐标系' v) D! C% S/ ^! o1 A$ c
- double csys_origin[3]={0.0,0.0,0.0};! k' Z. h& e6 e5 h( k4 u$ k
- tag_t matrix_id;+ ]& t* M' n8 e; b
- tag_t csys_id ;& R# v2 I- V0 b5 W8 B) P
- int option=15;
* v% [, v" t: I2 O' ?& K1 g# P2 M# ]9 S - double csys_matrix[9];. b2 `8 M2 |1 D [! X, D8 `9 e( z
- char title[40]="定义临时坐标系";
: _3 y7 n7 r: L9 A1 X2 m - ! n: s+ E, Q/ q R' n9 M! t5 R7 `
( j+ W! D0 w/ S G* H7 z- //毛坯尺寸: A: t7 v6 ^. Y/ `" ^9 g$ k- ~* H
- char stock_size[256];
+ F% l6 v0 ]' K) T" E( `' C7 H/ F; N
1 N% o* G- n. m( t- //坐标对齐边界盒- w+ i- q. J7 D) L& k" e
- logical expand=FALSE;
$ w- D4 q Z5 H+ ] A+ }3 | - double min_corner[3]; : y5 n0 Q2 t& a9 m6 r5 ^0 _8 T
- double directions[3][3]; + \* y" Q1 M' v* J. ?* S
- double distances[3];
+ ^& y: W6 P) P( |
+ Q& J3 L+ ^" ^* n- //坐标系定义对话框返回值
/ B) s- f3 V4 q7 Z' S! n - int response;& o7 \$ C( N. t/ W2 b d
- ) e- E& ]' n0 w; i; h
- 3 z; o, ?# X6 J$ p2 M
- /* Make sure User Function is available. */ " g; o# M h3 n8 t; w" N5 y
- if ( UF_initialize() != 0) 3 v. n+ q" ?3 y% G5 V4 ~ g
- return ( UF_UI_CB_CONTINUE_DIALOG );
' {: w4 l9 r/ M1 V' m7 g' M( t
& I2 s& U7 y4 v" W Y5 B6 V2 L- /* ---- Enter your callback code here ----- */
f# c+ s& \" C0 I - data.item_attr=UF_STYLER_SELECTION;
$ C( E# Q# M! w - data.item_id=UF_STYLER_DIALOG_INDEX; * w3 M+ o7 G7 N/ h) `
- UF_STYLER_ask_value(dialog_id,&data);
9 P2 w* m. _4 g9 t0 ~ - UF_UI_ask_sel_object_list(data.value.selection,&count,&objects);; v/ N2 H. P& X- j3 |5 {
+ Q6 a$ ^0 C" _. |- data.item_attr=UF_STYLER_VALUE;
7 C* q1 _5 }0 n1 [2 x - data.item_id=ATT_EDT_STOCK_CLASS;
& P+ u. a9 x( y3 @% ~0 p - UF_STYLER_ask_value(dialog_id,&data);
^5 `2 \/ _7 L( O - stock_class=data.value.integer;. z: ~8 c; c9 r% P# l
$ ~7 R0 m, q. `/ Z# Q5 T1 q) P- uc1630(title,&option,csys_matrix,csys_origin);2 M2 c3 U9 J7 ]3 D& X0 v$ Q2 P& Q: a
- ( R2 X4 J e h) Z8 S: [" f
- //定义坐标系* Y4 ~0 ]* i3 r7 q- ~
- if(0==stock_class)
! n2 I" a2 ~5 B3 ~7 w& U+ _ - {( t2 A& I. h; {( \7 {
- uc1601("定义临时坐标系",0);, f! I, R( |& U) m2 Z- r I! [& {2 H1 A
- response=uc1630(title,&option,csys_matrix,csys_origin);# R* H U# ~- B6 k6 Z
- }
: {: S" [7 T$ O- ~% q" J" _
& l ?9 ^2 s! X6 u: P- if(0==count||3!=response)
# H( O) D; g* S/ F4 i' Q - {& m, u: v) o3 q0 e# Y" \% S
- uc1601("请选择实体或定义坐标系",1);
* o$ O' K; k' B3 E; l - }* H2 G( V8 h! `; S0 D* |
- else if(3==response)
2 A# T' x* L2 p5 D) D* o - {$ I8 z5 q9 J' s
8 [8 a0 z; G7 g! f' `- UF_CSYS_create_matrix(csys_matrix,&matrix_id);
: v1 d& h: p3 L& e5 `6 }6 R - UF_CSYS_create_csys(csys_origin,matrix_id,&csys_id); _7 J& w, A5 \; f% y4 m
8 C% j9 N; u3 _- UF_MODL_ask_bounding_box_aligned(objects[0],csys_id,expand,min_corner,directions,distances);
8 M3 a) t7 {* w* X
. r2 l* U* f- n, u4 E/ }- ?- stock_size_string(distances,stock_class,stock_size);( l. e# }( ]# f" S. r" u+ z
-
9 G# [' c# q, G" m$ `% T - data.item_attr=UF_STYLER_VALUE; 6 l+ R" {. D, \4 P0 v
- data.item_id=ATT_EDT_MAT_DIM;
! `/ Q _2 G1 p - data.value.string=stock_size; ( a/ c d* w5 M2 e! f; t
-
P( m/ q/ q4 E9 U! I+ ~ - UF_STYLER_set_value(dialog_id,&data);
5 y$ ?% `5 I9 u3 q - UF_OBJ_delete_object(csys_id);( _# T2 }/ ~* b z1 ]
- }5 G! T* ^, z* |6 ~$ @6 Z
# p" M/ p: s$ s. d, O# `- UF_terminate ();
* @# Z6 j+ N$ U& x" U n4 u$ ` - 2 f$ F+ a R8 e' f. o) f
- /* Callback acknowledged, do not terminate dialog */& K/ N9 o% Y' k' u) h' A
- return (UF_UI_CB_CONTINUE_DIALOG); : m' G5 u6 t, G# T9 o
-
+ W+ m- }; L0 M - /* or Callback acknowledged, terminate dialog. */
, ]7 H- q# \7 Y* m1 p! V' a3 b - /* return ( UF_UI_CB_EXIT_DIALOG ); */
. O' ?% S5 r5 K" p4 { - # Q' t# F1 G9 R
- }
. _; p$ G9 h$ k3 o) N$ R% Q
复制代码 |
|