|
|
- int ATT_EDT_CUSTOM_CAL ( int dialog_id,! C4 x/ x/ X2 Q, a4 S
- void * client_data,
2 r; L( |. |* T6 p7 T% R - UF_STYLER_item_value_type_p_t callback_data)2 U1 J! b- c3 H
- {) h# b8 r5 H5 `( a
- UF_STYLER_item_value_type_t data;
1 N U$ o+ i& I e4 C9 f - int stock_class=0;, J- Q5 \# D( J! P
- int count=0;
( Z; O2 |7 }$ u* r - tag_p_t objects;
4 Q2 Y: Y, B2 A* _ -
' n [1 ^# |# A- S: t - //设置坐标系
( f5 F8 m7 P# ^4 m; m - double csys_origin[3]={0.0,0.0,0.0};
( Z! X/ d3 k& w t7 w- ^, `2 Q% T - tag_t matrix_id;
, l- \( F T8 P5 T u9 O5 b Y - tag_t csys_id ;1 s; S. _( C/ X# n- y& T8 C6 F- B
- int option=15;. M9 q) Y9 i! p9 K# M
- double csys_matrix[9];
6 n! W' t) P1 l H* k# G - char title[40]="定义临时坐标系";
& U6 ~2 N& r2 K, X+ [ - , ^. K5 `3 B0 d7 O0 R/ P8 p) K7 t% D
% n3 D- ]5 B- I( z/ ^: O4 `( F- _" M- //毛坯尺寸
6 \& g5 P6 ]* P: n$ Z( [ - char stock_size[256];: }, j% _& c1 S& u) z/ A9 _
- 9 v, P) F2 [8 x9 D" f4 L7 g
- //坐标对齐边界盒. w3 N, a4 s" s. J# G4 j& B
- logical expand=FALSE;
" e% Q" |9 }% B3 ^# j% @ - double min_corner[3]; 6 K$ t+ W$ r; L5 O6 h' Y
- double directions[3][3]; ' r; B# [% F: Z; o
- double distances[3];
6 W" ]+ [- @: \. I* F - 6 A. V; _8 u7 G* s
- //坐标系定义对话框返回值/ e( s! p% C! n( Y8 T
- int response;
8 m# \( E" I+ `
$ Q+ M; M( p: f( W. @ h
! k1 I' r& p+ I7 a7 C* B7 {' S& C9 ^, q- /* Make sure User Function is available. */
6 ], M1 x& p) l( Q - if ( UF_initialize() != 0) * y8 C' J/ y5 l+ M$ @+ P0 L& h! K
- return ( UF_UI_CB_CONTINUE_DIALOG );" I# P! @2 l4 |2 R+ J+ r. p' c# R% f
- ; H& |/ S& J- s# X" e( Z2 y: k
- /* ---- Enter your callback code here ----- */
* e$ q/ g$ o; M# O - data.item_attr=UF_STYLER_SELECTION;
% t: g2 g- a/ c# k8 z% m5 g - data.item_id=UF_STYLER_DIALOG_INDEX;
- Z& n2 a0 i/ e$ Q - UF_STYLER_ask_value(dialog_id,&data);
# [! L9 z/ d2 E$ y- M - UF_UI_ask_sel_object_list(data.value.selection,&count,&objects);
( }( W, p/ i! V7 b ~& h H* ~
/ ~. W0 g; E* T$ v- data.item_attr=UF_STYLER_VALUE;
: V) B2 ^% }( {8 v5 g' {! r - data.item_id=ATT_EDT_STOCK_CLASS;
: d$ L/ Q( y+ h9 B* } - UF_STYLER_ask_value(dialog_id,&data);
' a/ z; b1 ]& {/ Y8 X - stock_class=data.value.integer;
+ q7 o' P* c' w9 N$ X L( J
5 p/ [# O# S7 n$ g! B- uc1630(title,&option,csys_matrix,csys_origin);' A6 H/ {0 A, P+ r- ]
8 E# v0 Y: H/ ^# x# H- //定义坐标系
0 V% P( X( \# ]. j* ]) \2 q - if(0==stock_class)
6 ]# T0 n- @$ c" S2 a. f- B - {
7 N3 @0 Z6 r& D$ H - uc1601("定义临时坐标系",0);; W- Q5 X$ g$ @4 Y9 v8 J
- response=uc1630(title,&option,csys_matrix,csys_origin);
8 ~' z! ?& Y, O+ X - }
, f( q2 n+ P5 G }0 X+ }4 s - % ]% K% A) i3 v, r5 \ R7 D
- if(0==count||3!=response)( Z V) m# _$ ^3 l! C" [% \
- {
3 L- A4 R+ ^/ V+ J - uc1601("请选择实体或定义坐标系",1);
; g Q1 R( O) O/ r/ e5 b - }
( @* r6 l, y+ D& V7 S: t' e - else if(3==response)
Z: F2 x7 F. ^' X/ r7 [) K - {. J6 Z% r. O, [; k. @
' d! `' t9 ?& w. D- UF_CSYS_create_matrix(csys_matrix,&matrix_id);: X# t' q. x- {# a$ d
- UF_CSYS_create_csys(csys_origin,matrix_id,&csys_id);
) E8 i- Z8 G4 n1 U* M! ]
; g- v, @! j% m' R+ P- UF_MODL_ask_bounding_box_aligned(objects[0],csys_id,expand,min_corner,directions,distances);/ K& w7 {5 e2 |/ N: z b
- - c; c% N' k9 u
- stock_size_string(distances,stock_class,stock_size);
* i- Y. D* \6 s- ^3 P$ u H! M - 0 N }+ W3 _) z$ W- ^; X/ d
- data.item_attr=UF_STYLER_VALUE; . ^2 t# Z8 Q1 @; m
- data.item_id=ATT_EDT_MAT_DIM; 9 c0 w( ^5 b Q! S
- data.value.string=stock_size; + j- n2 w3 ~$ m4 k* q9 c8 o
- ) f% z, z7 J h A6 R
- UF_STYLER_set_value(dialog_id,&data);0 P, ~ M1 x. D" f W! }- Q9 {
- UF_OBJ_delete_object(csys_id);
+ x7 E. Y+ k# v0 o P - }; n1 A4 L9 R+ V- [ X7 e
- 9 ^/ `, [4 c* l+ ]% m" K+ k
- UF_terminate ();
- h; A7 F# A) q6 N, Q4 ~1 P) U
+ `2 T8 @+ Y" W5 G l6 |* ~4 w% h- /* Callback acknowledged, do not terminate dialog */3 C5 ^$ n5 \! B! I% v
- return (UF_UI_CB_CONTINUE_DIALOG); . p' w3 B% K7 Y b# p- k
- - y* H! e: f6 R8 K
- /* or Callback acknowledged, terminate dialog. */9 |' Z, g2 t* s7 L6 ^
- /* return ( UF_UI_CB_EXIT_DIALOG ); */' a# f! v f: `
- # a' |+ H! C7 Z5 J" D
- }: \" M5 i$ L6 ]( }* x
复制代码 |
|