|
求解决UF_MODL_ask_bounding_box函数 获得极点坐标 有时候数据不准确
e8 i+ W7 P! w8 E如下代码: 材料长方体是准确的 测量不规则实体 如何才能准确
( t( Z8 I& _+ q#include <uf_modl.h>
# _! |4 ]* P0 H$ j, O7 w; r f5 a; M1 ^. S# | `* I3 A
//设置选择的实体类型; c5 v0 i/ G5 @8 ^" q# }3 H6 w
static int init_proc( UF_UI_selection_p_t select, void *user_data )9 u: P5 ~ U* n+ ]* }
{
% K& A1 W. p1 [int errorCode = 0;
8 I3 G# D g" D3 L6 Dint num_triples = 1; ; P. _6 A! [* c C, C2 t* F- n! E
UF_UI_mask_t mask_triples[]={UF_solid_type,0,0,}; , [9 |; E7 K4 E- w3 R9 s/ L+ F# ?0 ^
errorCode = UF_UI_set_sel_mask(select, UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,num_triples, mask_triples);* p5 o4 s; F' H" w" k/ D
if( errorCode == 0): m; Y: y9 G; O! C
{( l2 m/ }' h. j2 y
return UF_UI_SEL_SUCCESS; x; ~! I2 z' o$ ^
}+ G) ~0 x0 Q4 o. |
else
! f' K& ^% T- `/ t{* d* E3 a2 ]' o* a* v
return UF_UI_SEL_FAILURE;
/ Z8 B2 {, j5 {# t1 `) }3 t2 B( ~. t}
- x" Q/ r: t6 m+ I9 {5 a8 \, G}4 X% {) [) i) H. Q- s
2 y% d4 f- C# Y# ?: R
/* TODO: Add your application code here */
?% e% z* v1 ^( x5 R0 J! D char *message="梅雷提示!请选择实体。"; j7 f. B; S( \2 G ?
char *title="梅雷-QQ1821117007";
4 x$ ~9 ^5 E, b7 m int scope=UF_UI_SEL_SCOPE_WORK_PART;//UF_UI_SEL_SCOPE_NO_CHANGE
# b9 _1 e+ a3 S/ f& k8 d int response;
) U j: N' t, u6 }2 Z+ r6 i7 H tag_t object_tag;: }4 Z* Y/ r; R8 ]
double cursor[3]={0.0};: D; L: {! g( B/ c* S" @* W
tag_t view=NULL_TAG;
* r) J0 b* Y. _7 G9 @UF_DISP_set_highlight(object_tag,0); $ U" ^: V& N3 @* x, G* i x
- b, T6 u* ^. P; ]if (response==UF_UI_OBJECT_SELECTED)
* w/ B/ d6 \9 @; M
, h! J- L$ R5 v( S# D8 K( F B: {4 n{1 H! d( N) w S, a
double box[6],xyz[3];
r; Y% U% b$ G- y6 r. {1 v. }6 A/ Fchar msg[64];) e+ X4 B6 }& G$ n& E
// 获得对象极点坐标
r/ G( ?9 e8 i9 H5 I) D UF_MODL_ask_bounding_box(object_tag,box);/ r: _$ J" r% |. z
//box[6]对象极点坐标
3 I8 [ G% C# O; z: z //xyz[3]对象xyz最大外形
# z$ I2 ]" |; ^0 }3 P xyz[0]=box[3]-box[0];. {: X7 h# Z$ p0 ?. B
xyz[1]=box[4]-box[1];
5 R0 }: v* V# E xyz[2]=box[5]-box[2];0 |, C% p X3 N$ _. v- l
UF_UI_open_listing_window(); //打开窗口
: [2 L5 ]0 l/ z: h1 t UF_UI_write_listing_window("对象极点坐标:\n");
6 }: `* ?( P n2 H) v) F3 z4 }" i. o sprintf(msg, "%f",box[0]); //浮点转字符串
" {4 P, J/ n) g UF_UI_write_listing_window(msg); . L$ t5 z; `" Y7 W. d
UF_UI_write_listing_window("\n");
6 N# N. b2 E4 ~/ N) D& F sprintf(msg, "%f",box[1]);
* D6 o+ p1 h2 J0 h l) B UF_UI_write_listing_window(msg); ) V+ H0 t$ x- m- B" O3 W. q
UF_UI_write_listing_window("\n"); ' b' D: ] Z# R5 c5 B
sprintf(msg, "%f",box[2]);
+ I$ ^ s) {; \6 d0 D UF_UI_write_listing_window(msg);
- z+ q- N8 R/ A* w UF_UI_write_listing_window("\n");
; Y" H( }! F& G7 f sprintf(msg, "%f",box[3]);
0 f+ w7 C, u) |- E( c% K$ Z& Y UF_UI_write_listing_window(msg);
0 J5 @& r. A" h4 s UF_UI_write_listing_window("\n");
" r, b+ f2 u2 s% b& f4 g sprintf(msg, "%f",box[4]);
6 h8 Q7 J0 b/ Y+ @* n3 Y UF_UI_write_listing_window(msg); 6 q% y; h! [; b7 e. z
UF_UI_write_listing_window("\n");
6 ~$ w: W5 [% G+ o, d8 q6 M6 w& T sprintf(msg, "%f",box[5]);
# ]4 i0 ^' j B3 C' V1 \ UF_UI_write_listing_window(msg); ' @+ V6 ]" F9 d7 E7 [2 |# Q& F; u! C0 c
UF_UI_write_listing_window("\n");
7 z9 Y. v& S5 V: F) h UF_UI_write_listing_window("对象xyz最大外形:\n"); # X& {* M8 N. T& H9 t! K/ Y! K8 h
sprintf(msg, "%f",xyz[0]); //浮点转字符串
_5 Z3 i; s1 T2 @+ E3 u UF_UI_write_listing_window(msg);
, k7 b7 O5 C* j6 N5 P0 t UF_UI_write_listing_window("\n");
" Y; a2 Z9 m2 [8 g. c8 K' x# o sprintf(msg, "%f",xyz[1]);
2 E/ T6 f4 `: \6 r8 v, u$ w UF_UI_write_listing_window(msg); 1 @ w6 p' _* F) j/ B
UF_UI_write_listing_window("\n"); 4 c) ?, ?- B5 Z% T; H. c# h
sprintf(msg, "%f",xyz[2]);
5 L0 s/ p+ c5 P1 c/ }- g$ o UF_UI_write_listing_window(msg); 1 c2 x# ]$ \/ B6 }3 `4 P
UF_UI_write_listing_window("\n");
* S0 _8 Z. A* D4 Y0 a2 {% I4 a3 v+ B}
% Z4 \; U; Q, S /* Terminate the API environment */
4 T) o, G6 U, d9 E3 o |
|