|
|
- int ATT_EDT_CUSTOM_CAL ( int dialog_id,
2 c$ i- O; G) l' V- O# P9 [ - void * client_data,! G8 B+ X8 Y- H- J
- UF_STYLER_item_value_type_p_t callback_data)7 `. M; f- l/ B
- {
- T6 W& v' A7 }6 Z& e! S" u - UF_STYLER_item_value_type_t data;" m4 e) i* y. O! K; _, H
- int stock_class=0;' r+ v0 o: R W% b# G
- int count=0;- K4 K" b* O7 c- c0 N/ {
- tag_p_t objects;' G( m9 {: a0 |8 P9 h4 t
- + W0 g- {/ u/ d5 i
- //设置坐标系9 \' O4 ~6 M# `
- double csys_origin[3]={0.0,0.0,0.0};. a x2 F* ~: T! H
- tag_t matrix_id; G. u, f! x6 x" A3 Q" p) s
- tag_t csys_id ;" k6 y. C( s8 T y7 P- n& H
- int option=15;& X7 J& {* H* N& k
- double csys_matrix[9];& \3 {/ _; I, o( X) v" ^
- char title[40]="定义临时坐标系";( c+ k" l) o; L, O8 h5 l
-
" e' r+ }' _4 |! b8 }6 S - 4 \! p# i) T" T. p
- //毛坯尺寸
' l3 Y" s' A+ s5 o - char stock_size[256];
0 {) Y/ c: Y& I$ |# t - , Y& ^) ~6 P3 N( @# R, ]
- //坐标对齐边界盒8 F. e, {% |! Q! f& ^
- logical expand=FALSE;
8 F/ f: v, }. g+ P - double min_corner[3];
2 ?+ U2 p# J4 I - double directions[3][3]; & `: t" q$ [7 Q) X% t- U2 i+ n
- double distances[3]; r% y5 b: `' `3 a, E+ o
- % t! f8 n a9 u
- //坐标系定义对话框返回值
+ |* P) ?: q8 o - int response;
- W; B$ z. `& B3 s! Q" d! E5 ]
# b: B# m# N1 \9 ?4 S, H' A0 X! m- ! F, u# ~: W0 |; i! l6 p7 H/ n! G0 D
- /* Make sure User Function is available. */ 6 I% c- X# c( s1 x# n6 z1 X
- if ( UF_initialize() != 0) 0 t% e1 b/ s9 n8 X, s. P% L
- return ( UF_UI_CB_CONTINUE_DIALOG );
5 z% J" |0 X/ o( a) @: j, S5 {+ X
& L, v" }5 W5 v- /* ---- Enter your callback code here ----- */
7 c: t; ?$ l! }" z. }% |. t - data.item_attr=UF_STYLER_SELECTION; . N# s: m, {; Y0 G3 {
- data.item_id=UF_STYLER_DIALOG_INDEX; 7 j: g: O3 x o, d$ a d; k
- UF_STYLER_ask_value(dialog_id,&data); $ c- c& `: @5 [) ^
- UF_UI_ask_sel_object_list(data.value.selection,&count,&objects);
' C! N+ {- Q5 b3 G+ w4 i - ! n( N( W9 u+ d' f9 W. t3 K
- data.item_attr=UF_STYLER_VALUE;# o/ o7 G+ W T1 {
- data.item_id=ATT_EDT_STOCK_CLASS;( |1 k1 q @- D9 [
- UF_STYLER_ask_value(dialog_id,&data);
/ U! C! p. I. h: D; A9 b3 M, u9 U - stock_class=data.value.integer;
( \) G" D4 m5 }# M. f - . O1 x2 D2 U1 D1 W
- uc1630(title,&option,csys_matrix,csys_origin);2 ?* Q/ N8 H5 B2 {7 K+ p+ ^ J% c
4 E8 H+ q7 Q* l$ k p( u, F# X- //定义坐标系
! I6 Q# r/ `# v. |; p! @8 H* i - if(0==stock_class)1 w. C& B5 y7 g1 c7 z) |
- {1 ]; g3 |$ m- `) X2 ]' q
- uc1601("定义临时坐标系",0);: ]2 Z, ~/ V$ b
- response=uc1630(title,&option,csys_matrix,csys_origin);
- U0 y; K7 a3 p5 _; o }: ] - }
0 \" u0 h2 H9 p - 1 N6 W/ U- x6 r
- if(0==count||3!=response). B, \3 B6 T% u0 _. o. C
- {
0 i- O& v9 f+ ]6 E, `4 R - uc1601("请选择实体或定义坐标系",1);
0 V" O' x( I+ s0 G& H - }
+ _1 F3 d; X K7 R$ K" u - else if(3==response)
. {4 s2 p/ X7 G( |% G9 Q - {$ H8 H, L2 x( |0 Y% C9 R r
; {! P" y4 q/ C8 w+ p, i n4 T: v- UF_CSYS_create_matrix(csys_matrix,&matrix_id);1 g& p0 o( I" \' _( Z5 X8 Q
- UF_CSYS_create_csys(csys_origin,matrix_id,&csys_id);
' X! ]: o7 ^2 _
$ f' [) Z5 T# j+ ]2 o- UF_MODL_ask_bounding_box_aligned(objects[0],csys_id,expand,min_corner,directions,distances);
. o- z( \" e; x8 W- o x; T2 s: s - ! w) K6 M. z7 I }$ v/ u
- stock_size_string(distances,stock_class,stock_size);
( W$ X! i- v1 w; | -
N [3 ^, K* H9 Q) c% L - data.item_attr=UF_STYLER_VALUE; 8 g" B! u$ r5 t+ G
- data.item_id=ATT_EDT_MAT_DIM;
0 [/ y& G) M3 C! r7 _$ z3 t; t3 w - data.value.string=stock_size; ) s1 d+ O2 M0 e- Q$ s. N9 Q; r
-
/ B; k( E3 d/ g4 I, _2 B1 T6 @ - UF_STYLER_set_value(dialog_id,&data);+ ]5 g' o" e2 a1 `' Y
- UF_OBJ_delete_object(csys_id);
4 r5 t4 e1 M% B# H - }
. L" Q& L b. e' Z& B" z- W - ! J, e/ s' _' _
- UF_terminate ();
: Q! g7 _0 f2 i j - 9 A" P9 P+ c0 d$ z8 g4 m
- /* Callback acknowledged, do not terminate dialog */
+ h4 Q; r: d/ w# l/ Y$ O - return (UF_UI_CB_CONTINUE_DIALOG); ) i% f0 O( ?. K W7 g0 _) {7 F( i! B
- . P1 _0 f5 S( r( J
- /* or Callback acknowledged, terminate dialog. */
$ u4 w6 j$ z* }4 B8 [ - /* return ( UF_UI_CB_EXIT_DIALOG ); */
% D* N% c1 a8 ~0 E' z% P: U! M+ L( | - , I; c% ~" \1 F
- }
, e% ]9 P0 R. {0 d& R' o8 x
复制代码 |
|