|
|
楼主 |
发表于 2015-5-6 17:35:40
|
显示全部楼层
- int ATT_EDT_CUSTOM_CAL ( int dialog_id,
4 R$ V/ e8 o" P0 n& m4 U - void * client_data,( f, y( Y" c) o6 i) D; j
- UF_STYLER_item_value_type_p_t callback_data); i( z* O1 i! U; o
- {
4 P+ q4 s* j/ m0 G4 R - UF_STYLER_item_value_type_t data;8 a2 [6 O+ v4 U" V% y* W
- int stock_class=0;
/ R2 U3 T: }$ _, M# @ - int count=0; Q2 |- x3 S) s0 Z( `
- tag_p_t objects;
0 F# A+ q; l$ X0 ] - , g# \* B" p8 \" |" {
- //设置坐标系
/ X8 r+ g+ d, p& q6 A' X - double csys_origin[3]={0.0,0.0,0.0};6 _* k! a# s" G
- tag_t matrix_id;
0 V3 q$ ^# ?% G8 ~/ |1 R" a - tag_t csys_id ;
, [2 l% ?0 l3 u/ T$ v& M: q - int option=15;
* s$ [- E6 D' Q: ? - double csys_matrix[9];7 i5 r! i E1 Q
- char title[40]="定义临时坐标系";, D" y6 e' a0 q0 Q
- ( r( t& S5 K3 ~
' \& \' |6 |6 c5 `- //毛坯尺寸
3 l% e: L9 N* k+ I" B6 ?6 s0 H - char stock_size[256];
. H, r3 P; V. T! q6 g' ` - ' ^: A( T% ?; B) ]1 Y; z* R; H
- //坐标对齐边界盒# H: o! S/ z+ B! W% ]# {
- logical expand=FALSE; 0 F4 S6 t5 W ~5 u! g
- double min_corner[3];
1 Q. t9 E1 l8 \6 I* W - double directions[3][3]; c# c) ^6 T9 o6 t2 H v
- double distances[3];
1 W5 h" O; u5 S' { e
; z- |# ~; q8 s) p2 j- //坐标系定义对话框返回值
3 W- o" h# L# K. d - int response; T" a$ S e3 I) T* ~" ^
! q( I5 C# x4 l( `8 {& L1 k, x- 6 s; \: `9 p2 Z
- /* Make sure User Function is available. */ / l U# T% c5 J$ `( B$ O
- if ( UF_initialize() != 0) ) `# ] |8 H7 z: \2 W7 m$ L
- return ( UF_UI_CB_CONTINUE_DIALOG );# F, Z# @% T* j7 y y {. j9 D$ A
- $ W* M4 q! [( c, {' l
- /* ---- Enter your callback code here ----- */! S' Z! Z! e3 v+ F
- data.item_attr=UF_STYLER_SELECTION;
% F" ?: N! q0 X( n& O: W* a9 { - data.item_id=UF_STYLER_DIALOG_INDEX; 0 w0 \ P6 \0 s7 B3 I
- UF_STYLER_ask_value(dialog_id,&data); t5 s( p1 F; Z4 G! X! c
- UF_UI_ask_sel_object_list(data.value.selection,&count,&objects);
/ T& f: \7 E+ \8 ~1 O7 K5 |
5 }" v- Z0 x+ X6 N& y4 s$ h- data.item_attr=UF_STYLER_VALUE;
+ H0 O8 |6 z* t: p' T4 _4 X. f - data.item_id=ATT_EDT_STOCK_CLASS;; ~' X& W% A- R. s
- UF_STYLER_ask_value(dialog_id,&data);+ p7 [+ ?' |, T* ^" D' L) B p
- stock_class=data.value.integer;# o! ` m; }9 `* h' o5 {3 j
5 W7 ~2 G, z+ g9 @- uc1630(title,&option,csys_matrix,csys_origin);
4 S5 F& C6 e @8 U7 v8 x - ! ^7 d1 C0 s$ J$ [3 x8 \+ c) H6 e6 ^
- //定义坐标系: S B7 a% z. u; i ?' p
- if(0==stock_class)
, c4 |' k# n) P/ }4 Y$ K3 N+ ~ - {/ V+ U9 c R! P9 i( ^8 S
- uc1601("定义临时坐标系",0);5 V* ^7 W( ~- W1 t0 f
- response=uc1630(title,&option,csys_matrix,csys_origin);) _- J" E: P0 V, w+ v2 l7 p0 b7 a3 P
- }
( a, \ T+ w! j - ' R1 w, |" v* T3 M3 F7 [$ c
- if(0==count||3!=response)' n8 l4 l5 j2 u; y
- {
" a3 x; L6 |! o& a+ {: t% K) L - uc1601("请选择实体或定义坐标系",1);! X# ]8 P( w; ~
- }
# G. H u% Q( z$ j1 I: j2 e - else if(3==response)
8 k" Q5 U9 T0 B+ _4 p - {
- p5 L, i0 Q# J- R+ b$ } - " c6 o/ F6 d7 { ]) \) N
- UF_CSYS_create_matrix(csys_matrix,&matrix_id);
* S2 N/ ]: X5 w$ G* d - UF_CSYS_create_csys(csys_origin,matrix_id,&csys_id);
9 \4 d) @( P" @ A* e# k# ~: l# J
. R' j& Z( g' D7 ~2 e- UF_MODL_ask_bounding_box_aligned(objects[0],csys_id,expand,min_corner,directions,distances);9 F% M7 f/ Q2 }$ U- H9 z7 G" h. S/ S
- ' G! j3 M3 R+ l; K
- stock_size_string(distances,stock_class,stock_size);
W" P/ O& C4 F/ v1 H6 h7 N - % {& v0 c+ s' E' b, m/ ?& P; c( V
- data.item_attr=UF_STYLER_VALUE; 1 V; [ ?' I6 B6 I
- data.item_id=ATT_EDT_MAT_DIM;
( f6 ~8 N( v @/ G, H - data.value.string=stock_size; " i, K1 k" A, `, i
- 4 L8 o0 [* r5 Q1 v! [3 \5 U# k
- UF_STYLER_set_value(dialog_id,&data);# q2 v \1 i) ^3 @) T
- UF_OBJ_delete_object(csys_id);* `5 ~! [3 \! Z, I- |+ m! l
- }
* A/ U/ v1 G* h8 a2 {+ i
9 y# d5 g; H, |' P( u% P1 F- UF_terminate ();9 b. W. H2 E! f! |; p
/ m8 Z H- }$ S4 F0 e" H3 c- /* Callback acknowledged, do not terminate dialog */9 J) Z. R3 D- p" @ }
- return (UF_UI_CB_CONTINUE_DIALOG);
, P, h6 c9 Y$ L. M# Q3 @ - ; Q. B9 u% N* e" h0 H5 ^
- /* or Callback acknowledged, terminate dialog. */
9 F) F o; O% W) {8 A1 M& V - /* return ( UF_UI_CB_EXIT_DIALOG ); */
- T* s" i$ E8 v
( {5 \0 s' {9 h# ~; ]7 ~- }
2 | o- K! u8 M, P
复制代码 |
|