|
- int ATT_EDT_CUSTOM_CAL ( int dialog_id," [0 T! w* B( }" [ V$ Z
- void * client_data,- p: d/ M: ]! z, y: O* a) I( k
- UF_STYLER_item_value_type_p_t callback_data)8 z4 W9 Y% u- T/ c) p ]& E
- {
6 j, _+ J( F. o) H0 | - UF_STYLER_item_value_type_t data;
( Q- J% ]$ @/ M - int stock_class=0;
, k' F2 V9 N1 t; }( y, i - int count=0;6 u* m; `% D' n% J( v
- tag_p_t objects;
( I$ M8 C% |- Q7 x - ) `, A" i7 j& G% @7 U. S( J5 v
- //设置坐标系' h# ]- R, f! y& y5 W* H6 k
- double csys_origin[3]={0.0,0.0,0.0};
) G; A" C2 k/ |9 B. {4 e. o - tag_t matrix_id;* o' B) s9 ^$ e' y& ]! t: L, n% Y; j4 F
- tag_t csys_id ;6 V9 F5 _* C5 f0 L7 p N) s8 G
- int option=15;
1 w" \. L/ a- v, z7 B - double csys_matrix[9];8 l6 V. e. E$ p2 ~- }+ C
- char title[40]="定义临时坐标系";
8 @* o1 w2 f7 c - ! k6 E/ u4 k5 E) H* T& _
- ]4 {+ [- @! e3 H* N x- //毛坯尺寸$ L- S% j3 m5 C7 b2 S
- char stock_size[256];, \6 f9 K& z8 m' s2 S$ z
- ! ? U$ I$ i6 F( |8 z `2 Q
- //坐标对齐边界盒: v: T9 t% N" `( z
- logical expand=FALSE;
* y/ h% E9 K7 E/ R( z C; k; O - double min_corner[3]; z5 n! w1 P4 Y- {, Y" J
- double directions[3][3]; " _+ v1 Z! k( k' d, X9 {
- double distances[3];
* z* q) E: i5 }. `/ L' L4 T
0 Q0 |- o: v8 g4 V- //坐标系定义对话框返回值
0 z- `& n: r9 R: C, Z0 l; K8 R - int response;2 B# Q# l! A8 O. c+ F G
; l& p4 Q" _; ~+ j; J7 L& d- ' P& J2 y( S) c$ N3 y& s7 I6 ~: M
- /* Make sure User Function is available. */ 3 V5 a0 j2 c9 w& l, Q1 z
- if ( UF_initialize() != 0) & s1 ^' U# P- W8 J6 f: z2 x8 a5 Y
- return ( UF_UI_CB_CONTINUE_DIALOG );
# f$ }: K# L; ?) K - ( X9 Y! D- u/ u$ U
- /* ---- Enter your callback code here ----- */; u8 [6 p4 U: N2 G1 k- x
- data.item_attr=UF_STYLER_SELECTION;
9 V' K4 F/ k5 B$ }$ w - data.item_id=UF_STYLER_DIALOG_INDEX;
1 G2 }, _: w/ l: c3 h% W - UF_STYLER_ask_value(dialog_id,&data); 8 ]: r/ c2 U" ?
- UF_UI_ask_sel_object_list(data.value.selection,&count,&objects);, f9 u6 z0 o6 }3 v' ~. ]; u
- ! e8 k8 v0 V9 l5 F/ S7 r1 Z0 b
- data.item_attr=UF_STYLER_VALUE;: m( @# h1 E/ W/ T7 O
- data.item_id=ATT_EDT_STOCK_CLASS;
6 u8 @6 z& s1 Q8 {% C - UF_STYLER_ask_value(dialog_id,&data);" ^4 T Y/ N/ P
- stock_class=data.value.integer;
. x/ c; _) [( F5 N6 z4 K$ M - ; Z9 X4 U% f9 V' T) g6 f
- uc1630(title,&option,csys_matrix,csys_origin);
/ e1 T4 F7 ~4 P* z- o% p - 6 J, e' U/ ]# [) D7 _
- //定义坐标系: N: n9 O z; Q. w
- if(0==stock_class)
/ `$ x7 _3 i. N - {
% m6 p/ J9 ~. n - uc1601("定义临时坐标系",0);, i* Q, A4 G |' u S6 {- q: O ]
- response=uc1630(title,&option,csys_matrix,csys_origin);+ m) r9 E( n# {( s& F, W
- }
) f% t, u3 d5 t; F3 Q9 V
+ v, k. S+ r/ \* e% }% F& O7 Q8 ?* K- if(0==count||3!=response)
# \* C- E# f$ S. x. a - {
6 R$ \% C. j& o - uc1601("请选择实体或定义坐标系",1);6 q- D4 J v& ?# f
- }
; S' b2 A) W1 O - else if(3==response)& z* O' l2 @1 N( W4 k0 ?
- {
+ l3 i& i" H1 \) H5 l. } u - . J$ a# I* V7 j+ i
- UF_CSYS_create_matrix(csys_matrix,&matrix_id);
9 J% s c% Y8 l: j" s - UF_CSYS_create_csys(csys_origin,matrix_id,&csys_id);' c/ z1 S+ W; p- x3 J; N. a) N( `
- 4 Z3 i5 o% C3 J4 e0 i
- UF_MODL_ask_bounding_box_aligned(objects[0],csys_id,expand,min_corner,directions,distances);; e! E7 W& S& @% X! b6 ]3 }9 r# x4 }: |; f
- , ~7 [' E0 @! Y5 @ i' L/ U3 e
- stock_size_string(distances,stock_class,stock_size);
# l/ J0 ^6 ~* b% j -
+ W9 A z5 W) K5 p$ ^3 l - data.item_attr=UF_STYLER_VALUE;
/ i5 O8 G% \( y. e7 \' Y/ P; G6 k - data.item_id=ATT_EDT_MAT_DIM; 2 b) l- M. i; a; d# W
- data.value.string=stock_size;
' X' I' N) Z6 i { -
6 k! G5 V, L+ L+ j' Z7 @* e - UF_STYLER_set_value(dialog_id,&data);
4 C" B. Y. {" K- Q, j0 D - UF_OBJ_delete_object(csys_id);) S! r8 u2 i, x1 Q, B
- }- S/ J( D+ ?2 a F8 ~# d; B
- ' b; u) y, q5 C" E1 ?
- UF_terminate ();
6 b n- a. k6 e3 C* n9 y- l
4 X* [) ?, \/ P/ E$ j- /* Callback acknowledged, do not terminate dialog */2 g f- k; a2 _# {3 D- J
- return (UF_UI_CB_CONTINUE_DIALOG);
- E2 x0 E$ [5 Y -
! F) ^8 o& D- G8 } - /* or Callback acknowledged, terminate dialog. */1 n/ q# D4 N; B% A5 x) N( }
- /* return ( UF_UI_CB_EXIT_DIALOG ); */3 E/ { N# b" R7 `- O
k) L) w2 P5 {% ~# B- }6 S' _7 V1 C' [4 D/ y- {' |
复制代码 |
|