|
求解决UF_MODL_ask_bounding_box函数 获得极点坐标 有时候数据不准确 % a% H- U5 d% \9 G- F
如下代码: 材料长方体是准确的 测量不规则实体 如何才能准确
! T9 b2 k6 o% |% k#include <uf_modl.h>
2 o& b/ E6 Q J0 [/ ~
- O" k Y- l8 d; T8 [//设置选择的实体类型
+ a4 c) B. U* Ostatic int init_proc( UF_UI_selection_p_t select, void *user_data )
5 Z& o6 h& s' [- s T7 N4 n5 v{
- K8 a* X! Z& f5 f/ R" Gint errorCode = 0;
1 `- n. R& h! kint num_triples = 1; ( t7 g9 c1 r3 ]5 B, D3 s, o
UF_UI_mask_t mask_triples[]={UF_solid_type,0,0,}; : v# V( T6 H7 D. }. Z- U
errorCode = UF_UI_set_sel_mask(select, UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,num_triples, mask_triples);6 E; u$ H8 W. e: v3 P' H, a
if( errorCode == 0)
% L% T, t& Z; c" K4 a& E( \' n{% h1 r# X- ^' k: l; ], r/ ]: |" r
return UF_UI_SEL_SUCCESS;; b( M2 {4 S/ ^9 @/ `: |( X
}) K: {& ~7 Q: r
else& P" D/ H" m' @, q0 l0 ]( Y
{' E0 u% i8 F" x, O* O; K8 C7 _0 B
return UF_UI_SEL_FAILURE;# l7 G$ S$ t+ D. Z% C* s9 T$ Q( J% _6 |
}
( p- ^) i. T$ G9 p. r' ^$ q- G}# M; `4 G& n& W
0 k8 b+ g7 j* p! A /* TODO: Add your application code here */5 x, ~1 T! m4 [ n: A
char *message="梅雷提示!请选择实体。";
/ }( O( X; \; ]+ ]! ]. d: @4 T3 G char *title="梅雷-QQ1821117007";/ \7 y% {7 ^& m k
int scope=UF_UI_SEL_SCOPE_WORK_PART;//UF_UI_SEL_SCOPE_NO_CHANGE
5 g1 K: t1 C+ z3 C! ^+ e int response;3 t L( A+ ~: R2 l. O
tag_t object_tag;3 ~0 | }' i5 G2 _6 ?& V2 K/ l
double cursor[3]={0.0};* w. x) m( \5 p% K# O8 @
tag_t view=NULL_TAG;0 v, e# e# _# d' A5 j
UF_DISP_set_highlight(object_tag,0); / ^8 c5 h6 C( H( n
1 Z' {1 B' u" n9 w
if (response==UF_UI_OBJECT_SELECTED) 6 n( e0 J4 ~3 e
5 I% |6 p& @$ M. `
{
, o7 ?4 _' g. g double box[6],xyz[3];* j3 E: g3 `5 R0 ?
char msg[64];6 j( v+ d' j) w& O- h7 |
// 获得对象极点坐标8 n' _( y' s- \2 p! t
UF_MODL_ask_bounding_box(object_tag,box);
$ O3 f; N: H0 z g% _" R" U$ i //box[6]对象极点坐标4 h) S/ ^% L1 }0 D) U
//xyz[3]对象xyz最大外形; B B8 z. y! s2 u& V/ b# {# N
xyz[0]=box[3]-box[0]; b+ m; I- g. a Y) u( r
xyz[1]=box[4]-box[1];9 z- ~: J5 V. S
xyz[2]=box[5]-box[2];6 Y. w0 Q! @4 N) M8 W! h! A! U
UF_UI_open_listing_window(); //打开窗口! I" T% \) r$ Y8 ]& ` O, G
UF_UI_write_listing_window("对象极点坐标:\n");
h0 a" q7 M/ d! E6 I, V; X+ B sprintf(msg, "%f",box[0]); //浮点转字符串
( j. F; ^- {! v1 I UF_UI_write_listing_window(msg); - w \, G% N- Y R k
UF_UI_write_listing_window("\n"); 5 V- g) |. ]% y' @( n$ y( f
sprintf(msg, "%f",box[1]);
# n' m5 ?, ?# j8 S5 L4 B9 u UF_UI_write_listing_window(msg);
; ?0 ~/ ?9 i3 `5 p UF_UI_write_listing_window("\n");
% h) `3 i' v" I( Z2 [9 d/ F sprintf(msg, "%f",box[2]);
0 V' o8 \2 W2 o9 w; V; \! U& ~& ? UF_UI_write_listing_window(msg); ! w7 P5 {+ m3 ~% e) N
UF_UI_write_listing_window("\n"); . ~7 c' ~- E" N: f
sprintf(msg, "%f",box[3]); 5 w# Y% l! c; \# P Q; }8 T1 A, u" S
UF_UI_write_listing_window(msg); - b& ~5 K- i e4 r8 T7 v# W
UF_UI_write_listing_window("\n"); ; W4 b; {* o2 Z* E7 ] S( |3 E
sprintf(msg, "%f",box[4]);
2 ~5 p$ @. l; N+ x0 Q! w UF_UI_write_listing_window(msg); ! l N6 K& {9 e9 g% s7 z
UF_UI_write_listing_window("\n");
) E& M9 E" E: C+ g! Y. a sprintf(msg, "%f",box[5]);
( }& j- X9 S4 n* W# ]% G# [. G UF_UI_write_listing_window(msg);
( t( E7 N( x' @8 _$ |4 z+ p UF_UI_write_listing_window("\n");
/ }1 j8 |* O1 A- ]3 v9 x4 I UF_UI_write_listing_window("对象xyz最大外形:\n"); 9 i3 N& ]+ T6 ]2 p7 a
sprintf(msg, "%f",xyz[0]); //浮点转字符串
9 D* w2 t& ^$ y. E; e UF_UI_write_listing_window(msg);
. G0 @. \2 H7 G8 N! _" @ UF_UI_write_listing_window("\n"); 0 c* m" K6 c1 G$ X6 ^
sprintf(msg, "%f",xyz[1]); * A% x* u7 Y. S. ^
UF_UI_write_listing_window(msg); ! ?2 @& I0 U& M, n
UF_UI_write_listing_window("\n"); 1 F+ @0 m6 [$ ~. ?
sprintf(msg, "%f",xyz[2]); ! x. D$ h7 ]" b3 w+ ]8 Z+ b
UF_UI_write_listing_window(msg);
8 b+ E$ [! k" s UF_UI_write_listing_window("\n");
% R* p) B [/ y7 q}: E& q" T3 h% T7 z
/* Terminate the API environment */; S5 F, d4 k; H& A* W: O; x
|
|