|
|
楼主 |
发表于 2015-5-6 17:35:40
|
显示全部楼层
- int ATT_EDT_CUSTOM_CAL ( int dialog_id,
) a9 U: n$ v2 e2 p - void * client_data,) \ \9 y, N: {; b' N$ h& y
- UF_STYLER_item_value_type_p_t callback_data). ~5 \+ e/ d6 M) z- ?; d
- { X0 g3 d/ t- n K- O4 a
- UF_STYLER_item_value_type_t data;
6 B+ ? O3 F. x% G( ? - int stock_class=0;
. [9 Y( J2 [8 a9 A1 E1 I - int count=0;
2 p0 Y. k1 z+ ]0 } - tag_p_t objects;
& c- f3 z) Z6 Q$ |' Q: i - + I) A4 [9 I/ }
- //设置坐标系8 l( d- L3 |0 U( W
- double csys_origin[3]={0.0,0.0,0.0};
/ T- b2 w) ], j: @! V( R3 K, Z - tag_t matrix_id;
+ M+ H; Q& s& ~( A! F: C - tag_t csys_id ;
! f! y3 X j( H" Z3 F" I - int option=15;- B* E ]" w) X2 t. ^% D
- double csys_matrix[9];
( ~- E. ^* [9 ?5 b/ p. @ - char title[40]="定义临时坐标系";
5 _' m% M$ E0 O9 Q. a2 X0 t - / F/ a6 l+ u& V
- $ e) X5 [0 U2 t5 U8 M" I' Y
- //毛坯尺寸& e, r9 M: J0 s" V- g+ E( x1 t
- char stock_size[256];7 X# T5 [9 A' X7 {# G
4 Z) N( v. @0 e, L1 m2 f# E0 H$ p- //坐标对齐边界盒, e0 f# S* J7 S; ^$ d j
- logical expand=FALSE; ; k3 M8 s0 k+ q/ i5 M
- double min_corner[3];
3 Z2 b! s+ z9 G& Z/ _, A- ]0 D - double directions[3][3]; 9 O6 N5 O" S' o5 _9 J8 w9 \! Q
- double distances[3];
; l0 C% P' g- J
& ?6 ?" w1 m' J6 b9 e- //坐标系定义对话框返回值
, j) v2 J: R4 d/ p: q$ Z - int response;) k3 ?+ W) w+ [5 o Q9 R8 X
7 U; t7 f$ q' B$ S1 z- 1 f$ X Y: w, e2 q3 S' Y8 L
- /* Make sure User Function is available. */
* C+ |* F- X- b- j" u - if ( UF_initialize() != 0)
+ \" I7 W* S* r6 @3 B - return ( UF_UI_CB_CONTINUE_DIALOG );' S" o9 Y+ p S J) O+ v
- 1 {4 F7 w% u I; U. T0 X
- /* ---- Enter your callback code here ----- */
- U6 C2 t* R* c- T7 y1 l$ b7 ~6 }& X - data.item_attr=UF_STYLER_SELECTION;
1 L# l( Y+ d& A; j - data.item_id=UF_STYLER_DIALOG_INDEX;
5 Y5 P& S5 f0 ^0 t. } - UF_STYLER_ask_value(dialog_id,&data);
4 A* }8 s" B; s/ R% s R - UF_UI_ask_sel_object_list(data.value.selection,&count,&objects);5 t o& _7 b* T
- 6 m4 J3 S; R- m
- data.item_attr=UF_STYLER_VALUE;9 L: a$ g) a4 S& N1 e; G8 P
- data.item_id=ATT_EDT_STOCK_CLASS;# w- @9 O I2 h
- UF_STYLER_ask_value(dialog_id,&data);
# q% E" M+ W$ ]5 p. x - stock_class=data.value.integer;
+ b2 d' ]! l0 x' [7 C' F, ^ - & t% Z5 x8 K1 g" U6 ^# A i
- uc1630(title,&option,csys_matrix,csys_origin);
" z2 F; F! l3 o7 y* J D - 9 i8 n2 M n0 c& Y1 X. w
- //定义坐标系
, h# i" h" k3 b$ `3 g7 T3 i - if(0==stock_class)2 S" B/ M; L) `# j' Y/ S
- {
Z2 P, z8 P! s/ T# [ - uc1601("定义临时坐标系",0);/ q7 S p; s k" d& H8 B
- response=uc1630(title,&option,csys_matrix,csys_origin);
6 P& S9 v- u1 l/ x+ f - }$ Q9 E! m" u, ?( ~& G& s
1 x! M' N j6 z e/ @) b/ Q7 t- if(0==count||3!=response)( p: w5 T" P1 ^8 s# B
- {5 R' A. x# C. x8 z/ ~8 Y2 Z S$ I5 T# J
- uc1601("请选择实体或定义坐标系",1);
* K2 u ~: a) \ - }8 ?& B( e0 y2 J. d7 K
- else if(3==response)6 g g9 U Z( |7 H
- {3 L1 U5 d' i! e6 K, c8 x7 v5 L! Y9 [
- 0 f: G2 ~5 Q2 f' _* z
- UF_CSYS_create_matrix(csys_matrix,&matrix_id);
- x5 B& U% W+ o - UF_CSYS_create_csys(csys_origin,matrix_id,&csys_id);7 C* z0 ?4 n9 N& g( H
- # ^* D: r& W) Y8 P% @" a
- UF_MODL_ask_bounding_box_aligned(objects[0],csys_id,expand,min_corner,directions,distances);
, o {& _( r6 i% G - 6 T& s" j6 [' O C! z6 a
- stock_size_string(distances,stock_class,stock_size);# ]: O* C0 P4 p4 i& t: O3 T
- # j% A% J3 \! d7 I' }. I) ]
- data.item_attr=UF_STYLER_VALUE;
$ h* y2 T" W4 M: V - data.item_id=ATT_EDT_MAT_DIM;
; B; Y' ^3 Y% I, H" c: e - data.value.string=stock_size;
: _1 A# F4 G) l$ ]1 a' } -
# F7 ?& R6 u: H. g - UF_STYLER_set_value(dialog_id,&data);
9 s% G3 Z' o, B. ^ - UF_OBJ_delete_object(csys_id);/ M. g' R3 ]* i9 v |
- }6 B! D+ l! j" K/ a0 N$ l0 {
3 R2 K- M% i6 J' [# r- UF_terminate ();# u) x, K) t- b+ Z$ b
- 6 l7 ^% ?" K8 m% {! w9 \+ s
- /* Callback acknowledged, do not terminate dialog */$ o7 W" H* S2 `0 B, g6 g
- return (UF_UI_CB_CONTINUE_DIALOG); ) O! W' `! V `, o- u# _0 h% d; \/ Z
-
; I9 H7 U2 ~2 F5 P' O0 i. ^3 M - /* or Callback acknowledged, terminate dialog. */& E5 b+ s/ L+ p" D2 i% R
- /* return ( UF_UI_CB_EXIT_DIALOG ); */. A8 \" X, y) O# y5 j5 ~6 n
0 \* U2 d" g- y7 @- }
+ }. X; N. B7 S9 C
复制代码 |
|