|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
/*********************************************************/+ a4 k" `2 `# j' B4 r
#include <stdio.h>
# n$ O8 Q3 {1 a6 g, S#include <stdlib.h>+ ~- A* `9 d, U
#include <uf.h>6 v1 u6 P2 Q: {7 R/ `8 g
#include <uf_attr.h>5 t' K1 c4 U' K$ G* q
#include <uf_cfi.h>
" @) J4 P9 ]8 f& d8 n4 S# u#include <uf_curve.h>3 _5 n) ]" |! u- g& Z8 F) H
#include <uf_ui.h>' ?$ L1 x# L3 P: s
#include <uf_modl.h>) M6 K$ @' _ E# ^& D
#include <uf_disp.h>
2 l' g3 J! n% H# L6 G#include <uf_obj.h>
6 [: h5 f9 L ~3 t#include <uf_csys.h>
; y- U o' J, R3 E T" b. a/ }! w; w y- w, x: O+ U) W% t
$ U0 i/ K5 K6 a& _3 I- V# Q/************* unload alloc mem *************************/
! b; D" J, W- Y. H% }6 p/* UF_UNLOAD_SEL_DIALOG _UG_TERMINATE _IMMEDIATELY */
- a3 W- \4 [- D. T9 D. U" N" H$ a& Q7 ]3 \/ O' N* @% c
static int init_proc(UF_UI_selection_p_t select,void* user_data)
9 u4 [4 ~" |% q3 x, S7 u{
) C7 _" }3 q/ c& H6 S3 X int num_triples = 1; //只选择一种类型
0 Z k9 H; E) `" y UF_UI_mask_t mask_triples[] = {UF_solid_type,0,0,};
' t: C6 `6 o. P2 d j3 @ if((UF_UI_set_sel_mask(select,
( C, b( A- O! b/ p UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,
2 ]7 K# C' X) `9 v/ j' V; w7 g num_triples, mask_triples)) == 0), {, `$ m; ?7 q
{, Z5 e; C. V" ^2 d
return (UF_UI_SEL_SUCCESS);
7 U0 C4 R' T! F5 E* J& j }4 l* u; r5 j. \' f
else# n8 }3 _/ D/ B$ V% p
{- a: x0 {0 x& C
return (UF_UI_SEL_FAILURE);+ J5 h4 ^; i" d5 u+ h
}
. I% ?# n0 `' Q) @}6 n" ^8 x8 P3 Y* `
- {+ H! i& D. i4 l% _- W( v0 q" k
$ ^- y6 m; `& u3 T( bextern void ufusr( char *param, int *reTCod, int param_len )
0 V) a/ Z0 l. T{
* F8 F/ n+ O2 n) J3 f' F t* } UF_initialize();
$ i0 K1 p0 `( d: k
# R* A( ?* m2 G# b 0 t; p2 q! l$ i D. p8 R5 V4 e
char cue[] = "简简单单:请选择单个体";8 o9 ~! _7 K7 Q3 q2 g# v. P3 o
char title[] = "简简单单:请选择单个体";
9 q* S" t7 t3 A4 \, v e8 i- C int response=0;
; ?5 f9 ~& C n6 F! @6 z) b9 {& S2 s tag_t object;7 ^# x/ B+ g7 T. v5 ?# j& G
int count=0;
1 T+ c$ L4 i5 \( d( m double cursor[3];
( z9 `9 P; j+ q* C4 P tag_t view;
8 _9 x- G7 S Y/ ? int i=0;4 ^" e' I' O( i( d. S& h
double pt[3]={0,0,0};! M9 h$ j1 d( c N* w+ I# ]
double z1[3]={0,0,1};2 T; B: B, r0 T
UF_OBJ_translucency_t cyt=0;
/ i9 v0 a. y4 O6 o/ KL10:
7 v% L" f6 J2 X* o) ]0 V+ _ UF_UI_select_with_single_dialog(cue,title,0,init_proc, NULL,&response,&object,cursor,&view);4 |2 s" T, t' T0 E% T* j& B4 u( X$ T
if(response==UF_UI_BACK) goto L10; //如果点后退就跳转到L10% l. I0 a8 m% U& ]$ p
if(response==UF_UI_CANCEL) return; //如果点取消就退出% t2 X' }1 m. w y: Z
+ c6 ^, M2 o( T* Q/ e
UF_DISP_set_highlight(object,0); //取消高亮显示( ^8 j5 k$ T6 s0 l1 I
tag_t csys_tag;
5 B9 ?) O$ e3 I; u% m+ L double min_corner [ 3 ] ;
8 d9 a; D x; V3 G5 G$ j& U double directions [ 3 ] [ 3 ] ; / @! v0 I! N- M. ^
double distances [ 3 ] ;
4 s' e# K+ W! B9 I! x! b2 [& j UF_CSYS_ask_wcs(&csys_tag);0 f7 ]4 j, o7 `: l5 U5 M3 ?
UF_MODL_ask_bounding_box_exact(object,csys_tag,min_corner,directions,distances);/ g% e) K1 L) X& m& I; h# r1 f
' D: |. _; T' \) H
char mesg_x[256];5 w5 B/ W+ o' W# l' R2 ]
sprintf(mesg_x,"%f",distances[0]);
7 k3 k# X; d9 e, H % ~ z2 f6 a2 `( L
char mesg_y[256];
2 {1 J8 I4 }( i) x- c' F& Z/ f sprintf(mesg_y,"%f",distances[1]);1 y' y" o4 V) t- Q
0 _5 B# l$ M8 I" q3 P
char mesg_z[256];
1 s }! E0 X$ _$ i- h( B sprintf(mesg_z,"%f",distances[2]);+ C' ]) y- q; H. g
. M( [1 g2 S1 b7 E
char *edge[3] = {mesg_x,mesg_y,mesg_z};
" N5 p! Q6 D9 \* ~8 T; k0 y tag_t blk_tag;4 O, P5 Y- A9 k- M5 g2 c
UF_MODL_create_block1(UF_NULLSIGN,min_corner,edge,&blk_tag);
$ U$ }1 `/ {) a, Y/ T% {5 l
0 K: t- J/ N: Y2 |% k0 ?" R UF_MODL_ask_feat_body(blk_tag,&blk_tag);
! ?- O; |( r! @- a4 F9 w UF_OBJ_set_translucency(blk_tag,100); //设置透明
$ k8 h7 N0 z& e5 q+ R' Y UF_OBJ_set_line_width(blk_tag,UF_OBJ_WIDTH_5 ); //设置线宽7 @+ h% k! V( I' U
UF_OBJ_set_font(blk_tag,UF_OBJ_FONT_CENTERLINE); //设置线型, D. @! z4 Z, y$ c2 B
w& C1 s9 ^8 Z: L1 D" j# V7 G
/* uf_list_p_t ll;# N2 [# u% t7 ?1 N0 a8 W* n/ A
UF_MODL_create_list(&ll);5 a1 [& c: F: s: H4 b
UF_MODL_ask_body_edges(blk_tag,&ll);1 _5 l0 S. y4 D" o! p
int ww;$ c4 i& `+ z1 I: J6 a+ }; i
UF_MODL_ask_list_count(ll,&ww);2 C4 l( h4 t- |/ a$ q6 d1 V
for (int i=0;i<ww;i++)
1 ~/ J" |$ m' B, }4 {( t) ]6 F {
; E' x8 C4 w2 q ? tag_t yy,curve1;
9 N, \7 b; V2 W9 E) h UF_MODL_ask_list_item(ll,i,&yy);
$ K9 u* d/ t$ o# K UF_MODL_create_curve_from_edge(yy,&curve1); //抽取曲线
# h: G s9 k5 b" e$ r, Z* Y }*/
4 ?) H+ ~# S* ]' B7 K3 e/ A$ e char box[256];( U1 E: G @3 I: Y. h2 o
sprintf(box,"简简单单:对象尺寸(X-Y-Z):*%.2f X %.2f X %.2f",distances[0],distances[1],distances[2]);" b* W: q' b7 O2 y+ H6 E, s
uc1601(box,1);
; _8 y. U8 t* a" H. O6 ~4 j, Q8 X3 U) y
goto L10; //透明之后继续回到选择的状态$ s; y9 [- O0 i! X" s5 w
" }$ Z! G$ g' P) Z& h% {; w , c6 I7 R9 G7 `2 F
" w( ]3 q G3 w6 F3 ?' T, f
7 z( R2 F; {" e; N8 n' ?$ S4 n
3 k1 v0 k! U* Y+ L7 X% ]
UF_terminate();
6 I9 v+ ^4 U: F- N) B+ u& R W. W return;2 o* q: K4 o& V* n$ {
}
; \, _) _, k& Y1 J# B4 ^
& X( j8 a8 I3 ], g5 l+ u& q
$ F" s- }6 ]- G9 l8 i/ m4 qextern int ufusr_ask_unload()( h j% ]* f6 E7 t$ c8 h, K
{
% b. F( E4 y4 e: E& ~# | return UF_UNLOAD_IMMEDIATELY;1 G7 p- C) V0 h6 Y0 R9 Q0 b
}+ a' r5 B: y4 ]3 A% ^. i) `
/ T8 D H6 o8 V% j/ q q
|
-
-
评分
-
查看全部评分
|