|
- int ATT_EDT_CUSTOM_CAL ( int dialog_id,6 S' r- u- ]# t
- void * client_data,. Z1 D& _0 H1 e+ u# o% @, j
- UF_STYLER_item_value_type_p_t callback_data). [4 Z! {- R/ v# v2 F) H3 W# S3 D0 [
- {) ]& s0 x: v' g g% G
- UF_STYLER_item_value_type_t data;
P6 Y) q2 n, Y1 A$ b6 H3 ^2 A - int stock_class=0;
, j0 C8 Q: ]! ]% T' X - int count=0;& `. N7 G! `& P5 l
- tag_p_t objects;- q' x. r+ K3 x X7 _
- $ D- H+ x3 R4 z% ], z/ E6 S) c
- //设置坐标系# M; _8 J6 g) C2 w2 Z, v
- double csys_origin[3]={0.0,0.0,0.0};* s! w+ D% j% m- C5 {
- tag_t matrix_id;
1 A- m, H7 V3 P9 D$ W" x2 J - tag_t csys_id ;
8 z! p1 Z. b- Q5 B. ` - int option=15;
& Z' t# @% e- {/ a) d - double csys_matrix[9];. g9 u/ Q6 e4 j8 T
- char title[40]="定义临时坐标系";( W' y1 R; j% j* r
-
o" N& }$ W' c/ P
: l a4 x# K5 O3 a9 {- //毛坯尺寸
1 H% D% C9 Z" `, k1 q- s$ Z - char stock_size[256];% G! S( c' \0 `2 n
- / p `4 Q8 M1 r+ I
- //坐标对齐边界盒" G$ o6 S6 H+ r
- logical expand=FALSE;
$ V" A2 S+ u# s/ Y4 J- h! s - double min_corner[3]; ! o8 U) Y( U2 l n" J- @ |
- double directions[3][3];
% p W& ]% c! r) b% k - double distances[3];
3 a) o6 q" }+ J, {1 Z8 p3 W( |+ V! O - - j; o% Q m) G7 u8 c$ m! {, @
- //坐标系定义对话框返回值
! x$ ~! J% @7 U3 K n - int response;
% K/ i% e. m1 v - 7 v/ A& L* `2 ^; d
. T4 X/ ~' Q9 P6 W$ K5 J- /* Make sure User Function is available. */
. l6 H5 G& |2 h* T+ F7 @ - if ( UF_initialize() != 0)
1 ~: [% D! I, h2 X+ x( T6 t# d - return ( UF_UI_CB_CONTINUE_DIALOG );+ ^/ s) d; D5 v# W2 c Q( H4 I
+ r' Q* s6 Z: G4 i8 l, Y- /* ---- Enter your callback code here ----- */
# K% n7 ?. t8 e+ z- g! D2 Z - data.item_attr=UF_STYLER_SELECTION;
4 [ G+ K9 S4 y5 L2 y7 D- r+ J - data.item_id=UF_STYLER_DIALOG_INDEX;
3 P& ?7 Q/ D" E3 f0 r2 B5 Y - UF_STYLER_ask_value(dialog_id,&data); * H" k: X K( B' ]/ b
- UF_UI_ask_sel_object_list(data.value.selection,&count,&objects);
, n- ~# X2 R: N. X - % Q& j8 W0 v5 s' D! \; D1 F& Y
- data.item_attr=UF_STYLER_VALUE;# I: d# C, H' {2 ^/ Q, s: ~; `
- data.item_id=ATT_EDT_STOCK_CLASS;$ W O/ \' x, s6 {+ H
- UF_STYLER_ask_value(dialog_id,&data);
" O7 I* s: F; b3 ]4 E - stock_class=data.value.integer;
% h: _3 ?$ Q" m5 v9 E# Q" G' x
; q' u: N- `: D$ D6 B- uc1630(title,&option,csys_matrix,csys_origin);9 s$ q B- X+ U1 {" a3 |; e
- 0 {4 c; e5 l0 n0 F* l" r
- //定义坐标系. y! z2 @, ?" v/ w' H, f
- if(0==stock_class)( t; t5 n* \; g* C- \
- {% k) K- Y$ {/ v% R
- uc1601("定义临时坐标系",0);
6 A, H ?1 M7 Y; M4 O - response=uc1630(title,&option,csys_matrix,csys_origin);( W8 v( r9 f" N6 H4 n" o o" }" x# J
- }" K+ E3 |3 D l1 Q! v+ N9 @
- ( o0 w/ ~8 g0 ?% c! U) W& ]
- if(0==count||3!=response)
% S8 C& A; b3 E: ]2 _2 C7 I - {
0 ^: W+ `7 _: j, k - uc1601("请选择实体或定义坐标系",1);* \; s {1 r7 q, S0 f
- }
" u- L, j# j4 u% W& v( d - else if(3==response) F$ L& i& K6 j$ ?6 E* t
- {8 s' B0 }1 Z. _8 s
* W' k+ x K& H f6 ]- UF_CSYS_create_matrix(csys_matrix,&matrix_id);
1 N3 B D7 ^2 t3 D - UF_CSYS_create_csys(csys_origin,matrix_id,&csys_id);
& F5 P8 x* \" a; Z - . K. ^, c: v7 y b
- UF_MODL_ask_bounding_box_aligned(objects[0],csys_id,expand,min_corner,directions,distances);
5 `: I) }* x6 H1 ^: Q
* d! k% w8 X) s- stock_size_string(distances,stock_class,stock_size);0 e+ a/ V' a: Q, y8 X+ u
-
0 K4 D7 g; J7 j; m o$ { - data.item_attr=UF_STYLER_VALUE;
3 ?+ o( ^3 Q) X& w - data.item_id=ATT_EDT_MAT_DIM;
! M$ h3 p1 ?* t: D2 y9 r" i - data.value.string=stock_size;
) I- D. d* F! G# H+ o8 |* e - ; Y4 X9 ?& z- m1 y# i
- UF_STYLER_set_value(dialog_id,&data);
) x( I( @2 X4 A$ O3 b B) ~9 w - UF_OBJ_delete_object(csys_id);
' {( @8 a( r4 Q6 W; H8 a. G. a3 d - }
0 S6 W" ^; J, V - ' R# u. p( z# m" y
- UF_terminate ();7 ?% `/ E K* y8 x) L. D
9 O# U3 v" e# {- /* Callback acknowledged, do not terminate dialog */
5 H: a: r7 i1 q8 I0 Y - return (UF_UI_CB_CONTINUE_DIALOG);
9 o5 r) E7 D# l7 u! y. L* q8 @7 R - / R1 o5 `1 O" _/ h
- /* or Callback acknowledged, terminate dialog. */
: a, Z- O+ c8 u0 g - /* return ( UF_UI_CB_EXIT_DIALOG ); */
$ c2 X2 T6 t; _# l6 s6 V9 ^ - 6 \, f @( }" c4 l( i
- }
* Q* z* X* Y0 N3 Q) K
复制代码 |
|