|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
/*********************************************************/
9 h* M5 |9 D' ?9 g0 `/ M#include <stdio.h>
+ l( N6 T$ m1 X3 g4 Q1 l#include <stdlib.h>* n6 K; Z; y) n [8 y3 e- a
#include <uf.h>
8 k; Y. T2 |! R0 R+ u8 i#include <uf_attr.h>1 e, n! s, Q& p1 m+ g9 E
#include <uf_cfi.h>
' n0 G& P% P# H4 H" [#include <uf_curve.h>. j6 o" P; r' C2 O+ j( w
#include <uf_ui.h>/ M: N0 ~. L$ S" U a
#include <uf_modl.h>
! `7 E4 D. V2 Y& n#include <uf_disp.h>) f4 [4 @6 T5 y- ?' D
#include <uf_obj.h>
1 ], U3 q, x# b& {#include <uf_csys.h>* B/ }% c3 g5 p# A# p5 ?9 c0 ^$ j
: I" U) P1 Z. |4 o
+ l- I9 R1 T" @+ N& j0 b: }) U/************* unload alloc mem *************************// A+ V& l1 _ L$ I# H ~+ h
/* UF_UNLOAD_SEL_DIALOG _UG_TERMINATE _IMMEDIATELY */
2 O, M; [: p) Y9 Q3 E% t
0 k# k6 b; | n4 ^7 k3 }* m; Gstatic int init_proc(UF_UI_selection_p_t select,void* user_data)
D& f( c" Y& ~, C{& x- H, O! g" B
int num_triples = 1; //只选择一种类型
. l8 |0 ]+ U5 I N$ e' u ] UF_UI_mask_t mask_triples[] = {UF_solid_type,0,0,};
( m& U1 Q1 Z" k, m, J if((UF_UI_set_sel_mask(select,
2 ?+ c8 _ y( O: ?" o" { UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC," H, r7 u6 x$ D6 x8 |. r
num_triples, mask_triples)) == 0)3 s3 H$ Y! |# }. Q( O! d
{3 ]9 D. d& K! z7 x$ {0 y" W
return (UF_UI_SEL_SUCCESS);
+ g( P [1 C r- A6 G }
) v7 w$ M' v" o' z. C; S else
8 \! ] K6 s- G) S- T {
) w( d5 t( Z4 i+ w0 O- ] return (UF_UI_SEL_FAILURE);
& Y) n" W9 E* N7 [, u" ~/ a2 c& W* s2 e }
9 l3 t4 H o g, T}
, j( ~4 g7 M. t* N- p8 M& P
2 l- J$ N8 h& J* l0 g
1 D9 l$ b8 @( w# T) `" h$ u" E4 lextern void ufusr( char *param, int *reTCod, int param_len ) $ ~) E" Z& \" M' l3 F; r2 F
{
# b8 j. j, _' y UF_initialize();
5 _6 H$ r( U g: g2 W4 I2 A
% B8 U2 a9 C+ e4 m. U
7 {( l ?5 z- N char cue[] = "简简单单:请选择单个体";1 Z( F- P: A) z0 b+ z8 v. `
char title[] = "简简单单:请选择单个体";
2 f' H* y' d* D* } a- | int response=0;6 ~ Z2 k; v7 U) u) W4 \% r o- f
tag_t object;
% j+ p& J. M3 Z4 N4 O int count=0;
6 H! g1 g% Y' W5 _5 A) \) {1 P double cursor[3];. \% H7 k* g+ v- q6 u, n: t3 C4 M ~
tag_t view;
7 ^- x# i+ u% c3 G" j int i=0;
9 I; R+ b7 n" P9 S8 B+ i7 ] double pt[3]={0,0,0};
5 l/ \0 }. \8 d( h5 }) W. x8 } double z1[3]={0,0,1};
# S( o$ o; N( {4 g0 [$ x. r# { UF_OBJ_translucency_t cyt=0;, f+ _' ^3 x% q: W ^2 x, l5 `9 q
L10:
1 a6 d7 Y% Q4 V! O/ R. j) q+ Y) P UF_UI_select_with_single_dialog(cue,title,0,init_proc, NULL,&response,&object,cursor,&view); ?3 b+ U. i- a& c/ M5 s- J8 ~+ t
if(response==UF_UI_BACK) goto L10; //如果点后退就跳转到L10: c' B- } k( [- Y# A2 u
if(response==UF_UI_CANCEL) return; //如果点取消就退出 f, Y2 ~1 F% b# K: c5 h( `8 a
4 G1 i4 ^1 X; E* U8 }% g) e) G. @
UF_DISP_set_highlight(object,0); //取消高亮显示: c' ?* _- A+ Q4 J# Q) M2 M4 I
tag_t csys_tag; 9 R: I% ]6 ~! {! \
double min_corner [ 3 ] ;
; C; J# Y* r& {5 a* L double directions [ 3 ] [ 3 ] ; ) ~6 k% y" I; e0 O& G& y
double distances [ 3 ] ;" {' p. `$ Z7 B& w/ R/ N
UF_CSYS_ask_wcs(&csys_tag);
: q4 `/ ~9 p9 K5 {- c y UF_MODL_ask_bounding_box_exact(object,csys_tag,min_corner,directions,distances); z3 V2 D% \/ `, I; v# {
/ T% I1 l ^7 X/ ^
char mesg_x[256];% h$ G6 ]4 T* G+ X/ G$ S: A3 T
sprintf(mesg_x,"%f",distances[0]);7 A* I" v& n# ]& @/ d# [7 E) d
1 n: D- l4 B* z3 b9 H/ n* a/ x* l
char mesg_y[256];
4 [2 v1 `7 Q7 B9 S* V7 q sprintf(mesg_y,"%f",distances[1]);; j |0 i) X. ~8 K9 G8 D
( J9 ]+ s' p. Z3 }
char mesg_z[256];3 T7 k6 h) B& p: x/ r3 a. J4 K' c$ H
sprintf(mesg_z,"%f",distances[2]);; h" \0 S" f& V6 {- b! ?
: j E. v) R* D# L5 v char *edge[3] = {mesg_x,mesg_y,mesg_z};5 M/ k5 G2 w% o3 G0 H
tag_t blk_tag;5 c' @3 e' H7 Z5 Q8 \- ^
UF_MODL_create_block1(UF_NULLSIGN,min_corner,edge,&blk_tag);! r8 D. R1 [# Y$ T+ V# }5 S# {: G
/ ]; E4 s$ F' v% f8 Q
UF_MODL_ask_feat_body(blk_tag,&blk_tag);$ `& e" o) q& N! o$ t/ |* j' ]
UF_OBJ_set_translucency(blk_tag,100); //设置透明
1 r; K. B9 K$ |" h" M( F7 W [ UF_OBJ_set_line_width(blk_tag,UF_OBJ_WIDTH_5 ); //设置线宽! N y( ^! Q" [; z: b! h
UF_OBJ_set_font(blk_tag,UF_OBJ_FONT_CENTERLINE); //设置线型
5 u- w( s( Q0 B# f
, f Z! Z& r5 q* T, k! o% k) x/* uf_list_p_t ll;
) D% A6 Z3 u' [1 G( j0 R: { UF_MODL_create_list(&ll);
/ a( n0 {% {5 ?1 F; S( v9 V( r UF_MODL_ask_body_edges(blk_tag,&ll);9 B8 V3 P; C2 @' P
int ww;0 ]0 N! K0 J! z. X A
UF_MODL_ask_list_count(ll,&ww);
7 i8 x9 L" n# ?$ M; T3 g. A for (int i=0;i<ww;i++)
' a" ~; u+ A( }1 z$ U% u4 S! Y {
; w4 W) d+ Y) x tag_t yy,curve1;
& v" h9 W& h% {% k/ c UF_MODL_ask_list_item(ll,i,&yy);% P4 l; `3 N2 G
UF_MODL_create_curve_from_edge(yy,&curve1); //抽取曲线' O/ `) `) n" e( s% u& M! u+ J
}*/
/ C# Z0 c0 X5 @9 w/ q0 X, ]6 Q char box[256];0 n7 z* O7 W1 m6 \
sprintf(box,"简简单单:对象尺寸(X-Y-Z):*%.2f X %.2f X %.2f",distances[0],distances[1],distances[2]);* v- q# z% V& O! N
uc1601(box,1);
Z# S* h# R4 k; g3 Q* K6 K) j5 p7 S% i, T- y9 @# T
goto L10; //透明之后继续回到选择的状态% X2 G* J+ S6 F: Q
' [5 y* l3 m. z8 E
* i. L" e# P9 f8 A; k' Z9 P. g, ]" ~4 n, N9 L i
2 H! s" U1 J. ^8 i+ O
9 z/ c, y5 {) D* p
UF_terminate(); Q7 [3 p3 i$ p$ W; |1 ]) b
return;0 ?5 D; [+ d4 ^0 g) l6 W
}
1 B! a7 Q$ A9 b8 {) }2 b# l7 F
* x5 S% a3 C) d" l$ V( E- x, k) n. v) a, q; ~
extern int ufusr_ask_unload()
0 a+ _: V2 G/ g' D/ @{
& J7 y0 c' A! O7 V, y" S return UF_UNLOAD_IMMEDIATELY;: v0 Q; k0 i9 I5 _. `
}
/ v+ ~2 t/ D+ Q/ J) N! D- |
2 x; Y' ? ~. r+ J- L |
-
-
评分
-
查看全部评分
|