|
求解决UF_MODL_ask_bounding_box函数 获得极点坐标 有时候数据不准确
$ a1 [( Z' v/ f) b/ @4 }% `1 w如下代码: 材料长方体是准确的 测量不规则实体 如何才能准确
3 K4 I0 C. f4 R#include <uf_modl.h>. h _+ q+ N) t' s
9 ~0 A |7 `; k! |; S" K//设置选择的实体类型
+ L( \; U+ e4 S9 dstatic int init_proc( UF_UI_selection_p_t select, void *user_data )+ l' `8 w: T: |2 x3 ?' t1 B+ u
{
5 W$ o9 J4 Z8 U' n+ Jint errorCode = 0;4 K( z: i' {' y# Q- @
int num_triples = 1; ; B' K5 [4 g* t. [& P1 V9 t
UF_UI_mask_t mask_triples[]={UF_solid_type,0,0,}; * C" x$ {& D& Y
errorCode = UF_UI_set_sel_mask(select, UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,num_triples, mask_triples);
* h/ z% ^, N0 K6 `/ zif( errorCode == 0)8 e/ F6 p D% A# M& X
{5 a$ |# m% O6 h
return UF_UI_SEL_SUCCESS;
1 N( h5 o; E( A" X" g( k}9 }9 G% p, J: m0 J/ F
else$ V l/ S) E7 i& N Y, X' s
{1 x( m5 M7 F+ x! D0 _0 b+ l3 \" k5 |
return UF_UI_SEL_FAILURE;
* i4 w+ a Z1 f% P9 o}
0 q! c; \* t3 `, M( b}' _/ X$ W6 N4 [( k
$ C& t) Y8 D c: z /* TODO: Add your application code here */
5 i8 W! R( R2 Q char *message="梅雷提示!请选择实体。";! X" V2 F4 M8 B7 i* S+ A; S; M/ I
char *title="梅雷-QQ1821117007";2 S2 v; H' r( z V, {$ o. A
int scope=UF_UI_SEL_SCOPE_WORK_PART;//UF_UI_SEL_SCOPE_NO_CHANGE
) X2 m8 ^! {) j) @4 B int response;9 n, |4 |& ^; ~% |! @
tag_t object_tag;
( I8 ~$ m1 r5 i# [: z# Q4 } double cursor[3]={0.0};! o! L( z# d6 R( V6 _ @4 `9 r
tag_t view=NULL_TAG;
5 w' m$ g& q6 G! M" DUF_DISP_set_highlight(object_tag,0); ; G3 Y+ D) w) v
+ \8 ^) J, Z" Sif (response==UF_UI_OBJECT_SELECTED) 9 n' b, G: @* ? l2 y) T
2 R7 C( f% r( q{
* \" S& j3 j3 }4 g double box[6],xyz[3];: c! @, o& j+ Y3 r0 p9 T- \
char msg[64];
7 K0 b! x1 W" s* B// 获得对象极点坐标& p! a* `4 `& [4 }! S/ z
UF_MODL_ask_bounding_box(object_tag,box);0 W5 g& |* u" X& I+ e
//box[6]对象极点坐标
& x6 f8 ~7 }5 _ //xyz[3]对象xyz最大外形
/ m$ u/ J: h# d* J! k xyz[0]=box[3]-box[0];# }3 [& z( Z" I8 Y
xyz[1]=box[4]-box[1];. k& g4 M4 c7 M+ X1 w! E/ x
xyz[2]=box[5]-box[2];
& Q$ Y' z' Q; r/ e8 H1 e% o4 a UF_UI_open_listing_window(); //打开窗口6 G6 D: l- B$ v
UF_UI_write_listing_window("对象极点坐标:\n");
' N- [+ \( x: T3 k* z sprintf(msg, "%f",box[0]); //浮点转字符串 g1 l4 C' e, i6 F2 Y0 x
UF_UI_write_listing_window(msg);
4 ~( C# f! b# b# B/ q/ q UF_UI_write_listing_window("\n");
% Y3 a. I$ A \ l+ z& g! H sprintf(msg, "%f",box[1]);
: o9 `8 u: u+ e { UF_UI_write_listing_window(msg);
+ w! q* J. E: K UF_UI_write_listing_window("\n");
# B. n8 ]( j9 @; {! O/ q" A sprintf(msg, "%f",box[2]);
: d+ S/ j; e# R( `4 d: m: o) A UF_UI_write_listing_window(msg); ' f6 u3 S3 b" a# X, R) E1 ~
UF_UI_write_listing_window("\n");
2 }; e4 X2 n" O7 r6 k. n- T sprintf(msg, "%f",box[3]); . u; P* l" R: a: ]) m
UF_UI_write_listing_window(msg);
' n! u" e' @) b. M- c UF_UI_write_listing_window("\n");
& B. e; b* N# W4 y& B+ X& x" v- W% a sprintf(msg, "%f",box[4]);
8 }8 v3 c; y% ?/ u UF_UI_write_listing_window(msg); : x) ~3 @% H5 i# n+ r3 h+ G! L
UF_UI_write_listing_window("\n");
+ R$ ~/ N- r7 p* P) } sprintf(msg, "%f",box[5]);
/ N$ G+ l& Q+ J7 b. h UF_UI_write_listing_window(msg); - B% q4 F% g F! L" U+ U
UF_UI_write_listing_window("\n"); 3 Y4 Z% J5 N( i8 O4 ?
UF_UI_write_listing_window("对象xyz最大外形:\n");
9 R: h5 C4 D, ^9 e' } W9 |3 j sprintf(msg, "%f",xyz[0]); //浮点转字符串
& T) O1 d- u0 N UF_UI_write_listing_window(msg); 5 j3 Z) }# _" |1 O! v& X6 t/ e
UF_UI_write_listing_window("\n"); + f" r$ o/ S: Y3 E: z
sprintf(msg, "%f",xyz[1]);
8 \ g6 h2 ~- E UF_UI_write_listing_window(msg);
) j: P! q6 b- k' j UF_UI_write_listing_window("\n");
5 O8 U) _% X9 C* }, d$ `, e sprintf(msg, "%f",xyz[2]); 5 @6 x! r9 e& _5 h! M7 D
UF_UI_write_listing_window(msg); + @9 T1 R* U( Y8 \3 E6 L
UF_UI_write_listing_window("\n");
" J! b1 V2 g u4 L/ d" Y' z}! p6 | [- ^2 Q: f3 c" c
/* Terminate the API environment */
9 n. Z. v9 W4 p* [+ ~ P |
|