|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
/*********************************************************/
1 O) z9 P, q0 y1 s2 {* {#include <stdio.h>
9 v. S6 i& e1 I/ Q6 k& Y7 X#include <stdlib.h>& |5 Y' i0 ?6 A& E* r1 x$ _
#include <uf.h>! s% v4 X3 a: Q# a/ N9 d* g
#include <uf_attr.h>
7 U* K" y4 c. O#include <uf_cfi.h>
8 ~/ k0 |8 f5 v#include <uf_curve.h>
, e( C% ^" k; O+ e# u2 v2 J( G' V1 D#include <uf_ui.h>: w7 L9 I; n3 ?) U u ~, ^
#include <uf_modl.h>& q) r4 R% T% T" O! B+ F) ?6 d
#include <uf_disp.h>/ h2 U6 X& z* J' X* I3 E
#include <uf_obj.h>
2 b1 h9 v! `* ^/ z- D9 |#include <uf_csys.h>8 n' T: ~/ G7 E; m. u: `: {+ J
: Z, `! {$ n3 {- P
& K: Z8 u* X% I/************* unload alloc mem *************************/: D" p6 x4 |. D5 O$ X1 j
/* UF_UNLOAD_SEL_DIALOG _UG_TERMINATE _IMMEDIATELY */
; }' L# H* B$ M3 L" q- [7 X+ j! F! Z$ p7 i6 P$ w! g
static int init_proc(UF_UI_selection_p_t select,void* user_data)
1 U. I! t3 C4 _1 K' R{# m- T2 ?1 `) s8 n
int num_triples = 1; //只选择一种类型9 ^' s2 b0 [/ q8 U. z. m4 `
UF_UI_mask_t mask_triples[] = {UF_solid_type,0,0,};
' W% c" h$ ^ u3 w! C if((UF_UI_set_sel_mask(select,
$ x; |# m/ i7 i) [ UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,
/ Z% ?" V- v5 Q: X/ { num_triples, mask_triples)) == 0) w/ ^% P& j7 z7 M* ?# c
{
% G7 R$ H- w; ^ return (UF_UI_SEL_SUCCESS);0 l: t+ g/ R9 g1 o- s
}
7 |$ w' Q5 b3 p7 M8 P, a2 { else* S( v& y* A% p2 @
{4 I. ? e' a9 m3 [
return (UF_UI_SEL_FAILURE);9 E- T" R7 ?" I2 F& g
}
8 |+ c/ j+ n) w% b5 u' J/ H0 S}
7 W/ R% _* I8 J5 d, W) ^
3 T. I, u* M1 L
% H6 U& l& w1 V5 P! p* Lextern void ufusr( char *param, int *reTCod, int param_len ) 1 T; \$ D9 u; X
{5 O( L; \$ Q2 ~& N Y, m# V
UF_initialize();
* ?! x( N( |0 l% \' p. t) z' J8 h# X i* ?
7 l# ^/ u$ u6 \ char cue[] = "简简单单:请选择单个体";2 V2 v& i; i$ h, K; E1 m2 c
char title[] = "简简单单:请选择单个体";
" b) R2 l) Y3 @) R, R% _& v; I int response=0;
$ m6 f. ]# w( L! P q tag_t object;
. f) g/ n* G; y' G* v int count=0;
" X* A' s" Y5 ^6 A. e2 {; h double cursor[3];: K7 C# K# s7 ~: }
tag_t view;
6 V' p6 U8 Y3 Q+ i+ o, t6 H* y/ P( w int i=0;3 o* a% t+ w$ w |' Y" f
double pt[3]={0,0,0};
5 `6 u K: |: w! d) ? double z1[3]={0,0,1}; V: z' |% o- i8 }& l+ L% t
UF_OBJ_translucency_t cyt=0;5 _: k2 o7 ]( w
L10:
& a& y& e: y6 s) T* l' ?! b0 f UF_UI_select_with_single_dialog(cue,title,0,init_proc, NULL,&response,&object,cursor,&view);1 c3 q5 S5 H8 W6 Y; h
if(response==UF_UI_BACK) goto L10; //如果点后退就跳转到L103 v" L% V% y0 `9 O! c
if(response==UF_UI_CANCEL) return; //如果点取消就退出
/ C$ y2 e8 c6 E/ d5 F/ K
$ q6 z7 {: {5 g- ]5 p UF_DISP_set_highlight(object,0); //取消高亮显示/ H; k9 {8 E4 R9 s
tag_t csys_tag;
0 {6 V( A5 `0 } double min_corner [ 3 ] ; 3 p3 R* w! Z1 a& b; Z5 h
double directions [ 3 ] [ 3 ] ;
/ y; U4 D/ x2 D8 D8 j0 ] double distances [ 3 ] ;
" e1 X7 F" ^+ q( I- ^: M8 ? UF_CSYS_ask_wcs(&csys_tag);
$ }( M0 s, W+ ^8 ?) ~ UF_MODL_ask_bounding_box_exact(object,csys_tag,min_corner,directions,distances);
3 [: ?- }$ |' A/ |, \
, V4 p: p* J9 Z! c7 L9 T char mesg_x[256];6 J* ^' q% N* a2 l: }
sprintf(mesg_x,"%f",distances[0]);- h* w9 H0 [! n* F
2 O+ |4 h h1 i3 g6 M$ s7 A0 x char mesg_y[256];2 U, G% r7 b( r, u+ p( \2 I+ e
sprintf(mesg_y,"%f",distances[1]);
$ U5 J0 \, M7 U e
( t, {( T) i& y8 ^) \+ D' j! u char mesg_z[256];
9 }7 k' n V; p" O) a+ E sprintf(mesg_z,"%f",distances[2]);! J& H5 q) f; A+ B* m9 t1 @' O. N
! w+ `0 _/ Z) F8 _$ D+ F1 w. I( U
char *edge[3] = {mesg_x,mesg_y,mesg_z};4 N ]! i0 G/ d# b
tag_t blk_tag;
, Z" b- [; k8 R( U% S, Q UF_MODL_create_block1(UF_NULLSIGN,min_corner,edge,&blk_tag);
2 B/ r# D$ Q" c0 P , G4 m! C# y; F2 ?: u6 C: `2 j
UF_MODL_ask_feat_body(blk_tag,&blk_tag);
) L7 m4 T; y4 Q( { UF_OBJ_set_translucency(blk_tag,100); //设置透明& s/ n' r& f1 O: G, \
UF_OBJ_set_line_width(blk_tag,UF_OBJ_WIDTH_5 ); //设置线宽
& Q! g: l+ x' w" l, |2 O @ UF_OBJ_set_font(blk_tag,UF_OBJ_FONT_CENTERLINE); //设置线型
, I2 ?4 I2 L4 Q) e+ ^$ t1 g
, L0 b4 l- t1 O. ~7 Z& F/ [( o/* uf_list_p_t ll;
1 R( ?& H( `$ E f4 A UF_MODL_create_list(&ll);
7 Z( ~& C+ I9 z. Y UF_MODL_ask_body_edges(blk_tag,&ll);: W' R Y; R" d/ i5 c# H
int ww;
0 v1 r2 Y/ @ T2 j UF_MODL_ask_list_count(ll,&ww);7 R7 |+ x7 v' R7 K' H/ Y3 B+ C$ {$ ^
for (int i=0;i<ww;i++) \( T) c# E4 @) y# y q4 {! e
{
* E5 h6 y$ F2 t; W/ I/ N tag_t yy,curve1; % _! q0 W6 h* D2 W( V
UF_MODL_ask_list_item(ll,i,&yy);5 r1 ]" E# I, y) \5 N
UF_MODL_create_curve_from_edge(yy,&curve1); //抽取曲线9 w T4 S" P1 |8 T& L' b
}*/% o# ]$ _# L1 B2 Q: V" |
char box[256];6 |# ~: x& c- I. _& e5 B$ e# l
sprintf(box,"简简单单:对象尺寸(X-Y-Z):*%.2f X %.2f X %.2f",distances[0],distances[1],distances[2]);" b7 [; W, B! T( S- E8 ?
uc1601(box,1);
- `0 N$ g" A9 g1 {: D' L
7 o# ]( Y5 C! k* f% o: L goto L10; //透明之后继续回到选择的状态
8 p8 v: ~' |! D- C2 V, H9 M* p7 g/ ]( \/ y" D& S
- m1 c. R* d! O) k* L3 Y1 Q6 q
5 l8 O+ X" H% @- {2 N2 V: ]: p& s7 y- `1 P1 \% N, p ]& S' W$ Y
6 L/ F& r8 }! w$ g) K K5 P
UF_terminate();
/ x+ C4 Y% N% d6 Y return;3 x& |# H; l4 J, A
}
6 v/ B$ p( k$ [9 D( o& ]6 x6 `- B. s7 Q, E9 i
) n! I$ ^& u2 ^, W2 O
extern int ufusr_ask_unload()
% y! b9 O1 ~ l0 a' j' ]) Q+ \6 l{
# ]$ T! i! v4 i: H- a5 k return UF_UNLOAD_IMMEDIATELY;
4 @3 T' a; i$ H: ~! }3 S: O, z}
% W5 k, v% @& \. ?; v* m
3 O& P" C; Y0 n# F& N( i' Q |
-
-
评分
-
查看全部评分
|