|
- int ATT_EDT_CUSTOM_CAL ( int dialog_id,
8 _: C& K/ O5 G3 X* I2 W4 g5 J - void * client_data,
6 s, n$ ]6 I4 C5 z# U9 A& G) N/ f - UF_STYLER_item_value_type_p_t callback_data)
- Y B3 _" X+ |) @ - {' y- b5 ]. Y8 C3 [, L
- UF_STYLER_item_value_type_t data;* O( K. ]# v- t/ s" x% R7 g `8 h* Q
- int stock_class=0;
! V0 K6 p3 {' n; ]# Z2 _ - int count=0;
2 H/ ?8 ~$ S/ f - tag_p_t objects;
1 r& k! z# N7 o. y: Z0 z0 `2 |. Z - & Y+ i2 _: Q- V5 J+ x
- //设置坐标系
2 s: B; x' g: s" \8 ] - double csys_origin[3]={0.0,0.0,0.0};
/ u8 h! ~; Y" B1 R4 }. N) u - tag_t matrix_id;9 ]- I4 }. x* N0 F
- tag_t csys_id ;" W$ g, N2 k- H( p: P6 b8 \3 ]7 `7 R
- int option=15; ^3 B2 g$ T# h" o
- double csys_matrix[9];
3 H/ M1 R& P3 t6 M$ k4 X0 }* q - char title[40]="定义临时坐标系";
+ C, A1 h# q7 W6 Q- l6 X2 H3 \, R - ' J& ~) A# j8 S
- / U G2 x. C( G
- //毛坯尺寸
Q! \% o; i% J( x - char stock_size[256];
. F n/ w Z/ D+ y" G3 z* {* C
- n- {' N' u3 D, B' [1 F# D, ~- //坐标对齐边界盒; N% W0 ^6 t1 r
- logical expand=FALSE;
! |3 X4 y2 E( `8 k - double min_corner[3];
/ t4 i* ^1 T/ s% b( K2 K, y# \# ?. y - double directions[3][3]; ! V6 m* n/ y# [6 ]8 G# r: v0 ]
- double distances[3];
# T5 `; F% B& M8 S |3 A
9 K5 {+ b: r6 V y5 B/ D2 J3 E- //坐标系定义对话框返回值; N: a& Y+ l# ^- w8 `, m1 p
- int response;& Q* P4 u! M+ u( K- T
+ Q2 }" S$ T' G, \1 Y1 z- ' `7 Z4 K2 o) T3 w# U2 q' H/ ?, `
- /* Make sure User Function is available. */ 8 f3 j4 l/ H' a K$ M
- if ( UF_initialize() != 0) 2 z n! P( k' |( n4 p0 O
- return ( UF_UI_CB_CONTINUE_DIALOG );
$ I. A/ _5 J, H) v
# T$ W+ V, O0 h' J+ c+ K, J- /* ---- Enter your callback code here ----- */
/ Q" C" Q6 ^' ~7 I9 U4 a - data.item_attr=UF_STYLER_SELECTION;
% @0 {8 D; v$ c - data.item_id=UF_STYLER_DIALOG_INDEX; + p4 ]% \2 ] s r6 A/ }" A1 T
- UF_STYLER_ask_value(dialog_id,&data);
+ p( E; t& J2 m7 ]3 w# ^! w) W - UF_UI_ask_sel_object_list(data.value.selection,&count,&objects);7 c) R( A6 \4 C9 u7 H
- 5 @+ H& O! X6 ?0 M; P6 z8 Z1 K0 k0 @
- data.item_attr=UF_STYLER_VALUE;
& |! M2 e' ?0 R - data.item_id=ATT_EDT_STOCK_CLASS;0 g2 X* e$ M) k& K# N
- UF_STYLER_ask_value(dialog_id,&data);
c s2 J' ~7 G+ k" j$ @/ v - stock_class=data.value.integer;2 x! E4 \+ c3 H3 J9 T8 z9 B
0 `' b3 b) o% o5 Z5 T) @) k- uc1630(title,&option,csys_matrix,csys_origin);6 S7 g# S4 W4 ?" o
! x( s7 V+ L" Q x# T8 j- //定义坐标系
* d j1 n/ K9 ?( O# t4 v( w - if(0==stock_class)
: s. [+ I2 _0 w0 J( j; C* b, K - {
$ P! s0 q p Q8 V3 j7 y. x# z - uc1601("定义临时坐标系",0);! h, E# `# s, Q6 E* z
- response=uc1630(title,&option,csys_matrix,csys_origin);
+ V. I# e) o5 U. c9 D - }4 J6 o; x6 _: m5 Q3 C3 G
- ; g. n, j/ @- E
- if(0==count||3!=response)8 u4 y- L$ J( [
- {
2 }% f/ f+ U+ P8 `6 R - uc1601("请选择实体或定义坐标系",1);. b, S) _% r; n& n2 }
- }
* T) t7 U& ]+ F3 n# e' I7 j - else if(3==response)
' A/ X m! C* y* c3 H. e - {
0 X, {* u, m8 V* y - $ n) a3 G& p) G8 U& T
- UF_CSYS_create_matrix(csys_matrix,&matrix_id);
: |7 v# K) y' h# N5 M3 Q - UF_CSYS_create_csys(csys_origin,matrix_id,&csys_id);; J: G% i. k# r4 c& U" B
- , u* n w8 i2 R w5 `5 W( a0 c
- UF_MODL_ask_bounding_box_aligned(objects[0],csys_id,expand,min_corner,directions,distances);
; n# K" O( S; \( u( R/ `
% r+ A! o" ]0 k, n3 N- v$ A$ Q- stock_size_string(distances,stock_class,stock_size);
* ]8 t- K& f, G2 Z- J3 g! \ -
6 \% v/ w! h+ F5 f8 J' c- B5 z - data.item_attr=UF_STYLER_VALUE; , J/ h$ G8 I7 a; W. I& h# k
- data.item_id=ATT_EDT_MAT_DIM; ) z5 \: w8 m2 U5 V% d: s
- data.value.string=stock_size; ; A: m/ S. t2 c/ p$ H. Y
-
/ X0 c/ H8 ~- t - UF_STYLER_set_value(dialog_id,&data);
; O% E0 C; X/ J* `7 B8 h0 w2 \- ] - UF_OBJ_delete_object(csys_id);
+ t/ E; k- [ Y9 T - }5 K8 h6 T }1 ^1 }! `# v% `
9 f* Y# R. q4 g' [ w- UF_terminate ();$ ~% f6 b% {. @
- 0 F% ~' N/ |" g4 I
- /* Callback acknowledged, do not terminate dialog */
* L* w- F* l5 F! q, { - return (UF_UI_CB_CONTINUE_DIALOG); , T1 U- _( _% Y) Y9 W
-
5 H9 \$ d$ Z" P6 y0 B; y, M - /* or Callback acknowledged, terminate dialog. */
4 F) i: [. u, T v% I) ] - /* return ( UF_UI_CB_EXIT_DIALOG ); */
5 `% E- D8 X3 @9 Z1 g/ r8 n
% t5 R1 ?& C; @- g- }* [0 m L( c9 X4 ?+ K* [
复制代码 |
|