|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
选择方式包括通过mask过滤,通过type选择,或者通过选择所有的对象。
3 u3 V) W8 \, @( I9 |
/ I4 x. W( s7 w7 g/------------------------------------------------------------------------------$ r6 Y$ X7 i6 j* I
// Selection with mask
8 X# P3 z1 U8 A2 I; O//------------------------------------------------------------------------------
# G0 Y& h; J" }& f- MTaggedObject* MyClass::select_by_mask()
2 @- r3 w9 G% N d) U. v; k6 _4 g{, g. m+ s* @9 }! J
NXString message("Select an object by mask:");
. ~- q* [* w: k0 E& rNXString title("Select object");
- G! F: u) z$ s& }Selection::SelectionScope scope = Selection::SelectionScopeUseDefault;) O0 [ t6 N* d" w
Selection::SelectionAction action = Selection::SelectionActionClearAndEnableSpecific;
" c5 O: G" e: K$ C6 v& w( jbool include_features = 0;
' h' L2 u8 A4 _9 r( T' tbool keep_highlighted = 0; // Define the mask triple(s), see also uf_object_types.h.
/ U7 } P) J2 N/ G// Uncomment or combine the desired mask triples P. p% H" @: _7 h0 O% |! v! [" S
std::vector<Selection::MaskTriple> maskArray(1);- {) g( k+ r$ z0 o
maskArray[0] = Selection::MaskTriple( UF_solid_type, UF_solid_body_subtype, 0 ); // Bodies
) g2 ?2 z' ?2 b2 [, ^/*0 c0 [2 n6 m! _. z2 q9 E' @" I( O
maskArray[0] = Selection::MaskTriple( UF_solid_type, UF_all_subtype, UF_UI_SEL_FEATURE_ANY_FACE); // Faces
/ s1 ~6 k' ^3 y8 vmaskArray[0] = Selection::MaskTriple( UF_solid_type, UF_all_subtype, UF_UI_SEL_FEATURE_ANY_EDGE); // Edges7 \0 C y1 N7 h/ O
maskArray[0] = Selection::MaskTriple( UF_component_type, 0, 0 ); // Components- g, Z7 l+ J: h2 u! u
maskArray[0] = Selection::MaskTriple( UF_line_type, 0, 0 ); // Lines
# ~0 m ^ t/ Y; ~) rmaskArray[0] = Selection::MaskTriple( UF_drafting_entity_type, 0, 0 ); // Drafting objects9 e9 Y9 ^ x. r7 n7 R
*/2 E) H6 D7 w4 _2 y- e( q
Point3d cursor;+ T6 i- b/ \1 B& v7 c3 D
TaggedObject *object; // Select objects using filter defined by maskArray triples
$ F( f0 n& { O: h$ r* b1 h- @7 }1 [Selection::Response res = selmgr->SelectTaggedObject(8 t# N8 L# `' x+ I
message, title, scope, action, include_features,
$ ^4 [7 p* y5 c2 V' Q keep_highlighted, maskArray, &object, &cursor ); if( res == Selection::ResponseObjectSelected )) T$ l/ n/ n l( [0 }
{1 C! x2 D( p8 u
return object;
% J' j# K5 E" y: d% J7 F: {}8 c) [2 R% R) W& J8 n- n
return 0;
: H2 y% ]' U, l( I! ^3 l% v}//------------------------------------------------------------------------------
$ g8 {" N6 C' v: S// Selection with type array* x# g* D4 i6 \" P* r
//------------------------------------------------------------------------------
Z$ s0 G4 @- b4 O; }TaggedObject* MyClass::select_by_type()
' D, ~ h. N. @% k5 `) r& }& ?{# ^$ ~2 {( w1 F9 @9 Z1 a8 l
NXString message("Select an object by type:");
4 i9 R8 g. x7 g: h1 N* ENXString title("Select object");- X- a2 B/ c& r8 @
Selection::SelectionScope scope = Selection::SelectionScopeUseDefault;, K5 R" Q- u. @
bool keep_highlighted = 0; // Define the mask triple(s), see also uf_object_types.h.
* T5 }% h( e5 l" r1 h" M// Uncomment or combine the desired types( p: Z. ~! Z: ^
std::vector<Selection::SelectionType> typeArray(1);
# r8 k5 [: ^% }- T$ b8 ]typeArray[0] = Selection::SelectionTypeAll;( j- U( ]/ d' Z+ _4 ?
/*
! D; E4 u H" k6 QtypeArray[0] = Selection::SelectionTypeFeatures;! e6 w, m5 @: e- p
typeArray[0] = Selection::SelectionTypeCurves;
& H" v; h. s/ ~) @. WtypeArray[0] = Selection::SelectionTypeFaces;
9 ^1 F* A: P/ k2 k% R0 A3 ktypeArray[0] = Selection::SelectionTypeEdges;4 Z1 ]) C' u4 ]
typeArray[0] = Selection::SelectionTypeCurvesAndEdges;8 p: c7 H2 y0 i
*/3 j1 F" U* w( I% _% _/ ]8 A4 p
Point3d cursor;8 F5 y9 i' S6 g
TaggedObject *object; // Select objects using filter defined by type array
. K, v& I9 K$ a) g+ qSelection::Response res = selmgr->SelectTaggedObject(
_; h9 a' b" [ message, title, scope, keep_highlighted, : R$ H* w2 a/ C% b3 P. Y
typeArray, &object, &cursor ); if( res == Selection::ResponseObjectSelected )/ V1 T; z1 h. J
{
4 R7 g$ V- h* a# C return object;: M4 @3 z- W { t
}4 }1 {0 S" g4 @ b! q
return 0;, d$ B6 g; Q; T; u$ c; T( |
}//------------------------------------------------------------------------------2 t+ D- `4 E. p7 S+ P
// Selection any objects7 @! I7 m! q" B
//------------------------------------------------------------------------------, q: q' Q) f$ m6 P+ b" u O
std::vector< NXOpen::TaggedObject * > MyClass::select_any_objects()# M6 }' x+ e; F: K. I+ l- y* z6 @
{
9 G6 n8 `7 S+ w6 M6 p5 HNXString message("Select any objects:");2 {, B5 r1 Y4 A8 s# S
NXString title("Select objects");% m5 Y- ?& ^4 }) n3 B5 [" }3 B
Selection::SelectionScope scope = Selection::SelectionScopeUseDefault;8 a7 `( X8 \! a. W
bool include_features = 0; 5 \0 e' v: I' G
bool keep_highlighted = 0;
1 K+ M4 M& }( L9 lstd::vector< NXOpen::TaggedObject * > objectArray; // Select any object array
+ Q! h* C" |8 l9 t5 b/ ^Selection::Response res = selmgr->SelectTaggedObjects(1 E6 P4 P3 b6 l
message, title, scope, include_features,
; X1 c0 ~% ^. K. Q; n2 F keep_highlighted, objectArray ); return objectArray;
4 p+ h$ |# V* @4 _}
" z& P0 c$ D9 @6 a W7 b6 M1 Q( `, m! t
, l5 s: Q6 _8 k! V: G7 s
R. a! j: v' P' T/ c0 b
|
|