|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
/*********************************************************/
' _3 @( q4 ^/ q# m v) j( S+ T#include <stdio.h>
% @- m; h. { X8 E) E1 Z#include <stdlib.h>8 D1 o' [; S1 E1 b9 h& {5 e
#include <uf.h>( _5 z' Q; Z- f) }0 E& I; v
#include <uf_attr.h>
; y& c- ~' `* D: P#include <uf_cfi.h>
8 A/ b, m+ b8 D/ i0 v6 @#include <uf_curve.h>! a \2 O/ b# p, g/ q0 I1 R
#include <uf_ui.h>
6 g3 a* m9 B; w* W4 Q; F#include <uf_modl.h>: v7 ^/ @5 i- ^+ k5 }
#include <uf_disp.h># C. m4 }4 I* L# U; P& b
#include <uf_obj.h>
2 {7 @2 P+ G* L% g# O#include <uf_csys.h>
+ ]) g, x, s9 g- o/ ]1 v% n, X3 @7 t% q3 N
: _- J/ ~& b+ w! d: U" p( A" j$ w
/************* unload alloc mem *************************/
8 |9 \7 `, s* z- g- n7 `5 p/* UF_UNLOAD_SEL_DIALOG _UG_TERMINATE _IMMEDIATELY */) x$ R5 R. X Q0 S
+ A" n5 N0 y. j) vstatic int init_proc(UF_UI_selection_p_t select,void* user_data)7 k0 {! A9 ^5 s) G7 @
{
/ p7 ?8 ^' H7 Y1 Y0 J4 H8 C. y int num_triples = 1; //只选择一种类型
8 o( p& r% s- i H# s UF_UI_mask_t mask_triples[] = {UF_solid_type,0,0,};- D' _/ j/ U4 T- I
if((UF_UI_set_sel_mask(select,6 e# x% ~5 E+ b% ~" J, \
UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,
0 s3 F# y" V9 X! ]7 I$ a num_triples, mask_triples)) == 0)! e% e+ |8 V3 n5 n4 D
{" p8 W# g3 T5 ?- Z4 z
return (UF_UI_SEL_SUCCESS);
. V. L0 S- D& [' S- i) _ \% s }$ T2 x6 J# N4 a! z
else
+ w7 {$ y7 Y2 h3 c {
/ b" x1 W# S: ~! h return (UF_UI_SEL_FAILURE); d( P/ G7 f) C9 E) G
}$ B- O* f( L" G' {: K3 q+ d
}( ?6 I5 b* f, @: S. v
/ f/ W2 `2 A. e) D, Y6 R' Q3 h
. B: F/ c9 l# _extern void ufusr( char *param, int *reTCod, int param_len ) ' r" Y+ t d0 s0 a& B( h
{) r7 a' E1 r7 b
UF_initialize();
$ u( M9 Y' w5 a) R, c5 L5 w& V* ]- q" v7 H+ c) T
4 n2 g+ e# y) i9 s! s char cue[] = "简简单单:请选择单个体";
$ }5 l5 c! _8 M, E char title[] = "简简单单:请选择单个体";% n" k V4 o2 V H
int response=0;# M4 U& I8 e& i# ?4 P. ]. }
tag_t object;
& U: ~! m0 F' o3 A% v0 u int count=0;# K% @& q/ l: \% ~5 N7 G
double cursor[3];$ e( Z, ^: q) e2 C. @. m# \
tag_t view;
! b4 K. E, t. _$ E9 _7 t J int i=0; c$ L5 k) X! l1 m6 s' k
double pt[3]={0,0,0};, o U r! V+ h' j2 H* j; p
double z1[3]={0,0,1};5 k l4 A2 S: M" b" x& }
UF_OBJ_translucency_t cyt=0;( ?$ c$ v* X/ q: m
L10:
* f) V; i6 t9 M( j2 I0 t7 t' s% e UF_UI_select_with_single_dialog(cue,title,0,init_proc, NULL,&response,&object,cursor,&view);' o/ d+ U6 _3 v% ^ q3 w8 x
if(response==UF_UI_BACK) goto L10; //如果点后退就跳转到L10
' C" ^: Z5 o) Z6 [+ k) h3 \; a if(response==UF_UI_CANCEL) return; //如果点取消就退出9 f% R) k4 Y: C9 x- ~
5 z0 r4 ~( p! F$ w4 e7 C UF_DISP_set_highlight(object,0); //取消高亮显示
Q" W6 p4 X$ A" k) z tag_t csys_tag; . l0 ~% ?0 @1 p+ C6 D
double min_corner [ 3 ] ;
0 C0 k( h" I# N% Z double directions [ 3 ] [ 3 ] ; - I/ n( C6 B% J
double distances [ 3 ] ;! \9 a! L; ^- [5 C9 k$ `4 F
UF_CSYS_ask_wcs(&csys_tag);
& A% a0 M0 d. V" |$ | UF_MODL_ask_bounding_box_exact(object,csys_tag,min_corner,directions,distances);2 r- g) _4 W' ?/ W7 p: @+ N9 L; z4 S
1 ?) z$ i7 v& `. W' ~" X8 e
char mesg_x[256];
8 B9 g5 s# z% l: t" j. S9 N sprintf(mesg_x,"%f",distances[0]);8 G1 U/ p |' z$ s" b
6 ]4 Y; j* L8 _& ?3 t% Q4 ?: E
char mesg_y[256];' ^$ L5 `& l e( `4 L' H
sprintf(mesg_y,"%f",distances[1]);) v8 K7 J+ n. }& W* f
; p' q; O: S2 x4 {( i- d! Z char mesg_z[256];, N/ t) q0 d# M6 n7 C- f
sprintf(mesg_z,"%f",distances[2]);" i+ T# O3 N: G
# b8 m1 l" Z% {" s
char *edge[3] = {mesg_x,mesg_y,mesg_z};
0 U$ B4 P' ~$ m [# L$ K b; M tag_t blk_tag;
- o9 P6 D! h8 L6 E1 n" ~ UF_MODL_create_block1(UF_NULLSIGN,min_corner,edge,&blk_tag);1 a# v$ g! H* U; N9 U* c7 i' `- {
# S* ~! @% m5 W! w
UF_MODL_ask_feat_body(blk_tag,&blk_tag);
5 g" @8 N/ P# L6 m5 [2 r UF_OBJ_set_translucency(blk_tag,100); //设置透明9 D; g/ @2 i. x$ _" M
UF_OBJ_set_line_width(blk_tag,UF_OBJ_WIDTH_5 ); //设置线宽
' i5 e9 E1 M! O, b* S UF_OBJ_set_font(blk_tag,UF_OBJ_FONT_CENTERLINE); //设置线型
- y0 T1 y- {* s, Y% {( J& ]. a' u
3 M5 z; @9 \$ L1 t4 X( v$ q2 }. y/* uf_list_p_t ll;; D( m5 P. k' {
UF_MODL_create_list(&ll);7 ]7 U- X. E8 P. }5 v
UF_MODL_ask_body_edges(blk_tag,&ll);) `9 _5 R7 S- C0 B; b% H2 `, h' x
int ww;9 I/ \. _5 G0 L; ^- t; A
UF_MODL_ask_list_count(ll,&ww);
& w9 j0 g. C9 e0 k; t+ i for (int i=0;i<ww;i++)4 R- x* K# g9 K6 L' q f! P
{1 V! w; y) Y6 h7 @
tag_t yy,curve1; & `5 k3 N; X4 A
UF_MODL_ask_list_item(ll,i,&yy);3 D3 V' R5 ?8 V7 r# q C, o
UF_MODL_create_curve_from_edge(yy,&curve1); //抽取曲线0 _- W; H5 R3 S J1 k2 E' I: Z
}*/
5 \3 Y0 {3 G3 ^* d! f char box[256];0 x9 i0 [' v% w, S; I \% z8 ^4 h$ X
sprintf(box,"简简单单:对象尺寸(X-Y-Z):*%.2f X %.2f X %.2f",distances[0],distances[1],distances[2]);0 j& |9 I) V- _5 g z1 I
uc1601(box,1);/ x) f' S( `/ Z3 M' m; M s% s
2 `- m. N M" E. R
goto L10; //透明之后继续回到选择的状态
. d7 I" U, a+ |, V2 W: k X2 E" o
8 F/ U% c. i, F0 Y+ B# Y- R
8 F& f7 u" e( ?* a* \* ^
$ N" r4 M; D8 j6 x# e) P
$ L9 N; ?' @; Q! ~
/ y9 r; @% _# k1 u1 l UF_terminate();- D0 a6 F+ H+ @. Q" Y3 ~/ g' r) _
return;$ `, F5 Z1 T9 y5 ]; w0 h. p
}. M* G$ h* \( z: G& ^; r/ N; g
! n% j+ }% K, |* q# Q1 V0 x4 E' n+ R! |/ @0 e
extern int ufusr_ask_unload()) A- r, q$ J7 ^2 {
{
8 `0 g8 X' F5 d4 [2 e! B return UF_UNLOAD_IMMEDIATELY;
m5 _' x1 H4 W) z# U) `. Q}
" f6 K) ?2 s% m2 m
6 p4 d4 {& m2 g( O3 R4 R3 P |
-
-
评分
-
查看全部评分
|