|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
选择方式包括通过mask过滤,通过type选择,或者通过选择所有的对象。) M$ x6 |7 G! @7 p
! H6 d+ U1 @9 O+ Y8 b7 h
/------------------------------------------------------------------------------
! Y# u- ~" N5 M3 E// Selection with mask
, H1 u' K6 l d+ v$ `, p1 o//------------------------------------------------------------------------------+ J: h" e+ D! t( N
TaggedObject* MyClass::select_by_mask()
7 ^0 T) u s( l% n. ?& n( X% M: V& s{
, ]! f! I( S0 @" FNXString message("Select an object by mask:");
1 X* V6 S s) _% w% y& Z: fNXString title("Select object");6 B/ n% C5 B7 b9 R% u
Selection::SelectionScope scope = Selection::SelectionScopeUseDefault;3 J* B9 i" R, _4 E% T, c) D" L
Selection::SelectionAction action = Selection::SelectionActionClearAndEnableSpecific;1 m2 b* h2 W* Q3 ~0 X
bool include_features = 0;
! s" e" H' _1 {* K/ j' u) `bool keep_highlighted = 0; // Define the mask triple(s), see also uf_object_types.h." x8 c- J, O& |9 M* ]2 z0 F
// Uncomment or combine the desired mask triples A3 g0 X3 a$ s2 ^; N- Y
std::vector<Selection::MaskTriple> maskArray(1);
6 n' g& f9 p2 a7 B+ v% KmaskArray[0] = Selection::MaskTriple( UF_solid_type, UF_solid_body_subtype, 0 ); // Bodies
. M5 ~9 W# E4 ]+ ~0 h/*
7 {) `' f( S9 a$ o* E$ v; ?maskArray[0] = Selection::MaskTriple( UF_solid_type, UF_all_subtype, UF_UI_SEL_FEATURE_ANY_FACE); // Faces4 |! r9 t+ ^$ ]) r
maskArray[0] = Selection::MaskTriple( UF_solid_type, UF_all_subtype, UF_UI_SEL_FEATURE_ANY_EDGE); // Edges$ L4 p( T' I: |( w5 G' p2 f
maskArray[0] = Selection::MaskTriple( UF_component_type, 0, 0 ); // Components
; e; q- S) A, E# `9 i$ e& u0 X+ }maskArray[0] = Selection::MaskTriple( UF_line_type, 0, 0 ); // Lines
' E& Y+ T& f# M: {maskArray[0] = Selection::MaskTriple( UF_drafting_entity_type, 0, 0 ); // Drafting objects
& B, M, L3 D/ m4 H9 l" K; V*// g* ], W+ X9 f4 V9 c5 ^8 l
Point3d cursor;
6 ^" [; n; ~( w+ C( T; ~7 W$ z- [TaggedObject *object; // Select objects using filter defined by maskArray triples3 r n! t3 M. K8 y# ]5 w* _
Selection::Response res = selmgr->SelectTaggedObject(
" E4 J( t6 A4 L1 z message, title, scope, action, include_features,/ G1 D, P" j+ Y0 s7 ?% f% \6 Y4 m
keep_highlighted, maskArray, &object, &cursor ); if( res == Selection::ResponseObjectSelected )+ n: ?! [" F4 ^3 |3 F& w, |
{8 Z, T4 r4 ~ Y
return object;
0 Y1 C0 W: o0 o/ J$ [0 n: o8 d7 S}, T9 Y- f5 l. Q; a" M
return 0;
( A& J; }- a; |4 G+ ?& s}//------------------------------------------------------------------------------
' A) u) ]: e" L) K K& M" A// Selection with type array0 h$ Q2 {' V; N. ?. C& K/ Z& p/ G% `
//------------------------------------------------------------------------------
- v, {: _# t, `9 k0 c" L: vTaggedObject* MyClass::select_by_type()$ p7 h7 M6 [* Q8 ?
{
) @) K/ k2 n4 g" ~2 ONXString message("Select an object by type:");& B3 B% I8 M2 Z: w* ]" _
NXString title("Select object");7 u4 _$ w4 q: h! Q$ W8 }, Y
Selection::SelectionScope scope = Selection::SelectionScopeUseDefault;
7 G0 m! G9 B6 V, w" L5 E" Z4 g5 @bool keep_highlighted = 0; // Define the mask triple(s), see also uf_object_types.h.0 U! D4 N; E! ?
// Uncomment or combine the desired types
9 e) a: h( _5 I% N4 \7 Z& y. Cstd::vector<Selection::SelectionType> typeArray(1);- X' D. H. y8 _( }# s
typeArray[0] = Selection::SelectionTypeAll;- j4 H; M5 z; C. A/ s' l
/*9 c( n. {# p3 z2 I
typeArray[0] = Selection::SelectionTypeFeatures;
4 G! `+ O- V0 StypeArray[0] = Selection::SelectionTypeCurves;
" J- e# S J7 Y7 WtypeArray[0] = Selection::SelectionTypeFaces;" ~# A/ a( }$ N, l
typeArray[0] = Selection::SelectionTypeEdges;0 R4 @% ]: o$ ]5 l) p
typeArray[0] = Selection::SelectionTypeCurvesAndEdges;. l% s/ S! A( y5 a9 e3 b( R
*/
. l; }, D1 c3 z% `# Q, p2 hPoint3d cursor;. |9 s) _( h4 d5 J
TaggedObject *object; // Select objects using filter defined by type array8 A8 Q% g0 T: C
Selection::Response res = selmgr->SelectTaggedObject(/ w( V4 ^, @8 _: A5 t: y5 C8 |4 O
message, title, scope, keep_highlighted, 7 i- ~8 l4 G. d8 ^2 I. i1 ]: h! V& N
typeArray, &object, &cursor ); if( res == Selection::ResponseObjectSelected )( \$ h' ~ F' \1 v
{$ j! L# D7 }; N% _2 O
return object;+ O' K* N$ }- k' b
}
/ ]( ^, \8 r( w% `3 y* c$ t5 _return 0;
/ [) k9 [9 Q% H8 B5 D}//------------------------------------------------------------------------------0 N$ Q2 J0 P- y& Q O$ C/ ]
// Selection any objects$ ], H) E) ~3 P+ j6 w- v; {
//------------------------------------------------------------------------------; c* q/ t3 N% o6 S2 c" L
std::vector< NXOpen::TaggedObject * > MyClass::select_any_objects(); m2 U- d' M2 Y4 N3 f; \1 r z: Z
{, X; H8 V$ n4 G5 G# t) [+ O) N
NXString message("Select any objects:");
' O5 L/ F7 C0 E9 A$ Z i) @4 xNXString title("Select objects");
w0 \- ^4 [3 Z$ aSelection::SelectionScope scope = Selection::SelectionScopeUseDefault;/ t2 n* Q4 C$ k4 T# x6 d; m6 k
bool include_features = 0; 8 _. o5 \% [, x8 g+ q3 R) X
bool keep_highlighted = 0;/ r/ Y) V+ s$ `+ n9 G; R6 ]% C
std::vector< NXOpen::TaggedObject * > objectArray; // Select any object array6 o5 Z, N6 U8 D+ o; G
Selection::Response res = selmgr->SelectTaggedObjects(- Y& N4 w5 X5 x# J/ N
message, title, scope, include_features, 2 C( k; R9 ^4 L* }
keep_highlighted, objectArray ); return objectArray;, x4 ~; C: B: m" h8 s
}3 P! g) Y( a' ~
# V3 C; b! S7 X) ?" X/ t& i
: ?, b( ~' \6 E' _5 L5 ^" E
4 a+ |( U# M7 S |
|