|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
/*********************************************************/
/ J& V1 U+ j4 J#include <stdio.h>% z, j' @ W& [" h) }
#include <stdlib.h>2 M! G) A- E& U0 j4 A) [- T
#include <uf.h>; Y7 s/ i; \8 A+ {) n1 K% i
#include <uf_attr.h>
! ?8 a. \: g( E8 K#include <uf_cfi.h>0 `& G8 L% S' _: w. l8 Q
#include <uf_curve.h>
/ D) N; j! i, w2 T7 @! P( A( h#include <uf_ui.h>, v6 R& P7 S1 ^
#include <uf_modl.h>
! P; x% V% G" l% x! r0 f0 _#include <uf_disp.h>0 O' T7 P! \7 G2 e9 B9 |- q, S
#include <uf_obj.h>8 r* [: F- A; d& P
#include <uf_csys.h>, Y) A6 |! k& ?- z% o6 Q0 [
% m9 Q5 T2 W4 m3 _9 I9 `4 k& p* l" J+ x& \
/************* unload alloc mem *************************/
4 G7 o! L* J% h' V/* UF_UNLOAD_SEL_DIALOG _UG_TERMINATE _IMMEDIATELY *// P8 O( @9 V6 I i
3 v6 e q# O( M6 y& I! d8 Q1 I
static int init_proc(UF_UI_selection_p_t select,void* user_data)
+ \. ^1 T/ H8 I. T" V. d- A# p{: k1 W$ @9 ^. r# ^
int num_triples = 1; //只选择一种类型
+ D# p* u6 N& ~! _ UF_UI_mask_t mask_triples[] = {UF_solid_type,0,0,};
0 y1 o6 g& b& F% J if((UF_UI_set_sel_mask(select,+ g0 `6 q3 [2 i4 Z. D; u
UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,% N6 _2 _$ S& y0 U, \
num_triples, mask_triples)) == 0)
0 Q) L2 f! K, m2 Q" j1 T6 r {; s, o3 L4 H! B1 {7 }
return (UF_UI_SEL_SUCCESS);
0 X j0 c, y+ H5 x c+ ~0 X& o* [ }
3 ~+ H& P2 ?) a) V1 s! I5 b; E$ k3 e else4 B8 D: l- E7 m& I
{6 X* z$ l6 G/ o9 T: s p
return (UF_UI_SEL_FAILURE);. g! |" t6 _7 L$ B
}2 J6 C1 [; r" g4 F- U3 s( ?
}; O" ^; l, ?# r) g. [
7 T8 D& ?0 i- j7 P+ h8 W3 e
U0 y0 y' W/ k9 R( j
extern void ufusr( char *param, int *reTCod, int param_len ) 7 M- @0 Y/ u2 \. ]- N! f, R
{; N2 U4 F B: _* ]
UF_initialize();6 m' m6 s4 Y. M$ g. G$ \
( B5 G5 P r% j' r
3 _, V+ ?* g! C! W( o char cue[] = "简简单单:请选择单个体";7 X& @; j8 O6 H- f; s
char title[] = "简简单单:请选择单个体";' }, D# O+ P; r L J9 C+ A d
int response=0;
1 S4 q8 N3 t" h! x0 F9 H tag_t object;1 N/ X6 O! A* Z) ?2 X: d
int count=0;
* [) f2 r" d5 a double cursor[3];
) N1 @1 d K! m2 ] tag_t view;2 U6 S2 A/ a+ d- m9 l# X: D
int i=0;/ h: f8 S4 q d, {+ A& L" @
double pt[3]={0,0,0};8 n$ B/ I# b* V+ l
double z1[3]={0,0,1};: }' v' \ p1 j$ b( f3 r
UF_OBJ_translucency_t cyt=0;% `, M! A1 h% a2 E o
L10:
^. [8 t# _1 k" O4 c UF_UI_select_with_single_dialog(cue,title,0,init_proc, NULL,&response,&object,cursor,&view);% g7 T: l( D5 |- S: w+ L. M
if(response==UF_UI_BACK) goto L10; //如果点后退就跳转到L10
5 w6 w8 M6 W7 ~! E% t5 s9 I if(response==UF_UI_CANCEL) return; //如果点取消就退出
$ ~% Z* R5 l. c" S; Q4 c
4 A+ R1 ^4 A p/ ^: s, G0 z UF_DISP_set_highlight(object,0); //取消高亮显示
6 Y* M! v; o0 E9 a P6 A( ~ tag_t csys_tag;
$ c" y2 W1 m d double min_corner [ 3 ] ;
5 _" K$ O1 y: E0 x double directions [ 3 ] [ 3 ] ;
8 [" t: E! y: P" n0 t$ B double distances [ 3 ] ;
' l& j+ c" P+ ^% D6 r0 N. s UF_CSYS_ask_wcs(&csys_tag);8 \( q9 I1 {' d& R" [; ~$ T
UF_MODL_ask_bounding_box_exact(object,csys_tag,min_corner,directions,distances);
4 F( M+ V3 a: m% X2 y. Y) t
5 u3 y( v. O3 F( x' E9 _! v char mesg_x[256];5 x( d" M/ c. ]/ i2 m0 [ e
sprintf(mesg_x,"%f",distances[0]);
# I; C( O2 L' }7 x* g6 l% K1 n
& X4 B3 j2 b2 u& T1 p; ` char mesg_y[256];
% z/ J' W X6 p+ ?% C sprintf(mesg_y,"%f",distances[1]);8 n- V. Z8 Q- j F( B
. Y+ ?" z/ V3 b7 H3 [* I* k4 H char mesg_z[256];. @$ W' ]* _0 v
sprintf(mesg_z,"%f",distances[2]);
% |/ H* Z# u8 e7 q 8 v" u$ B" E, r5 P9 A) f1 N
char *edge[3] = {mesg_x,mesg_y,mesg_z};
2 r \3 n/ G; h tag_t blk_tag;. [. t( a" ?. d- E9 Q/ {
UF_MODL_create_block1(UF_NULLSIGN,min_corner,edge,&blk_tag);8 ^9 q' g$ T* Q6 |* h# L
6 M* `/ P3 H7 o" e UF_MODL_ask_feat_body(blk_tag,&blk_tag);5 y% ?( Q+ z/ f+ T0 W3 @
UF_OBJ_set_translucency(blk_tag,100); //设置透明
( }" G: }) H8 Z5 _ UF_OBJ_set_line_width(blk_tag,UF_OBJ_WIDTH_5 ); //设置线宽
/ N" z4 v+ m: y7 m$ | UF_OBJ_set_font(blk_tag,UF_OBJ_FONT_CENTERLINE); //设置线型
, ~ Y$ Z" m) E! R+ T# ]) f/ t, B ~4 F: L& [& G
/* uf_list_p_t ll;0 i, O+ ?9 L0 ~
UF_MODL_create_list(&ll);
2 S2 E# o+ D: X. L" z5 V UF_MODL_ask_body_edges(blk_tag,&ll);2 }6 m: q4 R+ ] P2 _3 e
int ww;
/ W* Q0 Z" P' H1 |$ x7 }& ?0 c- }" N UF_MODL_ask_list_count(ll,&ww);) N. ~3 u- R" Z! s$ j* Z3 p
for (int i=0;i<ww;i++)7 }! {6 G4 Q- r+ b' T" Q7 f
{* V. X# w1 g! T( z; t% S
tag_t yy,curve1; % h2 a3 j& b8 S
UF_MODL_ask_list_item(ll,i,&yy);
' M8 i5 s: W+ m+ C! k UF_MODL_create_curve_from_edge(yy,&curve1); //抽取曲线
4 U" c f5 g7 a$ u) }' \ }*/% x& ~) ?* H6 Y
char box[256];
3 \- `+ ^( J: H1 o5 x sprintf(box,"简简单单:对象尺寸(X-Y-Z):*%.2f X %.2f X %.2f",distances[0],distances[1],distances[2]);' z1 o* H' ]" I' `% [" N
uc1601(box,1);. @: H3 w2 r# u9 c R2 t% c: H) x
- t% `/ V' _/ p! E, n" n goto L10; //透明之后继续回到选择的状态, P5 f- S* f. V; i( I) ?# h
" c2 l7 H) g; J/ _
0 i' X/ i& G$ N2 [" S. b% i- f: s/ M: u
) p+ ~+ n3 ?3 l4 b
7 J- a4 f1 K7 v( ^" K UF_terminate();
C1 |" H' a: o" o' a return;4 N9 ~7 w) J" Q2 x
}
o8 Z, Y; B# j9 c1 t* J$ R2 E! P! m+ N1 L
& o. z* ^- \. _0 U h. E
extern int ufusr_ask_unload()1 |& Z- ~+ ~- I9 Y" D3 L1 w9 k1 E
{! P$ I7 V0 Q- r" G
return UF_UNLOAD_IMMEDIATELY;
5 ]( r; d7 X/ G}
/ ]0 W7 H& W2 i d; h! s5 o) Z2 D4 H+ Q# o3 [. |
|
-
-
评分
-
查看全部评分
|