|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
/*********************************************************/- |6 [% }) A- ?1 ^" D3 H" V7 s
#include <stdio.h>
, Z" U1 J$ }( b! T#include <stdlib.h>/ h* M' B7 r. H7 [ x+ ^
#include <uf.h># P7 E/ F8 q; \! Y
#include <uf_attr.h>
! t0 h- x- Z& ?+ [5 G7 X#include <uf_cfi.h>
# {6 G+ |' i8 X+ c# ^3 B+ k. a- ]#include <uf_curve.h>
6 B+ M0 M, a# U# m* b( @+ {#include <uf_ui.h>( J. G; \0 N q8 s
#include <uf_modl.h>; [, X4 z) e" \) ~- ?
#include <uf_disp.h>
# \6 F( n* Y$ a. a$ g z1 t#include <uf_obj.h>
, k) Z9 n* h: v, T#include <uf_csys.h>
9 ]0 q+ X# ~$ V* U- I) Y, l& o. B* ^: D6 F1 k. w) Y! s
- b# C. }/ M0 q! h
/************* unload alloc mem *************************/
4 @# A4 e: s6 b+ {- F/* UF_UNLOAD_SEL_DIALOG _UG_TERMINATE _IMMEDIATELY */
/ r4 d. w% t: X3 e
: E# P4 ]; X. z0 w. {( g" \static int init_proc(UF_UI_selection_p_t select,void* user_data)
0 {1 Z! _" }$ F! A{
/ e" y4 M; B, ~ int num_triples = 1; //只选择一种类型
4 e q! Z+ t' } UF_UI_mask_t mask_triples[] = {UF_solid_type,0,0,};/ h) s) D9 Y* r# G* T: r ]: c7 }6 C' `
if((UF_UI_set_sel_mask(select,+ D' t5 Z7 T5 }- d/ @9 Z! \
UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,8 G3 c( ]2 k" B7 T) K" n. k
num_triples, mask_triples)) == 0)
V* }: ~8 d: Z2 [; l: u$ G Y+ R {% p/ f+ \& a1 ^# r2 }$ U: m
return (UF_UI_SEL_SUCCESS);. j; j1 e( E) C5 {6 k8 m) H
}, E' u% m* b+ Z6 C
else
{# b6 [; X6 W+ ^ {. y, S% Q5 p, q/ W% z, k
return (UF_UI_SEL_FAILURE);# R! c* e# n3 ~. \* \5 c
}
9 b9 m, r: h- X5 b- t, E}
+ _0 X3 U: H! K$ V; p6 b0 Z! G+ M2 Z$ k: j, ^: [" k$ k1 ?
0 d* D# D- |' M% d$ sextern void ufusr( char *param, int *reTCod, int param_len )
- A& I6 Z) U/ m* K" ^8 S$ E7 V{
& \/ s4 t5 w# g) a$ I- e UF_initialize();2 W9 Z1 C; F: T1 l( O' U' |) {
2 k! a" w- |6 V/ {8 G
/ I. p* D2 N6 m char cue[] = "简简单单:请选择单个体";
5 j$ i8 X7 Y' A+ b9 K6 P char title[] = "简简单单:请选择单个体";
w! Y) d# B. Z/ r- X! {8 _. c' X+ ^# V int response=0;3 H0 J( T: k+ _; U* B X
tag_t object;
2 I( k# j, s1 _" B0 J l5 s6 S int count=0;8 v6 H0 Z7 Q+ |7 s( ]% o5 R
double cursor[3];
( H, ]$ ?# g3 E; l5 L tag_t view;
7 W8 H1 A. H k( m int i=0;/ D1 o7 d$ T7 o% C) f. N
double pt[3]={0,0,0};
* [4 Y3 U; {! x d) L double z1[3]={0,0,1};( @" q4 ^/ m" ]* e8 Y6 Z) u
UF_OBJ_translucency_t cyt=0;
* z% q% |8 R( L' @L10:
0 ?1 J# j5 J- L( [7 Z UF_UI_select_with_single_dialog(cue,title,0,init_proc, NULL,&response,&object,cursor,&view);
- W! S6 H* t, j' U if(response==UF_UI_BACK) goto L10; //如果点后退就跳转到L100 e" \9 c8 N) V7 }0 J- B
if(response==UF_UI_CANCEL) return; //如果点取消就退出
4 J2 O' y* s: w& K
5 d4 }" F( e. u. Y UF_DISP_set_highlight(object,0); //取消高亮显示
+ t- \1 Z+ `5 `6 }" L tag_t csys_tag; 9 { n8 ^) E7 F* n1 z( X! D
double min_corner [ 3 ] ; - m% M, [, L8 F3 U3 d
double directions [ 3 ] [ 3 ] ; # ]9 N1 V; b* |7 s+ C s. o4 W
double distances [ 3 ] ;
# Y; {7 q% ]: K- R2 N* X9 _1 X UF_CSYS_ask_wcs(&csys_tag);
5 h P# ?$ A8 e, b UF_MODL_ask_bounding_box_exact(object,csys_tag,min_corner,directions,distances);2 F, Y9 J. Y* w
2 j+ c: c. X z4 H8 `6 C char mesg_x[256];
3 g* N" _6 `2 d4 q- Q sprintf(mesg_x,"%f",distances[0]);
0 H {! m; X0 O1 S$ H, S9 r. u
) K7 k7 t% o" f1 n0 m' L1 ^ char mesg_y[256];
" l3 F, Q7 H6 H+ P2 K- X sprintf(mesg_y,"%f",distances[1]);
% I" x D3 U1 Q7 `5 g" F$ F6 Y# Q7 g2 w3 Q" d
char mesg_z[256];
. u1 ^7 k |' H+ ~ ?1 O1 C sprintf(mesg_z,"%f",distances[2]);
7 g, a7 |) ^( q6 R9 l- U, |0 m
0 k) g: f0 {. M& c# e( l char *edge[3] = {mesg_x,mesg_y,mesg_z};4 k( K5 `7 q$ P% T3 w% ?
tag_t blk_tag;
7 U3 S6 c8 h' F) W4 F UF_MODL_create_block1(UF_NULLSIGN,min_corner,edge,&blk_tag);% b3 [0 J0 M! ~5 s, W' d8 e
6 Q9 h& O( w5 v, H UF_MODL_ask_feat_body(blk_tag,&blk_tag);+ B d5 j% t; O3 n) o
UF_OBJ_set_translucency(blk_tag,100); //设置透明! c* m9 h& b5 {0 \; T- K
UF_OBJ_set_line_width(blk_tag,UF_OBJ_WIDTH_5 ); //设置线宽
7 t- ?$ ], C: a& S$ h2 A b6 o( y UF_OBJ_set_font(blk_tag,UF_OBJ_FONT_CENTERLINE); //设置线型
" d$ @* L: n: u5 {* s6 {' }
8 M# t, k- {. c/ i. C Y/* uf_list_p_t ll;1 q& Q5 Q5 w; K1 {( J$ R
UF_MODL_create_list(&ll);% Y: u# n% @! u& B# N
UF_MODL_ask_body_edges(blk_tag,&ll);6 M* @: {# a8 A! ]4 \
int ww;
& [) e' Y0 W$ t O6 s) ]' ` UF_MODL_ask_list_count(ll,&ww);9 [, ]% M# ]6 @, I
for (int i=0;i<ww;i++)
. P, Y4 Q2 ^0 _2 p0 b4 B5 F5 E! i {
; _5 ~4 m4 J, J. r N tag_t yy,curve1; ! q9 A# y2 m% b0 o$ K7 `' Y& D
UF_MODL_ask_list_item(ll,i,&yy);1 D8 m; m( X; _( ` N3 o; q( C
UF_MODL_create_curve_from_edge(yy,&curve1); //抽取曲线
x3 v$ s4 g& W# o }*/
5 P% W/ M o9 t' ^5 @. o. L& [ char box[256];
6 v% q; _# q/ a! a& f+ W9 H sprintf(box,"简简单单:对象尺寸(X-Y-Z):*%.2f X %.2f X %.2f",distances[0],distances[1],distances[2]);" z0 v, J! V S, \+ V
uc1601(box,1);& C! T4 r0 d* h, G& L2 g; J) p A0 {
* h. A9 ^5 f7 P: i; @ goto L10; //透明之后继续回到选择的状态2 @1 r. O7 e( K
- j& n& }' s' N9 g8 s4 a
+ C; I7 W7 s9 L* ~& }! [
5 a% ~4 _& L) S3 Q* s/ v' E# n' \
6 i$ X' v1 s, p" T9 o: u) F6 b6 ~5 S1 ^" s) d4 f8 M# V( K
UF_terminate();" R: i8 U& s2 j ?6 g: @
return;
& |4 K5 `2 t: G q; x. K) I) s}9 B- T) Y" e$ V0 R; c4 H- @
" [( E+ L; W4 w3 `" A; S+ ?
# h) n) Y r& u9 l* F
extern int ufusr_ask_unload()4 n3 z N4 @. t: ?- k) c% i
{
9 J6 l' ^; ^( H return UF_UNLOAD_IMMEDIATELY;
6 n9 R; F: O- Y& W# f) q}* u! m5 w/ m" v
5 m- c" g. w: S8 Y
|
-
-
评分
-
查看全部评分
|