|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
/*********************************************************/
* |& H3 p; o/ h$ e6 x#include <stdio.h>
) y* C$ k: A2 A& I. n$ h# k( W5 r/ G#include <stdlib.h>3 c J, L) [5 p1 H `( @( j1 I; D
#include <uf.h>) `$ k# i% U/ S- `, S1 v1 [+ w+ R1 Q
#include <uf_attr.h>% h: t; }9 T5 X! c+ a$ H
#include <uf_cfi.h>* ^7 e: d, b0 q5 n3 y
#include <uf_curve.h>3 c* p3 R* @! ]
#include <uf_ui.h>. e. e6 k2 I, R9 |
#include <uf_modl.h># k% p4 G2 u' n5 n5 G9 T* m. e
#include <uf_disp.h>
! w5 ^8 J+ Y% c' J6 I/ l0 E# w#include <uf_obj.h>1 n2 T& l$ i$ ~: V+ h6 z" n
#include <uf_csys.h>
& Q& ?6 v; s9 q, N) K' _7 L8 R; C
) n' [: G. r9 p
/************* unload alloc mem *************************/% E: O) |4 d- K4 I
/* UF_UNLOAD_SEL_DIALOG _UG_TERMINATE _IMMEDIATELY */1 c3 m; D" b" T+ A" x; O! e0 H
" t. Q9 W' i4 @( \$ x' ]! R; `static int init_proc(UF_UI_selection_p_t select,void* user_data)
, ~- c' u: h0 n5 ]# j- {- c% |( K- N{: N F( c8 m7 U& W9 \4 C) v
int num_triples = 1; //只选择一种类型, m9 t- ?/ B* \6 \! O# K
UF_UI_mask_t mask_triples[] = {UF_solid_type,0,0,};
1 @) ]% p2 `$ Q* B. f if((UF_UI_set_sel_mask(select,( k" m, T( a- M: e* o
UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,; ]0 r# |$ D ?/ t m: a8 v
num_triples, mask_triples)) == 0)" c* \4 O1 a/ Z0 _
{
/ t# w" F; O% M/ W- v; q2 h- E return (UF_UI_SEL_SUCCESS);5 [7 ]1 r8 ^& h
}
! @( A2 H6 u0 F f else
4 y" ] j& _* K9 Q: ~/ C {
0 o/ B6 W/ R+ _6 h$ v' s return (UF_UI_SEL_FAILURE);0 O( D% \* ?. v& e1 ], f. C
}
5 {; W, G3 [" b8 l2 I% M* e3 e}
2 Q. |- _& D) o" [; y
/ @2 r0 x- z- u0 Q
2 k% G p9 r& ?* T; N; ]extern void ufusr( char *param, int *reTCod, int param_len ) 3 L( m# F/ p; B; f) F& e1 B
{* C3 q) s; Q5 d% M) w
UF_initialize();3 \) Y& C, \( p6 q
$ f% d. `) G" y+ h
1 M. S% N0 V4 l+ V) } `! o1 _
char cue[] = "简简单单:请选择单个体";
+ Z$ ?3 G$ O5 x6 z3 }7 H! S char title[] = "简简单单:请选择单个体";; s& c" A% e0 O, q
int response=0;
; N; L8 d3 t9 Y, g# i4 j/ D; l( W9 w: r tag_t object;% _; z, }# [# f5 b
int count=0;
% n; u5 h9 Z5 k" u double cursor[3];1 x" [8 |/ B4 I. m7 C5 E% @0 D+ d4 j
tag_t view;! U8 T& Z, _* v! |% M
int i=0;
: ^5 M" [/ Y% {- I+ j! G# X double pt[3]={0,0,0};
; O& a A# n: b& K, I; F double z1[3]={0,0,1};/ [; W2 W1 @3 Z) h
UF_OBJ_translucency_t cyt=0;
- k8 e* t, o- D- O0 M3 xL10:" P* P' w9 o/ M( }" |$ U o. o
UF_UI_select_with_single_dialog(cue,title,0,init_proc, NULL,&response,&object,cursor,&view);% O# {- {1 `( n0 Y) q! _& g" @
if(response==UF_UI_BACK) goto L10; //如果点后退就跳转到L10% Q+ s2 e1 V( a8 s, R
if(response==UF_UI_CANCEL) return; //如果点取消就退出* O3 v! `' Q3 z) D
! L: S, @9 ?2 {% W( H, P6 Y
UF_DISP_set_highlight(object,0); //取消高亮显示
+ P; d% M m6 c tag_t csys_tag; 6 o9 J9 j F* U; O. l+ j/ O
double min_corner [ 3 ] ; 5 g8 U. `- q. H8 ^( ~3 o
double directions [ 3 ] [ 3 ] ;
$ `2 k) D1 {5 o- B" ` _ double distances [ 3 ] ;* G$ W, [2 V$ |; F+ L( Y9 ]
UF_CSYS_ask_wcs(&csys_tag);
; i2 k! v9 S6 H9 x. U: I4 t4 C UF_MODL_ask_bounding_box_exact(object,csys_tag,min_corner,directions,distances);3 L& S0 k& P2 d& S0 F/ L
7 {2 W2 |7 [+ A9 R+ p
char mesg_x[256];" v1 e& R* Z; b1 l& S: {* x" z0 y
sprintf(mesg_x,"%f",distances[0]);
. ]9 c4 W9 ^. c+ U$ y8 Z : G* h# y9 H$ r0 h/ ?
char mesg_y[256];7 B7 L( ?7 L: d* \
sprintf(mesg_y,"%f",distances[1]);2 c' H# ?1 v8 Z+ ?7 q, t+ W, h$ _
7 `+ S" I! i1 b& V4 S, {+ N char mesg_z[256];
0 }! p k5 |( x& A9 l: | sprintf(mesg_z,"%f",distances[2]);4 x4 C' f! B {: w
& v I- D% N) ?+ O$ w! r
char *edge[3] = {mesg_x,mesg_y,mesg_z};
, w+ f1 o# x+ N) O# v tag_t blk_tag;
$ H" ]( f! w( t# Y0 g# A" g2 A8 l UF_MODL_create_block1(UF_NULLSIGN,min_corner,edge,&blk_tag);2 V+ @# L# \4 D8 S" W/ M2 q
! F; W1 t7 U6 G UF_MODL_ask_feat_body(blk_tag,&blk_tag);
+ Y1 `8 @! w9 R UF_OBJ_set_translucency(blk_tag,100); //设置透明
: ^# K" N- d: v" r; d+ e3 U UF_OBJ_set_line_width(blk_tag,UF_OBJ_WIDTH_5 ); //设置线宽' }6 b V ^% D! e5 f
UF_OBJ_set_font(blk_tag,UF_OBJ_FONT_CENTERLINE); //设置线型
( m I3 y7 v# j% H& f. d
0 N1 F/ {5 Q$ ?( A: ^( ~3 `/* uf_list_p_t ll;6 A7 I ?, m" N6 W+ ^: M, v! `- b
UF_MODL_create_list(&ll);- \7 Z* B1 e8 B( }& H, N, \
UF_MODL_ask_body_edges(blk_tag,&ll);
' }8 E6 I$ m; V int ww;4 [, ]. y0 L) w" u5 X& ~3 J
UF_MODL_ask_list_count(ll,&ww);
5 j+ Z4 h# ?4 @ |3 |. S for (int i=0;i<ww;i++)
! D. l% b$ i1 H/ W {
+ V6 R j4 u- y' f tag_t yy,curve1; $ U: P6 F' h2 V: J F
UF_MODL_ask_list_item(ll,i,&yy);2 \, z% u( r k3 }. H
UF_MODL_create_curve_from_edge(yy,&curve1); //抽取曲线2 L' o0 y$ @* }! U* O# p
}*/8 `6 X* H, o: U* A0 h
char box[256];9 }/ Q7 m! ? e% X3 S$ }8 I0 |
sprintf(box,"简简单单:对象尺寸(X-Y-Z):*%.2f X %.2f X %.2f",distances[0],distances[1],distances[2]);
H2 G4 e" R7 ?7 A( F" h+ l! D) [8 C uc1601(box,1);* b# q; t) _5 _
; J& L8 M+ t. g) _% S9 _
goto L10; //透明之后继续回到选择的状态
6 k, i- r, _0 F2 R; f& O( o z0 X- }8 C+ U4 m' G
( s/ y8 Q J: a; v2 f) M
A3 y7 B( B: R3 f/ s! w
# q8 P- Z) f* P) M* N F3 R- u8 b0 f' E$ q
UF_terminate();# \# ~) }6 x# P2 I5 @7 S! K
return;" W7 e; {1 u& D; V8 L
}
/ x6 Y& ~% P0 v' B% Q* }
5 V: k% a8 y# e$ V) B, D# [# w* A, l0 V
extern int ufusr_ask_unload()9 t2 ?+ b$ P& l' o; }% @ {7 b6 c1 Z' N
{
) m: Z: ~2 \7 L Z {; v$ Z return UF_UNLOAD_IMMEDIATELY;
' l. z" y# j' ? G: _( o}
. C" T% d5 n; j- M8 f
+ s( c* O. x+ V, L |
-
-
评分
-
查看全部评分
|