PLM之家PLMHome-国产软件践行者

[二次开发源码] NX二次开发:选择方式代码大全

  [复制链接]

2015-11-13 21:09:39 5705 6

admin 发表于 2014-2-18 13:07:13 |阅读模式

admin 楼主

2014-2-18 13:07:13

请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!

您需要 登录 才可以下载或查看,没有账号?注册

x
选择方式包括通过mask过滤,通过type选择,或者通过选择所有的对象。5 w+ H7 o& n( n9 k% s6 Q: g  j
% `- p: S9 Z3 d. k! k4 W$ w
/------------------------------------------------------------------------------; H" D2 i$ M6 X9 R+ x9 F0 ^0 s
// Selection with mask
0 i/ r9 d& A/ N* K1 Y, T1 n4 q+ g//------------------------------------------------------------------------------
" Y, C/ ?& p& h! |0 c9 u3 FTaggedObject* MyClass::select_by_mask()
# Y2 F& U! u+ N$ @8 X8 |{
: v6 \0 R  M9 A9 j' jNXString message("Select an object by mask:");4 k/ K, n  a  R9 U* M% d/ i7 Y
NXString title("Select object");
5 w$ c6 N+ I) @( G& i5 a! CSelection::SelectionScope scope = Selection::SelectionScopeUseDefault;
! t3 x) z1 d9 b. J  C& XSelection::SelectionAction action = Selection::SelectionActionClearAndEnableSpecific;
; \3 ^  d( x; J% M- o9 mbool include_features = 0;* \, h+ e/ g. t
bool keep_highlighted = 0; // Define the mask triple(s), see also uf_object_types.h.
  I' I2 e6 C% ~* W// Uncomment or combine the desired mask triples2 j0 l4 `3 H9 d! T& w' u2 w4 \
std::vector<Selection::MaskTriple> maskArray(1);
, S1 |! [) r% tmaskArray[0] = Selection::MaskTriple( UF_solid_type, UF_solid_body_subtype, 0 ); // Bodies" X  g( J9 k/ Q) |; a
/*. L4 g9 K! l" a  Y( f+ n  z
maskArray[0] = Selection::MaskTriple( UF_solid_type, UF_all_subtype, UF_UI_SEL_FEATURE_ANY_FACE); // Faces5 j% Y, p4 n4 i& i. M
maskArray[0] = Selection::MaskTriple( UF_solid_type, UF_all_subtype, UF_UI_SEL_FEATURE_ANY_EDGE); // Edges
1 s' Y: G! _3 f- v' GmaskArray[0] = Selection::MaskTriple( UF_component_type, 0, 0 ); // Components
2 s, A: [& s/ s  p) x& QmaskArray[0] = Selection::MaskTriple( UF_line_type, 0, 0 ); // Lines7 b5 [- z" I6 U6 N
maskArray[0] = Selection::MaskTriple( UF_drafting_entity_type, 0, 0 ); // Drafting objects
  F. }' o8 a. [) Z7 a*/( ]( A1 Z: r7 _. D7 i
Point3d cursor;
" O( L# U1 o: _. D9 p# q' [TaggedObject *object; // Select objects using filter defined by maskArray triples
! |' ]" o  \" y. c; U( |- WSelection::Response res = selmgr->SelectTaggedObject(
( `/ S6 i0 }6 v9 T! R   message, title, scope, action, include_features,
$ I! J- c4 m- U0 c            keep_highlighted, maskArray, &object, &cursor ); if( res == Selection::ResponseObjectSelected )8 o: }4 Z& |5 @: y4 `, [6 f8 N
{
6 `4 B: l: s: X3 h( Y3 U  return object;
/ A4 P9 `+ g) B3 t) t}( t) E9 n% Q8 y. m" T: p
return 0;& C- w& G. v% _
}//------------------------------------------------------------------------------6 E4 G: r( B6 K' v7 c
// Selection with type array
) a: l8 G! g1 p) X/ {; z//------------------------------------------------------------------------------
' i' ?+ _8 u; V. m/ f4 Z& T9 N2 PTaggedObject* MyClass::select_by_type()
0 y+ N3 I2 @& n; J- }; }{
- f6 P. `: u, ]+ Q6 HNXString message("Select an object by type:");
. Y( U3 a5 K" f9 bNXString title("Select object");
6 O- U5 h' W* r& v0 {" w+ M% F% oSelection::SelectionScope scope = Selection::SelectionScopeUseDefault;3 W+ J% T& U# Q! ^4 \) o
bool keep_highlighted = 0; // Define the mask triple(s), see also uf_object_types.h.
" ?" p( O! ?. |, H* t/ o// Uncomment or combine the desired types
- w8 j' G6 C% @' estd::vector<Selection::SelectionType> typeArray(1);; j( p( Q" x# z+ h: M5 r) Z) J
typeArray[0] = Selection::SelectionTypeAll;9 _3 U* C0 Y8 \" B
/*
" f$ L% B: f+ w  d" OtypeArray[0] = Selection::SelectionTypeFeatures;& n. v& D$ q8 b, `/ ^6 l
typeArray[0] = Selection::SelectionTypeCurves;
) K1 p! j& D( ~, rtypeArray[0] = Selection::SelectionTypeFaces;
8 |5 q( P* w# T8 A2 btypeArray[0] = Selection::SelectionTypeEdges;
0 E5 j. \' v" ^typeArray[0] = Selection::SelectionTypeCurvesAndEdges;( ~2 a7 N  ~: A+ s
*/
) f  n6 C5 Y/ c# U& ]2 tPoint3d cursor;2 s1 a& |: Y+ p0 C+ @& b  U. V7 h: P  x
TaggedObject *object; // Select objects using filter defined by type array9 l+ G" N* L4 f- R# r
Selection::Response res = selmgr->SelectTaggedObject(
# r/ x% }* Q, a   message, title, scope, keep_highlighted,
& }* c- G7 `& q$ X! M4 o) O   typeArray, &object, &cursor ); if( res == Selection::ResponseObjectSelected )
$ G( R# p2 T/ M{
& Y  \" i1 p6 i9 ?) m$ |  return object;7 T9 s5 f% U8 p( G1 ^+ N
}
/ u, K$ h+ V6 k: R& Mreturn 0;- Q& z" w& u& M) r* u3 }$ m2 N, }
}//------------------------------------------------------------------------------
2 F  G0 X- X# |5 Q. J' T4 S: ^// Selection any objects( a, A( z/ f* F0 x9 f; l4 R
//------------------------------------------------------------------------------( u3 E8 F; Y# [) K
std::vector< NXOpen::TaggedObject * > MyClass::select_any_objects()) w# `* V. b% v/ y. s
{' @& w. ?0 b& G5 O( f
NXString message("Select any objects:");
# u' s+ ~: w- X) Q5 V0 A, m7 oNXString title("Select objects");
  E( _7 h1 I- }8 OSelection::SelectionScope scope = Selection::SelectionScopeUseDefault;# G: v0 a3 W' K' C# ?
bool include_features = 0;
" y$ l. W; _  r+ Ebool keep_highlighted = 0;
& E4 S7 e6 k7 j% Fstd::vector< NXOpen::TaggedObject * > objectArray; // Select any object array0 [" l7 f8 }# h+ ~8 B/ A0 }
Selection::Response res = selmgr->SelectTaggedObjects(
' B" w, T) D5 H7 ~. q4 ?/ Y+ D   message, title, scope, include_features, $ P' @* b) b6 y3 C: q) K
   keep_highlighted, objectArray ); return objectArray;  H3 c; f4 d! v, o- V
}
, L9 C3 ?0 w4 c% C. r' V  @
$ \# s2 G  {+ N# y) T
2 c/ O: R/ T4 u; J
: ?$ E' B5 x# ^. y1 O) R: H
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 doTeam.tech
回复

