|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
选择方式包括通过mask过滤,通过type选择,或者通过选择所有的对象。
) z% F1 t |6 v. d, n2 T' | \2 G1 F. k) R! Q' c" j+ _
/------------------------------------------------------------------------------
# Y$ Z+ \3 Q9 E" L& g7 l// Selection with mask
: C$ I* ]- Q6 h1 G$ T" M2 Y//------------------------------------------------------------------------------( y' }6 u2 m! C7 R5 W
TaggedObject* MyClass::select_by_mask() ?2 ~3 G. t1 g% P* a& f) s+ G! c
{
( H# V Z. O4 h7 V- d6 @5 zNXString message("Select an object by mask:");
" x' P1 [% K+ E$ DNXString title("Select object");
3 \8 K+ ~4 O& y; P, M: q! LSelection::SelectionScope scope = Selection::SelectionScopeUseDefault;
; X5 H% K( x6 n6 p; ^1 x7 y1 CSelection::SelectionAction action = Selection::SelectionActionClearAndEnableSpecific;6 \5 L8 Z9 g7 f( w
bool include_features = 0;
5 g9 d1 ]: E; q a! d; {9 b8 ?bool keep_highlighted = 0; // Define the mask triple(s), see also uf_object_types.h.
6 Q; c+ j6 v# E' ?, }// Uncomment or combine the desired mask triples
5 t/ n, b9 n% s( @: m! Kstd::vector<Selection::MaskTriple> maskArray(1);; f* c$ h: i+ {5 [2 N1 h2 F; Z
maskArray[0] = Selection::MaskTriple( UF_solid_type, UF_solid_body_subtype, 0 ); // Bodies
1 y. ^3 p7 L+ I$ k4 H/*6 J- g3 W5 N' z& n* l1 w8 A
maskArray[0] = Selection::MaskTriple( UF_solid_type, UF_all_subtype, UF_UI_SEL_FEATURE_ANY_FACE); // Faces, \! W( K6 X5 o2 b \" E
maskArray[0] = Selection::MaskTriple( UF_solid_type, UF_all_subtype, UF_UI_SEL_FEATURE_ANY_EDGE); // Edges
i Z$ P. t4 a+ B3 v$ s0 F5 UmaskArray[0] = Selection::MaskTriple( UF_component_type, 0, 0 ); // Components
* f9 y5 ?( h6 k9 P; Z7 l7 ^maskArray[0] = Selection::MaskTriple( UF_line_type, 0, 0 ); // Lines5 J& P3 N" F9 X/ k! N
maskArray[0] = Selection::MaskTriple( UF_drafting_entity_type, 0, 0 ); // Drafting objects
8 ` I6 w+ G* L* x; O* B" S, F*/
2 ^8 L9 v' H: H* F! D, oPoint3d cursor;* l8 |/ S" Y4 T+ Q9 I$ K3 Z9 F
TaggedObject *object; // Select objects using filter defined by maskArray triples
: Q! S# M/ x" O. }, S% nSelection::Response res = selmgr->SelectTaggedObject(
& T, j3 T8 ~- `% T$ E. h* A message, title, scope, action, include_features,
6 C& ~7 z; ], @! v0 m5 k keep_highlighted, maskArray, &object, &cursor ); if( res == Selection::ResponseObjectSelected )
* G4 P. E$ D+ j: I# e% N{
. b5 r7 \% M; p2 F return object;: Q+ j2 Z y6 p$ I9 l( g
}" w4 ?' t! H4 G) `3 j
return 0;) k9 v3 Q* F3 j! l# ]
}//------------------------------------------------------------------------------( v8 v$ e: k3 c4 Z3 R$ T! X' B4 d
// Selection with type array
0 c" r1 n; u0 } m6 N% O//------------------------------------------------------------------------------/ _6 i+ p; k1 ]) ]9 y
TaggedObject* MyClass::select_by_type()7 ~, k# t( p$ k/ B/ M+ ^! g
{
5 Y' {# ?1 q) T( oNXString message("Select an object by type:");
! p* t! ~# S& K% C! c% q5 V$ xNXString title("Select object");
1 Y* K1 ]$ o( m5 _5 I* |Selection::SelectionScope scope = Selection::SelectionScopeUseDefault;
+ e% T: y+ Z2 Y/ Y* B: @) @- F0 ~bool keep_highlighted = 0; // Define the mask triple(s), see also uf_object_types.h.
0 w4 |& w+ S5 L5 D// Uncomment or combine the desired types
2 [& R6 i: h, j$ e4 ]8 ?; estd::vector<Selection::SelectionType> typeArray(1);. L6 j/ q8 J6 ~: s
typeArray[0] = Selection::SelectionTypeAll;
]7 t5 A# |; l2 Y& h" w/*
% g; a0 |& d8 m1 }; z1 vtypeArray[0] = Selection::SelectionTypeFeatures;
" K& f% b o6 N) B A4 V# a1 ftypeArray[0] = Selection::SelectionTypeCurves;
7 F/ j2 S* D; x+ G" B# [3 GtypeArray[0] = Selection::SelectionTypeFaces;# ]! s' e1 t" l" A4 Z8 g
typeArray[0] = Selection::SelectionTypeEdges;
- v7 q1 [( G7 r3 V) Y7 R0 R) htypeArray[0] = Selection::SelectionTypeCurvesAndEdges;: H Z$ k. ?, b7 B, ~
*/" Y8 D* N7 n9 U- V) B, u
Point3d cursor;
) l( `& ]- @$ a6 r3 YTaggedObject *object; // Select objects using filter defined by type array
3 c4 n$ F8 ?. M6 gSelection::Response res = selmgr->SelectTaggedObject(5 t& v0 J$ N5 r8 D4 d
message, title, scope, keep_highlighted, 1 X: J3 e+ w! ~0 F \
typeArray, &object, &cursor ); if( res == Selection::ResponseObjectSelected )
: Z+ h4 X: K) j E{
2 L& B+ E, l1 [" o8 e return object;3 ^2 {7 `! Y H
}) C" d8 B1 s. N
return 0;! J- ]% g9 E( k) }- L
}//------------------------------------------------------------------------------
, c& b* J7 @0 Q3 D# A& f' n// Selection any objects
`2 o. [$ ]1 h9 |) W' G3 b/ {, K//------------------------------------------------------------------------------2 R; K* V$ Y2 K% o+ M( ~( g! D# x
std::vector< NXOpen::TaggedObject * > MyClass::select_any_objects()8 R: i. w0 ? r+ o- w7 W8 k# s6 m
{
- H6 X; m& Q" p9 Y) g3 ]NXString message("Select any objects:");
# t! t: |' l' \, I& ?/ u! INXString title("Select objects");" N) A5 ~1 d% y+ }# s( }
Selection::SelectionScope scope = Selection::SelectionScopeUseDefault;
5 y0 I) p! _: y- gbool include_features = 0; * ~$ k) o }' J# f/ v8 i
bool keep_highlighted = 0;
. n+ }1 l0 N* k# m& x7 K/ Jstd::vector< NXOpen::TaggedObject * > objectArray; // Select any object array
% X8 R; T8 {$ a) J; |0 iSelection::Response res = selmgr->SelectTaggedObjects(
- O* [8 ?% T1 A% l' Y* Z message, title, scope, include_features,
5 d2 X9 M8 h' T, [ keep_highlighted, objectArray ); return objectArray;5 G9 u5 n$ Z1 `. L, p
}8 o* U* j: u- ~8 |9 @5 I
4 o J2 ^1 l4 D$ A) {7 J; x% o/ U( ]9 x6 |
, r: z) l; T! I' R9 ~+ B0 y' y, Y |
|