|
|
- int ATT_EDT_CUSTOM_CAL ( int dialog_id,+ o" ]- k3 U7 d) S9 w2 b& T
- void * client_data,# A. b1 x% a/ W! L; ~; W
- UF_STYLER_item_value_type_p_t callback_data)" Y' {7 K4 Y, N9 K0 I% N0 G: t
- {
. e0 b+ L' z. l( p4 \2 } - UF_STYLER_item_value_type_t data;; a1 w" Z* O% h a
- int stock_class=0; [0 Y) B$ s! h A/ f. @6 ?* h
- int count=0;3 j0 T6 u5 }2 x7 z8 S8 w! K2 G/ ^
- tag_p_t objects;, Y) ?- `' p* l' I
- 8 ]& w R1 }! `/ a' A
- //设置坐标系
/ j& g b4 t f% m' p4 k( a - double csys_origin[3]={0.0,0.0,0.0};, | `8 j6 U6 T8 [! G% H
- tag_t matrix_id;* i' ]0 g$ ]" h( y5 |0 g
- tag_t csys_id ;
' k! m: H$ n0 ^" } - int option=15;
* U& i, j/ r( l7 @ K4 f7 b - double csys_matrix[9];# p, @, Y8 C7 s! ?0 T4 \' C
- char title[40]="定义临时坐标系";
* q; e% R& v" {9 B3 K0 g -
+ k0 K/ H" b# u) s3 B
. T4 R) L/ R. P( F- A- //毛坯尺寸
- D' b. U1 m7 z7 S - char stock_size[256];
, V6 k5 N4 B2 d
% H' y" L( D0 s2 h- //坐标对齐边界盒
. i O; t- T6 ?' J, D2 D4 C - logical expand=FALSE;
l' w7 T% Z) J6 J- X# o/ N: o( N - double min_corner[3];
( X+ P8 i: K8 B& _ - double directions[3][3];
! Z$ D9 x7 ~* P- F, c# \, e8 e+ d) o - double distances[3];
" I, N/ X' [6 H" p! q4 z- L9 s - ; ~6 a& M+ E$ M- x! }, B0 p
- //坐标系定义对话框返回值3 I9 i% c) Q6 C/ t- p5 [
- int response;& X g( @2 @5 ?* q
- ( M( P2 g' ?2 ?5 e2 u
8 Y& M- ]! Q- W2 Z' `9 K6 j- /* Make sure User Function is available. */ $ O. \& B9 a* j9 r
- if ( UF_initialize() != 0) $ x3 C- x1 b6 U( D9 @- m
- return ( UF_UI_CB_CONTINUE_DIALOG );
' |; O/ F( P/ a8 L( ] - 2 `( F8 O! U4 n( g. q( J
- /* ---- Enter your callback code here ----- */2 t; C% ~- }( Z- ^ |! m
- data.item_attr=UF_STYLER_SELECTION; 6 d) E. u, B2 O* W# j! I
- data.item_id=UF_STYLER_DIALOG_INDEX; 3 H/ L8 V7 R+ B& }1 Z% }: S
- UF_STYLER_ask_value(dialog_id,&data); ! ^& Z1 M1 B% r; j) Y1 H
- UF_UI_ask_sel_object_list(data.value.selection,&count,&objects);$ j0 N% _$ X8 q O$ R0 p; t
- 5 O+ t v. ]+ |$ D. c- C
- data.item_attr=UF_STYLER_VALUE;
I/ B. \- a0 B3 q8 }- I - data.item_id=ATT_EDT_STOCK_CLASS;
% L8 m# J8 c/ c& `1 V' |1 ]* @+ t - UF_STYLER_ask_value(dialog_id,&data);
6 b, n* w3 ^* k6 @" } - stock_class=data.value.integer;
9 }+ c' P$ K3 F* F* R
, A% w# `: @& {) N2 I A, M- uc1630(title,&option,csys_matrix,csys_origin);6 ~4 _+ G; Z2 O5 ?% r) ]0 b# {. o$ i* a
* x/ c9 V2 ~6 U2 X+ H: Y- //定义坐标系
$ _9 _" W' r- |0 o7 F; u - if(0==stock_class)
" h- Y3 d& D: Y2 s3 ?) j, _ - {
2 {9 m0 R4 A2 C9 w2 t - uc1601("定义临时坐标系",0);7 d5 R6 c3 a4 ]" l
- response=uc1630(title,&option,csys_matrix,csys_origin);
& F# f( v D, g2 X1 y - }
7 T0 N X& @( n1 k/ W/ `
7 I# s* _( |# k) J6 m/ z$ z- if(0==count||3!=response)! t& i2 `4 n d9 V9 g1 p
- {
5 W1 L. h$ x- l% o, Q; h - uc1601("请选择实体或定义坐标系",1);
4 J- V' ?$ @9 l2 W - }4 V( ~# r8 d7 J s: H% H( a v
- else if(3==response)
/ [: j& h I7 ? J0 K: h, { - {
6 }* m( Z' ^* V) x
6 ^7 c8 q4 S) {: Y7 U( S- UF_CSYS_create_matrix(csys_matrix,&matrix_id);& E7 k0 G% O6 c$ x$ |2 M2 F4 g
- UF_CSYS_create_csys(csys_origin,matrix_id,&csys_id);
+ h7 f4 k9 m" A1 i0 `
4 f9 G; z8 F. z/ N- UF_MODL_ask_bounding_box_aligned(objects[0],csys_id,expand,min_corner,directions,distances);
0 v3 \1 r7 N# {+ B0 a
J* \" J2 v& E+ I- w- stock_size_string(distances,stock_class,stock_size);5 A5 R7 E, k1 m% Y/ B; V, K2 }3 a1 L
-
8 K' X: S) K I2 l/ P' C* k0 Q - data.item_attr=UF_STYLER_VALUE; ' ^ i9 z% n' ~: Y/ }. r
- data.item_id=ATT_EDT_MAT_DIM; $ E/ m( a+ E, S1 e6 u8 G
- data.value.string=stock_size;
. W/ L8 d7 q# L: `8 [7 t2 H" S, j8 r - 5 O% E: o0 V$ G; h: @: U: v
- UF_STYLER_set_value(dialog_id,&data);
& v% ]8 h, T: t8 L - UF_OBJ_delete_object(csys_id);. p; [& A+ L! z' D1 ~% @% c
- }
4 c5 |% r. C# X( [
% d6 @+ m* ?( |, {- UF_terminate ();
! g; P( A9 a! s - 7 V5 s: q7 G* H+ F0 P
- /* Callback acknowledged, do not terminate dialog */
8 d: [( p9 G2 @( ~# h - return (UF_UI_CB_CONTINUE_DIALOG);
4 x: u/ k. }+ l7 a -
5 g9 C' U9 A: k- u# r" \ - /* or Callback acknowledged, terminate dialog. */
o, @- z6 R5 \0 a: ]9 F" L - /* return ( UF_UI_CB_EXIT_DIALOG ); */
* o% {7 |! B/ S4 c5 R7 D
& ~( e* V+ ]0 u" E' \8 a; P- }$ O: g& m' D# a8 p9 p8 b
复制代码 |
|