使用道具 举报

全部回复6

sl2651668521 发表于 2014-3-2 18:36:05

sl2651668521 沙发

2014-3-2 18:36:05

老大 为什么把你的这个代码放在这里会提示错误啊。。。新手一枚,问题幼稚,请多指教 谢谢
321.jpg
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复 支持 反对

使用道具 举报

admin 发表于 2014-3-2 19:34:19

admin 板凳

2014-3-2 19:34:19

sl2651668521 发表于 2014-3-2 10:36
6 F# C1 R( c( p8 q  g& F老大 为什么把你的这个代码放在这里会提示错误啊。。。新手一枚,问题幼稚,请多指教 谢谢 ...

* V* C, I* Y! c: l3 z* V/ ^你抱什么错
( q1 l, @4 }6 Q; m; K9 a$ p* P7 W! ~头文件 加了么
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 doTeam.tech
回复 支持 反对

使用道具 举报

admin 发表于 2014-3-2 19:34:21

admin 地板

2014-3-2 19:34:21

sl2651668521 发表于 2014-3-2 10:36
. [* B5 l5 j. q# B+ A- I3 I老大 为什么把你的这个代码放在这里会提示错误啊。。。新手一枚,问题幼稚,请多指教 谢谢 ...

* C/ j6 n! e5 L9 g你抱什么错
$ r5 R* B; ^* I( S; k7 e; ]. d头文件 加了么
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 doTeam.tech
回复 支持 反对

使用道具 举报

sl2651668521 发表于 2014-3-2 19:47:18

sl2651668521 5#

2014-3-2 19:47:18

还需要加什么头文件? 我是利用vc中ug模块建立的工程
2.jpg
1.jpg
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复 支持 反对

使用道具 举报

wyw6686 发表于 2015-11-5 14:55:45

wyw6686 6#

2015-11-5 14:55:45

老大,这个 selmgr 是个什么东西,怎么定义啊?
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复 支持 反对

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 注册

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

    本网站(plmhome.com)为PLM之家工业软件学习官网站

    展示的视频材料全部免费,需要高清和特殊技术支持请联系 QQ: 939801026

    PLM之家NX CAM二次开发专题模块培训报名开始啦

    我知道了