|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
×
/*********************************************************/: q; I" I4 [9 c# M' X5 J8 `
#include <stdio.h>
. a* T, D+ O) r% \/ W2 t8 R, W#include <stdlib.h>
7 R3 Q( v: A1 x& p6 d1 l#include <uf.h>8 I$ j7 W1 u; d# X2 o" B
#include <uf_attr.h>
) j: O& \! h# M7 g#include <uf_cfi.h>1 r6 L7 _) ]; v. R: F
#include <uf_curve.h>
2 Y, Q+ d$ N# t5 K" b2 F#include <uf_ui.h># f8 l( s( j$ W R' M8 F2 s% V
#include <uf_modl.h>
8 U( H* I9 `) W8 ?& @. R) j#include <uf_disp.h>1 H5 L0 \/ i/ T! t; z- ?4 [: I/ d
#include <uf_obj.h>
# U) {2 p! k$ v. Z+ F#include <uf_csys.h>* f( o* h+ C% x0 U0 ]" V5 Q
% C5 k% _& `2 L6 H
( s; k1 ]# A0 K5 p9 C' D. \/************* unload alloc mem *************************/; R/ J3 I7 W) ]$ T& f$ x/ O' F
/* UF_UNLOAD_SEL_DIALOG _UG_TERMINATE _IMMEDIATELY */
/ C" N' {4 ^# ~/ @4 @; u$ q" R- K1 \& i4 z5 Q; X, M) |1 E
static int init_proc(UF_UI_selection_p_t select,void* user_data)
' ?, A. d7 H: e; A" @9 R# u{) L; ^7 ~; i2 J: n6 u: _5 A
int num_triples = 1; //只选择一种类型
5 |- g1 U6 E9 [- g& t UF_UI_mask_t mask_triples[] = {UF_solid_type,0,0,};
4 J/ b8 \" `! r3 u3 e+ [5 p/ Y$ S _ if((UF_UI_set_sel_mask(select,
7 \/ t/ S, S1 E7 p1 ?$ m UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,
: A4 Y% y8 U% ~0 [& E8 ~) W num_triples, mask_triples)) == 0). Q. `; p8 g7 ^7 s3 |, H. ]
{9 w: a4 b# B( J; X0 W/ G
return (UF_UI_SEL_SUCCESS); d4 _) ~6 L; J; Y: I& \
}
8 g4 R e \: |( Q else" J! I; d+ b: [4 C& Z2 ?
{* p& p9 t' j4 M
return (UF_UI_SEL_FAILURE);
' w) e9 \* T) K% D k8 ^ }$ T% P& V3 C c( q
}
, h4 t& u; D6 I' Q3 B
# E0 b% W) ^* z( X- ~0 ^
8 c. M: | n# Z4 T% Qextern void ufusr( char *param, int *reTCod, int param_len ) 8 Y L2 f$ G. D6 d7 a
{7 }: d# a; Q& I3 ?% u% ]0 n
UF_initialize();
+ |. ?3 y2 z* m- g. q
, ~* \1 Y/ c8 H, f 6 j$ o& G# J$ i% R% t
char cue[] = "简简单单:请选择单个体";- t1 u9 p4 {4 x- g
char title[] = "简简单单:请选择单个体";
5 r1 S8 G5 r& r$ B# K int response=0;
/ H, s3 w$ ~! s# h c tag_t object;* p7 R9 p) x, j. U K ]8 s8 `
int count=0;
/ b N( E& ^4 f; ~5 I% M double cursor[3];
9 l6 i9 ?! l; h0 O tag_t view;( j0 L7 N0 g+ c% Q4 m2 p
int i=0;0 r8 u# j4 a, B1 u( ^
double pt[3]={0,0,0};
6 Y" N5 J1 Q2 H; B' l+ Y0 W! H5 l double z1[3]={0,0,1};
& O; t' u p/ M: J4 X7 N UF_OBJ_translucency_t cyt=0;7 Q" q( {& y ?8 b7 {) l
L10:
- D" `# o1 f c9 \$ ^6 F UF_UI_select_with_single_dialog(cue,title,0,init_proc, NULL,&response,&object,cursor,&view);$ j5 M2 X; v+ \) ?* i6 |" n0 K
if(response==UF_UI_BACK) goto L10; //如果点后退就跳转到L109 o9 r% [# E& S% ^9 Q+ A! p
if(response==UF_UI_CANCEL) return; //如果点取消就退出4 {8 G* a$ c# M" `/ F
8 _$ N1 Y% M; ~; i
UF_DISP_set_highlight(object,0); //取消高亮显示6 V6 q* r M3 p5 e' ~0 g- J
tag_t csys_tag;
4 b" R; u5 q3 }+ x% L) ` double min_corner [ 3 ] ; . _% _* C4 r: ]2 Y5 e/ z V% z1 A
double directions [ 3 ] [ 3 ] ;
) z, u% u* C! r' d) ~& l double distances [ 3 ] ;
9 `7 E% M/ l) h3 M. C- s UF_CSYS_ask_wcs(&csys_tag);: _4 H9 [/ B5 M3 P d% Y
UF_MODL_ask_bounding_box_exact(object,csys_tag,min_corner,directions,distances);
- C" s1 {3 z- {' k1 `% R: F, Q' N5 v- J
char mesg_x[256];, L* d$ n' n' d( o# X! |& N; N
sprintf(mesg_x,"%f",distances[0]);& J/ r s- G# ^2 t4 \- Q
k6 ]% `8 N* w9 Z( s5 `- {
char mesg_y[256];
- S7 a2 C4 K0 X sprintf(mesg_y,"%f",distances[1]);" C5 V/ w' H! H
% f J0 d2 y2 J* N char mesg_z[256];
% L6 P9 [/ Q+ y7 b/ o sprintf(mesg_z,"%f",distances[2]);: d* Z5 S* o- S+ u
, O- d3 V' w. }3 A) E
char *edge[3] = {mesg_x,mesg_y,mesg_z};
: w2 _4 h/ w+ i tag_t blk_tag;
. ]: `' d4 D( e- | UF_MODL_create_block1(UF_NULLSIGN,min_corner,edge,&blk_tag);
# T6 j$ j7 c2 E9 x6 q( y$ a ; e9 \' g% y: n6 q
UF_MODL_ask_feat_body(blk_tag,&blk_tag);
6 I) f7 Y- _) u9 D UF_OBJ_set_translucency(blk_tag,100); //设置透明: o: A& G2 d! k0 k
UF_OBJ_set_line_width(blk_tag,UF_OBJ_WIDTH_5 ); //设置线宽% y' A) U9 m+ Z1 G
UF_OBJ_set_font(blk_tag,UF_OBJ_FONT_CENTERLINE); //设置线型
. Q! w- N: z" K7 ^ |& e7 l( I! A, D2 I0 C1 i! ]$ O+ [
/* uf_list_p_t ll;! ]! y* Y4 G0 M& P; Z7 m' L( _
UF_MODL_create_list(&ll);
: D2 k6 m" e5 Z N/ n6 O( x UF_MODL_ask_body_edges(blk_tag,&ll); g0 d7 x6 e0 h, n, y
int ww;
4 d# I4 B! [8 n UF_MODL_ask_list_count(ll,&ww);; D8 X, n1 u: m
for (int i=0;i<ww;i++)' j/ u: V, E5 |( {7 y h% c Y* v: \
{
( _/ q! a) M1 y5 d' }7 P% ? tag_t yy,curve1;
& a7 {+ I' X" }9 n; [% H$ i6 u# O UF_MODL_ask_list_item(ll,i,&yy);
2 J6 T) _ t/ P0 d; {/ U UF_MODL_create_curve_from_edge(yy,&curve1); //抽取曲线' k1 s3 C9 u( Q
}*/
2 m$ \* o0 r( i4 M0 o char box[256];
7 x! ?( j" T9 A7 x: s: n W# k2 C sprintf(box,"简简单单:对象尺寸(X-Y-Z):*%.2f X %.2f X %.2f",distances[0],distances[1],distances[2]);; u6 \6 ]3 N' F
uc1601(box,1);& m, b& \+ A9 E x5 ~! H
, z$ O b4 `: h8 j! g& z7 h
goto L10; //透明之后继续回到选择的状态" D+ F( I' M5 I1 \: ~2 L# f
4 c# u* R% e6 y" y! U9 L3 k5 ^ a% G
0 `6 _7 I. m* h6 H
+ }* M9 F2 R- {# D; |# f
. Z5 N+ U/ m. w) B; x& P& {; E5 {. |
UF_terminate();& `+ c2 Z9 O2 N% m5 R
return;
! Y9 I& }$ P! b) L a; e2 ?}- F/ p+ N/ @& @/ I& b9 }
6 F, x. V: q1 s# _1 p
9 b* h+ d3 U" xextern int ufusr_ask_unload() o" }9 \; r' w' d) h1 s" j
{8 R7 a, q7 V5 u8 U
return UF_UNLOAD_IMMEDIATELY;( W7 J8 Y/ v2 G6 [3 H. m
}
1 b/ T+ w+ P/ C3 y) J" R; i( h7 }6 K3 d- ~# L2 w d
|
-
-
评分
-
查看全部评分
|