|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
/*********************************************************/
$ Z1 s Z+ m7 V#include <stdio.h>
1 x5 T! v3 }' `! U* s* l#include <stdlib.h>
% `. \: t% A* b8 @, a5 M#include <uf.h>
' k i. ?2 U5 p% f' _. C#include <uf_attr.h>5 ]3 ]) c, b) X! t7 R2 k/ L
#include <uf_cfi.h>
6 J8 j& W) {) C- i L# V& O- J#include <uf_curve.h>5 d5 {6 Z; u5 ^9 c0 W, e
#include <uf_ui.h>
, R8 f! M) }2 r, V2 L7 w1 n#include <uf_modl.h>
' m: N6 W# g7 D O; |5 I- b: ]#include <uf_disp.h>
* U% m: Q$ J2 f1 {: w9 `#include <uf_obj.h>
- _* A# V# k! r#include <uf_csys.h>
, L. ]3 w* S$ ]) Y- W0 A
5 l# x" Y8 @; m9 ? G7 o3 G5 w6 O0 K5 L* c) j. n; }& {
/************* unload alloc mem *************************/6 w2 ~; C- _% ^5 l8 y$ e3 F2 f
/* UF_UNLOAD_SEL_DIALOG _UG_TERMINATE _IMMEDIATELY */
6 V% v6 I# d% G* `4 H2 `7 ?
1 M9 W5 i Q: y0 t4 s* Ostatic int init_proc(UF_UI_selection_p_t select,void* user_data)/ j# c1 }: \% q0 w) H
{
6 I& Z# P Z" r6 U7 Y int num_triples = 1; //只选择一种类型
& q" @9 ~, ` M5 p5 F" L UF_UI_mask_t mask_triples[] = {UF_solid_type,0,0,};
: `) ^1 X c7 W+ j* x if((UF_UI_set_sel_mask(select,
! h- B3 j# a! d. G/ X UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,5 V9 t$ ^; \0 J# i' ?
num_triples, mask_triples)) == 0)
* ]' u6 k* w! u& M* Y {
1 D4 L4 P: h3 ? return (UF_UI_SEL_SUCCESS);
% r/ i: A. j- {% c. o6 p } r: m* o* c2 q r4 w
else# e0 P% P" d; i! p0 B2 K- q
{
# k& a+ g* I# P) t( l" e4 l# w return (UF_UI_SEL_FAILURE);
( z- W' [9 M- H: M2 X( a0 z }
1 z# k$ i+ Y" f9 {) N- j}
0 E0 k& X4 c- i! L, [ A1 Z1 V
6 n- _. a2 e7 A( U! p: n* s: G8 T t1 M. _5 ]" {
extern void ufusr( char *param, int *reTCod, int param_len )
i3 A! `2 N9 t* a9 ]! @- g{! ~; O$ V D" A+ \# Z
UF_initialize();6 b# u; G5 d( A3 d
. n2 H7 { u& F# j0 _$ O& k
' |( C( A/ P! U6 S4 Y( A( l char cue[] = "简简单单:请选择单个体";
) j5 ~8 H8 y" V2 G char title[] = "简简单单:请选择单个体";
; Q4 Y+ ?8 {, F) e \ int response=0;
6 k5 n+ m/ e( ? e tag_t object;
$ _# @+ e3 b$ k0 X5 M. k int count=0;7 F9 ?& W) Y& G0 y4 z6 |
double cursor[3];
: e4 @, h: f: P0 ]# U8 G8 ? tag_t view;" K1 S8 ?% _& q, @+ X+ o3 w/ f# o
int i=0;3 G" G7 W7 x0 L h# E
double pt[3]={0,0,0};
4 z) ]4 ?$ m7 V double z1[3]={0,0,1};6 j$ [& W I' V
UF_OBJ_translucency_t cyt=0;* Z- u4 i6 i0 B) G/ F( n7 i
L10:
% L- r* @. t- z8 H UF_UI_select_with_single_dialog(cue,title,0,init_proc, NULL,&response,&object,cursor,&view);
! P) f/ D2 q, ~, i if(response==UF_UI_BACK) goto L10; //如果点后退就跳转到L10
# b/ n4 T8 T/ l8 Y if(response==UF_UI_CANCEL) return; //如果点取消就退出
2 |# h5 Y1 s; O9 Q, t2 M+ T3 F& h- H, d) A5 Z9 }( b3 ?. n: O. U
UF_DISP_set_highlight(object,0); //取消高亮显示. U1 e4 H! a/ ?- w! W7 p9 S* l
tag_t csys_tag;
: ^6 S* x5 k6 P* [ double min_corner [ 3 ] ; ; Y* z% _$ l2 h& {' p& c& J
double directions [ 3 ] [ 3 ] ; 1 F+ ^5 N) J7 i1 q' A7 q
double distances [ 3 ] ;; E$ t7 w+ b4 D$ K
UF_CSYS_ask_wcs(&csys_tag);
# J* x. @) f* Q2 p. g7 z UF_MODL_ask_bounding_box_exact(object,csys_tag,min_corner,directions,distances);
; o2 T3 i: M7 Z7 h* S! \
3 c) T7 w* F t+ b9 e/ J$ v char mesg_x[256];
+ ?" s. z' a; e* `/ g sprintf(mesg_x,"%f",distances[0]);
! s3 X( _- J: {2 q# r. R& k: ^
( |% w* u& o# f3 v6 q char mesg_y[256];
& u' g9 Z) `7 k8 e: A& `* k sprintf(mesg_y,"%f",distances[1]);
/ H( x/ C) m; C/ ?" A% Y$ r
- N% _; |1 o H char mesg_z[256];9 H4 z3 C, w2 W) R
sprintf(mesg_z,"%f",distances[2]);3 }9 z( ~/ P1 d' G, J4 ]
4 i7 r% j1 p: {
char *edge[3] = {mesg_x,mesg_y,mesg_z};
; \3 C% e6 g# ]. R. [ tag_t blk_tag;6 @; n0 K) ?) A, o1 j; \% R
UF_MODL_create_block1(UF_NULLSIGN,min_corner,edge,&blk_tag);/ ]8 d6 J0 k& a7 o7 r+ {- E
5 P2 O7 W1 _7 R/ m UF_MODL_ask_feat_body(blk_tag,&blk_tag);# Q$ I8 M1 h0 R
UF_OBJ_set_translucency(blk_tag,100); //设置透明
- r: Y+ i$ T. A. M UF_OBJ_set_line_width(blk_tag,UF_OBJ_WIDTH_5 ); //设置线宽8 G5 E& d, s- u4 p" y5 ^# ~
UF_OBJ_set_font(blk_tag,UF_OBJ_FONT_CENTERLINE); //设置线型- i5 [- x+ q1 ]$ q8 |7 r% W" p! i) ^0 P
- @2 n K H# w0 t' S/* uf_list_p_t ll;
( T! i+ Q" y3 ?4 m d* b7 B UF_MODL_create_list(&ll);8 ^ t i1 a- y) Z# n/ p7 M( \
UF_MODL_ask_body_edges(blk_tag,&ll);
4 K5 i b) i" u: H' W, R int ww;
8 y& Q Z) F7 ? UF_MODL_ask_list_count(ll,&ww);% h J$ Y0 J) _$ S8 A. w) K
for (int i=0;i<ww;i++)
+ @) {9 R2 [; b& J {
# l) l) L5 h+ o' S+ B6 p+ x; w tag_t yy,curve1; ; f0 u! }0 O' W6 H% f3 c$ f S& K; R
UF_MODL_ask_list_item(ll,i,&yy);
3 r6 M1 a" m2 w6 @ UF_MODL_create_curve_from_edge(yy,&curve1); //抽取曲线
8 o K+ A9 T" S }*/
. h$ g9 H R$ K# Y: x char box[256];
' Q/ `2 P5 t* B0 Z" u7 r6 ~ sprintf(box,"简简单单:对象尺寸(X-Y-Z):*%.2f X %.2f X %.2f",distances[0],distances[1],distances[2]);
2 U, b7 V5 \" \0 B uc1601(box,1);* T/ `8 J$ b" ]6 g$ s; y6 {
9 C. a, N& I0 m- m goto L10; //透明之后继续回到选择的状态
. F! H1 W( s; x! N: f# Y5 `7 B' F; g; h4 ?9 K7 y7 V
0 a; D* }$ n. {& L; _
$ A' I% P& D+ d1 v/ k
@, f$ B; \: C4 N6 ?- V. |/ J, ^) r2 b% Z. o
UF_terminate();: V; o1 f. p# u$ S
return;0 s! J' h) e4 s! p9 \* e+ [2 L
}* t1 I1 ~+ G& V( B- g6 L
! }9 @6 B. I/ d0 V/ t( ?$ @! X- K N
extern int ufusr_ask_unload()) [5 r7 u- n8 {5 j7 v! D
{, d& |" t' s; f# S% a
return UF_UNLOAD_IMMEDIATELY;9 W, _' |. h( M
}
: I* \( u0 e2 p u! c1 h0 }7 e! u" a/ T4 C* k1 ]/ C
|
-
-
评分
-
查看全部评分
|