|
- int ATT_EDT_CUSTOM_CAL ( int dialog_id,/ g# y. K( Y9 ?
- void * client_data,
& I+ S0 U! d* ?" k6 Q - UF_STYLER_item_value_type_p_t callback_data)
/ a/ v7 ~# Z# M# u0 E& v - {1 ~7 r( U: N- N
- UF_STYLER_item_value_type_t data;
' `& |, c7 ~/ ~* C - int stock_class=0;% S% ~) y4 r5 @4 R8 N5 G( y
- int count=0;
9 C, N. O7 t# z - tag_p_t objects;
' E. C/ V& \# x/ C( {, ]; X; u0 S - 8 M" S1 ^2 U9 J. f% h
- //设置坐标系3 Q" n, I# X, q2 l7 c, ^
- double csys_origin[3]={0.0,0.0,0.0};" R# K$ x) S0 t+ w* m& S
- tag_t matrix_id;1 p1 \+ R3 e! G5 e
- tag_t csys_id ;9 V9 V/ l' Z% c
- int option=15;
' g8 \* r. ^6 \5 n0 [ - double csys_matrix[9];# P0 ^" x9 w( Q8 }% E
- char title[40]="定义临时坐标系";2 b3 q; G* S; o' U
-
1 y& T+ X# a6 _1 N" ]
- L" G6 i. _& L+ V- //毛坯尺寸
5 ]3 Q% T. w' `! E - char stock_size[256];
( D) o" c1 Z; Y
; M; I( {: L$ H) Z) [- //坐标对齐边界盒
6 A8 a3 w; q4 }& s - logical expand=FALSE; / v e+ Z: y8 I- N+ T( u+ a( I
- double min_corner[3]; 5 P; U0 j* s) Y! Z4 ?# x5 J" D
- double directions[3][3]; U6 x6 _* X3 R- r3 l3 p
- double distances[3];; r) ~' g( v! ?/ Y- L" v$ }/ k" G
- 4 r* |) y2 h, L* E6 U( \; `( A
- //坐标系定义对话框返回值: Q5 l) C7 c- f) P6 _
- int response;# t. N7 C9 [+ ` l |# }$ d3 C
- ) v9 m2 n! b% r1 \9 m
- " Q$ y, l5 Z* Y3 l
- /* Make sure User Function is available. */
! h" q" ^# Q4 W, `" r4 _: j- a - if ( UF_initialize() != 0) # Z% a3 s4 [/ o- G6 }
- return ( UF_UI_CB_CONTINUE_DIALOG );" w4 Q; e% A$ i) @9 Z; r
- 0 a. N" a: A/ b! `, m. P" k/ l9 G
- /* ---- Enter your callback code here ----- */ _" M& N. _) i6 F
- data.item_attr=UF_STYLER_SELECTION; 0 ]; n# R' g0 N8 t
- data.item_id=UF_STYLER_DIALOG_INDEX;
# A8 o" ^" N( \ - UF_STYLER_ask_value(dialog_id,&data); ; H. y+ S/ D- H2 P
- UF_UI_ask_sel_object_list(data.value.selection,&count,&objects);
4 x# U* X+ [" G8 z n - : [ C/ k9 R: {! C3 U
- data.item_attr=UF_STYLER_VALUE;
% a) H: x0 I) ` v- Q# O - data.item_id=ATT_EDT_STOCK_CLASS;
' X' q7 F2 ^7 T r - UF_STYLER_ask_value(dialog_id,&data);; B: D: C v6 _! M2 e
- stock_class=data.value.integer;& l* K4 S% _ i& q% k
! M5 a! @. i4 N2 [9 h- uc1630(title,&option,csys_matrix,csys_origin);
+ s; h' r5 k2 n5 b6 ]3 p& c - & a! Q: o7 \7 R
- //定义坐标系7 U7 L. t, ?3 ?7 w7 ^+ o7 \
- if(0==stock_class)9 ?, Q: m! x( v0 U- G8 |
- {
* [7 ]7 T& e7 b - uc1601("定义临时坐标系",0);
1 V# p0 M% s: f3 _8 M" u1 t! } - response=uc1630(title,&option,csys_matrix,csys_origin);5 O! m2 B, @6 b
- }
, N3 [8 E8 `5 D
: q" V. o0 C) H9 h: X/ J5 g# a. P ]- if(0==count||3!=response)
6 Z R$ l4 L$ u6 v - {
% D0 S$ q" b' `' g6 q9 K - uc1601("请选择实体或定义坐标系",1);2 H0 E! S) [2 M" P; [
- }; i$ W. N# C* |. q
- else if(3==response)
% I: K6 |6 R9 Q. M - {
/ X; y2 A; z9 x' S: v6 Z$ n - 2 J8 E- k( x$ m3 W+ z$ W
- UF_CSYS_create_matrix(csys_matrix,&matrix_id);
; Y4 Y1 [7 f$ Z7 {* `7 t - UF_CSYS_create_csys(csys_origin,matrix_id,&csys_id);
% }& l+ V% K- r7 e( F1 G - ( j. g6 P7 v/ @' V4 H7 j( m
- UF_MODL_ask_bounding_box_aligned(objects[0],csys_id,expand,min_corner,directions,distances);
5 }- f$ z! }7 q. Y4 A
- N8 q' c( r$ J5 H; W6 y- stock_size_string(distances,stock_class,stock_size);4 Q6 a1 l1 [9 n/ P9 x
- ' k- [' ?) v; a
- data.item_attr=UF_STYLER_VALUE; 0 P7 l+ {1 ^8 }; M
- data.item_id=ATT_EDT_MAT_DIM; ; G* f! O& C; M$ [
- data.value.string=stock_size;
* @+ D0 S% A# _& Z0 ^ d - 9 w8 M, T4 y( q6 A0 B+ H0 m
- UF_STYLER_set_value(dialog_id,&data); Y, T3 g* b5 [( s; ` z9 ~; [
- UF_OBJ_delete_object(csys_id);- `$ C; F. Y* z& f' p2 l
- }
7 ]+ e# Z8 c% K1 ]' o
* l+ K- ]: c/ n# X* P* g" Q8 r- UF_terminate ();. O) P8 D3 D" c9 ^$ K' T
& c/ [' A" P$ Y' g3 i2 x, V" c5 h& W9 o- /* Callback acknowledged, do not terminate dialog */
* c& R7 L5 _+ o5 _8 v6 m - return (UF_UI_CB_CONTINUE_DIALOG); 3 {( O. U3 W6 d; x5 k
-
/ t: U# ^% i6 M9 L% ~2 h7 Y$ o - /* or Callback acknowledged, terminate dialog. */9 N3 E; e# `+ i1 [% A. Q6 `: m
- /* return ( UF_UI_CB_EXIT_DIALOG ); */
& s$ z) L- \4 a: @) \8 |
( k) s, W$ C6 A3 |8 {- }6 u$ q c+ E- `* p
复制代码 |
|