|
- int ATT_EDT_CUSTOM_CAL ( int dialog_id,! e1 ]4 n( T$ v# P: P& @9 G
- void * client_data,
6 |9 E u. _! ]! h; `+ o - UF_STYLER_item_value_type_p_t callback_data)
, L. {: L1 t' n4 N; V; F2 G1 W; ~ - {4 w9 H9 _' t. A- S; E/ A' w# b' j
- UF_STYLER_item_value_type_t data;# N, Z+ c0 ?( }3 S+ n1 P9 W* L
- int stock_class=0;* Q8 z/ W k$ q+ V, j9 v" M( T
- int count=0;/ A6 a" O0 w# v% W! ^
- tag_p_t objects;
/ Y: j3 _! G) c! L0 B; n" j |& g - % m7 v( }+ b" v# p; S3 s
- //设置坐标系& D( z6 C; ?& {1 v% k6 v
- double csys_origin[3]={0.0,0.0,0.0}; S! h# R+ T( B9 L6 z( D
- tag_t matrix_id;2 d' m( M* T; ^ X
- tag_t csys_id ;
' J" D6 b+ C7 y - int option=15;& U" r, b" b; B% l
- double csys_matrix[9];) {" b. c {$ d1 X# \. j K
- char title[40]="定义临时坐标系";+ {) a' t( q. C- \
-
/ g2 W7 B8 Z$ {3 E
9 |* |8 X8 R. k0 U9 J3 F* C; C- //毛坯尺寸
( A4 E: u; a; x# I. }1 B$ I, L - char stock_size[256];2 P; p5 W7 j8 @* j3 g, R# ^ V' c
- ! q& ?9 r. u! K3 E7 Q
- //坐标对齐边界盒# X/ E. n6 l/ ?- i6 p, n& s
- logical expand=FALSE;
8 S4 n7 u3 f, p/ c - double min_corner[3];
% [0 B! P4 I4 p3 u. C) { - double directions[3][3]; . W' I) o2 P5 a; J: a1 ^
- double distances[3];
5 i) r1 c3 A- F# p, E
5 E- b" `& M$ e+ B# M- //坐标系定义对话框返回值
3 F0 R5 i) X: @4 j0 e |9 ]; v! a - int response;
$ ]3 F0 R8 q* ~' `) R0 p- h4 L$ N: u - 7 o; @1 V6 l: I1 K
* Q+ e1 c2 b, L- /* Make sure User Function is available. */ 9 f0 b, I% b! w8 w# H* s
- if ( UF_initialize() != 0) 2 o! Z5 {3 G; N- f# f+ s
- return ( UF_UI_CB_CONTINUE_DIALOG );
, _8 O* o9 I$ A& U - % ]9 r' S2 [* k ~2 O
- /* ---- Enter your callback code here ----- */* K, I/ g+ w# }6 p- s
- data.item_attr=UF_STYLER_SELECTION; ' ^' U$ g+ m( l5 N* ^* [! @9 R
- data.item_id=UF_STYLER_DIALOG_INDEX; O8 H2 M$ l) m; e/ U
- UF_STYLER_ask_value(dialog_id,&data); - o7 r) M" c' w! [) V
- UF_UI_ask_sel_object_list(data.value.selection,&count,&objects);# p( W# j. r6 i/ _( n N7 G; {
- 6 o6 f2 I- m# U$ e6 Y' j. J
- data.item_attr=UF_STYLER_VALUE;9 l; |# x/ D& l+ Z, A% z* ?# n
- data.item_id=ATT_EDT_STOCK_CLASS;
! F& } X, U3 @) ]9 L1 \ - UF_STYLER_ask_value(dialog_id,&data);( C. c! ~+ x$ o4 G
- stock_class=data.value.integer;
. } H6 [7 N$ `7 i: s2 X' s
/ u' c. A. p& r4 Q+ Z- uc1630(title,&option,csys_matrix,csys_origin);" b1 I/ E/ X: U- ~/ Y8 T
- 5 _: Q: [7 \* m3 r+ [( | _
- //定义坐标系5 k. t4 r8 f: m p) i1 |, ?( v) E; }! p
- if(0==stock_class); E: ]; `/ M( W
- {1 H% g& m- W0 Z, _
- uc1601("定义临时坐标系",0);% y! Y B% o- A9 E5 g9 _/ w [
- response=uc1630(title,&option,csys_matrix,csys_origin);; ^$ W9 ]4 ]1 \) j' L" W/ i
- }
; x/ L5 `! B& ], t# i' a
0 ~8 \+ S5 \+ T' u2 a2 l/ u- if(0==count||3!=response)+ M u# H4 e% U7 M* s* k
- {
1 t& f" `; b. \1 E - uc1601("请选择实体或定义坐标系",1);
$ [( J! v0 b1 @$ @& v" S7 H - } C6 I0 U, A2 ]! U8 G
- else if(3==response)
7 ]& [9 c1 T8 K6 Z - {
. B5 K+ j+ w5 T8 ~) ` - 8 C# u' ?3 W% l5 A5 j9 W/ r" n
- UF_CSYS_create_matrix(csys_matrix,&matrix_id);, ~+ c- R) E2 A) c
- UF_CSYS_create_csys(csys_origin,matrix_id,&csys_id);9 e4 q. C X+ A1 l3 ~4 g
- . V" A+ N8 B( K# H
- UF_MODL_ask_bounding_box_aligned(objects[0],csys_id,expand,min_corner,directions,distances);
/ t# s, k4 i2 s6 U. n - 9 c' q: v5 ^* W
- stock_size_string(distances,stock_class,stock_size);
. h5 m ~" V& w: [ - * s9 X. P! F7 p# i5 p4 ~1 p- H
- data.item_attr=UF_STYLER_VALUE;
: Q0 e# z0 |4 d6 |# l- q - data.item_id=ATT_EDT_MAT_DIM; : X2 e" t: | T% ]! `
- data.value.string=stock_size;
8 x4 z# R) ?: N. j1 k0 x - ' L; a2 c9 M3 p6 u3 y: Y
- UF_STYLER_set_value(dialog_id,&data);
7 x6 j ?: g" f5 O" L4 _" b - UF_OBJ_delete_object(csys_id);
# |: i: _3 m& f - } C% L2 f$ X$ O! d+ a( A' F, E
. H C2 T" O5 y) V: X) d9 R- w! r- UF_terminate ();
/ a: Y L3 k( a3 B3 v - ; T9 X" Y. l) l
- /* Callback acknowledged, do not terminate dialog */
' I i; @8 P/ V/ f Q - return (UF_UI_CB_CONTINUE_DIALOG);
* @6 J$ @: D' T* e" v. a, \9 G- z8 p - 2 D1 U0 R- \8 D) B6 L4 [) h9 K. f) k
- /* or Callback acknowledged, terminate dialog. */
+ w& e9 F& Q J# t$ @3 ~5 d - /* return ( UF_UI_CB_EXIT_DIALOG ); */
( j( E" g4 i2 z" f; Z - 6 E2 V- B2 p$ Q$ z+ j! @
- }
2 U$ O/ e w5 e& ^4 O3 z
复制代码 |
|