|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
- i- Q9 Q/ \' J4 l+ b9 B6 o) [' z9 S+ b5 a
NX二次开发源码分享: 高亮镜像Wave linked的面
4 ~3 A |1 o5 S6 `
: S# L7 G; ?( c7 ^static void highlight_mirrored_face(tag_t face)( R$ a9 c9 o8 T+ J0 _1 Y$ t3 Q
{
: H3 R$ D# A$ Z int. S) f1 Q4 M* ]- D
ii,
3 h7 i8 x$ X4 T2 _- V jj,$ q# C2 g0 H: V, Z; C8 Y, S2 v2 m4 [
n_feats,7 `) h3 w7 p8 m* e
n_items;
& \3 {! r" z2 [' F4 j) ? char" v& k2 T: `* L3 v, E8 f( F
*feat_type;# Z( Y0 q; F6 I7 x
tag_t, H3 h4 W- _: d; }+ k/ p9 b
*feats,& _* D: V* b0 {9 f; [6 K
mirror,% }+ F# \& s0 D+ l. a! y
*results,
; {! J! f9 p% [& w$ O+ x3 Y4 ] *sources;
; I( _9 \% `( t' N$ \ |: ^1 O# y4 J
5 Q; \1 R X+ i( C' g5 N3 r' L n_feats = ask_face_feats(face, &feats);
6 n# G+ z; V9 e p8 P6 ^
6 P/ z9 J. m- r7 y+ W' f# D for (ii = 0; ii < n_feats; ii++)5 g. k; A2 q/ U. v3 ~4 s( Z
{% D8 d. v, b1 Q
UF_CALL(UF_MODL_ask_feat_type(feats[ii], &feat_type));6 W! L; b9 o1 Z0 a6 f' |
if ((!strcmp(feat_type, "MIRROR")) &&4 [( `" V" i9 s1 o
! UF_CALL(UF_WAVE_map_link_geom_to_source(feats[ii], face, TRUE,- M, |6 Z Z% T" a) v5 _5 d
&mirror)))
( m7 v# m* I) K" o8 V& q' T {
# N3 _5 ^5 H# \6 \3 N! l2 r) `
/ {. |- O4 J! |6 R7 g6 P /* Begin work around to PR 4244233 */
1 B3 u* V- h. S4 h0 Y5 U, w if (mirror == NULL_TAG)
. Q' S+ W! [7 I9 V/ c' v7 x* ]6 ^# N3 d {
+ I1 B9 v) a# `8 a$ Z UF_CALL(UF_WAVE_ask_linked_feature_map(feats[ii], TRUE,) z: m+ Q2 E0 T( k
&n_items, &sources, &results));( b. Q# i" P2 [5 D$ P
for (jj = 0; jj < n_items; jj++)/ E0 u) @9 z5 _3 E% q
{' q9 F3 P$ d8 V1 U
if (results[jj] == face)9 }4 Z& b, ]) {2 L- h0 b" L5 H- H
{) P) B* x3 _/ V$ l& G+ b
mirror = sources[jj];
( R( G( h1 u' K. q2 J0 ^ break;
8 N3 M& ^& N9 q }
: C, Q6 X& {1 j. v+ v& d0 G }* e0 z0 f9 s' L% V# @' M$ B
if (n_items > 0)" d. D( o$ _0 x& R" B' u: O* q! e
{8 Z4 L/ f8 `1 Q) ?3 J8 q- J
UF_free(sources);: l8 x3 r( E2 _
UF_free(results);. e/ j1 E @! ?) q t
}
# n- C4 h6 H, r- \0 w, E6 o: | }
0 W* A S3 h* y! V /* End work around to PR 4244233 */
$ \8 k; [- n, ^8 m0 Q% C% s
e+ Q, q3 w" c4 S1 J4 m9 {$ b7 S UF_DISP_set_highlight(face, TRUE);; |4 { R3 U s: T/ Q
UF_DISP_set_highlight(mirror, TRUE);
6 N( D. y4 z, r3 t; ~$ T uc1601("Mirrored face highlighted", TRUE);
o* T2 |( R( B. u$ h UF_DISP_set_highlight(face, FALSE);. |7 T7 K" O2 V% d' N( u
UF_DISP_set_highlight(mirror, FALSE);, R3 [# \0 `8 `
}
% x. ^3 O. t( @0 f- R: C+ X1 Q! L UF_free(feat_type);
; S5 y% X4 I3 L* Z o }
3 |- A# S- l, T9 a2 Q3 f' I7 ?5 i# b1 S1 S3 `
if (n_feats > 0) UF_free(feats);
/ c& t/ @1 f3 w}6 s N: a$ u& n3 X! X
$ t5 s+ a& @& n% C7 _* k |
|