PLM之家PLMHome-工业软件践行者

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

  [复制链接]

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

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

admin 楼主

2014-2-18 13:07:13

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

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

x
选择方式包括通过mask过滤,通过type选择,或者通过选择所有的对象。* f  }1 {+ s. V( N, @

; H( v8 F) H- I. Q, j2 U, u/------------------------------------------------------------------------------3 M& m5 y. C! ?" G( C
// Selection with mask
" R9 m$ g! H0 E  B# d9 Q# u0 D+ h//------------------------------------------------------------------------------6 X* f& S" C% v: r- C
TaggedObject* MyClass::select_by_mask()8 H$ z* d3 Y) \- N% Z
{
+ r2 L, K7 ]6 X( cNXString message("Select an object by mask:");6 M. E4 _( d" q: G8 U4 J
NXString title("Select object");
$ Q2 f+ E$ d* P7 l0 ?! o3 bSelection::SelectionScope scope = Selection::SelectionScopeUseDefault;
" B3 {' F6 N; Q0 z8 H3 R) BSelection::SelectionAction action = Selection::SelectionActionClearAndEnableSpecific;$ N* q3 F" W  N1 u% y" D
bool include_features = 0;
) |, T, Z/ I4 F' C( C$ Pbool keep_highlighted = 0; // Define the mask triple(s), see also uf_object_types.h.! v7 a, P: ]4 }7 ~! \6 ^
// Uncomment or combine the desired mask triples
2 V* D* k' a  P- K* mstd::vector<Selection::MaskTriple> maskArray(1);
4 W0 p$ g4 v- ]9 K+ l+ }maskArray[0] = Selection::MaskTriple( UF_solid_type, UF_solid_body_subtype, 0 ); // Bodies% Q& F! C8 {7 ]" @9 J
/*
. |; Z$ d) z6 u' x5 AmaskArray[0] = Selection::MaskTriple( UF_solid_type, UF_all_subtype, UF_UI_SEL_FEATURE_ANY_FACE); // Faces
2 e, V1 J( B$ E% B% dmaskArray[0] = Selection::MaskTriple( UF_solid_type, UF_all_subtype, UF_UI_SEL_FEATURE_ANY_EDGE); // Edges
7 b& p/ c1 a8 K' \! g; L2 wmaskArray[0] = Selection::MaskTriple( UF_component_type, 0, 0 ); // Components
& S: Z  i2 [$ y1 W( _! P3 W/ PmaskArray[0] = Selection::MaskTriple( UF_line_type, 0, 0 ); // Lines; @+ F/ R1 g9 j
maskArray[0] = Selection::MaskTriple( UF_drafting_entity_type, 0, 0 ); // Drafting objects
7 m1 a: v( {# B7 Q4 G*/
% P* P* D9 u6 a+ x* ~Point3d cursor;
* ?( H  i3 M4 u9 a& PTaggedObject *object; // Select objects using filter defined by maskArray triples! ~6 S% E9 L( ?: r8 _( [2 n- y
Selection::Response res = selmgr->SelectTaggedObject(3 u, n9 j9 @( K9 S
   message, title, scope, action, include_features,! M. B* X' j0 S$ n8 t- F
            keep_highlighted, maskArray, &object, &cursor ); if( res == Selection::ResponseObjectSelected )
. f( u2 f; C& ]$ A* ]; O{" D% |) i" }5 {# {
  return object;$ |- Z2 W8 w5 W5 N) r! L, r) T
}
- n# f8 y, X& Vreturn 0;) R: I# u  L8 j) C& A
}//------------------------------------------------------------------------------% ?9 n/ k5 q2 b% }0 T4 O
// Selection with type array' k" K, _9 Z+ L2 O& d  Q
//------------------------------------------------------------------------------
; H3 r' ?2 ^" t7 x+ lTaggedObject* MyClass::select_by_type()
0 H7 F4 K5 j( g{
5 g2 e) i8 @' s8 `3 w$ _NXString message("Select an object by type:");( g+ ?: J  f5 q: K0 }/ _6 M
NXString title("Select object");
4 J  k) G- Z! v/ z; j' lSelection::SelectionScope scope = Selection::SelectionScopeUseDefault;
( x5 h) q2 ~- \( w$ u* ~' jbool keep_highlighted = 0; // Define the mask triple(s), see also uf_object_types.h.% C& C3 ~) K" |
// Uncomment or combine the desired types
9 M$ Q; T9 U  R) {  Z8 S' z3 L9 gstd::vector<Selection::SelectionType> typeArray(1);0 r1 t( ]6 E3 S2 x0 _$ B. d
typeArray[0] = Selection::SelectionTypeAll;
6 C, |5 Q* u- R; u8 u6 \/*
- G9 T9 J+ v4 B2 V2 _6 w. AtypeArray[0] = Selection::SelectionTypeFeatures;
( Q" ~0 O9 m# g2 Q! p+ W! b: QtypeArray[0] = Selection::SelectionTypeCurves;
+ l3 \3 [, R; e& c/ A5 QtypeArray[0] = Selection::SelectionTypeFaces;
1 y& e/ X; m8 utypeArray[0] = Selection::SelectionTypeEdges;
6 t; ^1 o# U& X  T. htypeArray[0] = Selection::SelectionTypeCurvesAndEdges;
9 V7 ]$ x5 _5 G*/
* }( V$ E. J& `0 V8 O6 S7 ePoint3d cursor;
% l& s1 d7 V; c7 [( `2 B+ ]TaggedObject *object; // Select objects using filter defined by type array
* i+ I- T2 r% M$ e9 O8 fSelection::Response res = selmgr->SelectTaggedObject(
: c! g& o  {0 D   message, title, scope, keep_highlighted,
% S, y( l9 J$ ]6 u  R   typeArray, &object, &cursor ); if( res == Selection::ResponseObjectSelected )* n- b( Q! M5 Z1 i; k
{2 `0 S6 |6 _  w5 G  n
  return object;6 O! Y2 {) C7 e+ ?
}
7 U  h# [, N* h+ Mreturn 0;$ U! _3 i7 l# ^) O
}//------------------------------------------------------------------------------, C( p% o# e9 `  y% g+ @4 l
// Selection any objects
. r! J2 V7 B1 I) W8 x//------------------------------------------------------------------------------
( H  m8 o: \9 c. G  J  Xstd::vector< NXOpen::TaggedObject * > MyClass::select_any_objects()
9 i8 k' d+ {! R! ~( y+ g$ M6 C{
& Y- b. Z; w! t$ INXString message("Select any objects:");
8 D; ^4 q3 n1 p% e  o/ ^NXString title("Select objects");
9 n* J! {3 W& L4 r2 nSelection::SelectionScope scope = Selection::SelectionScopeUseDefault;+ a8 U4 r* M! X) D1 f" o/ H- m
bool include_features = 0;
, s: ^3 O: F- U6 M8 n5 w& p$ Cbool keep_highlighted = 0;# F' n% s/ h% Y) v
std::vector< NXOpen::TaggedObject * > objectArray; // Select any object array
+ C2 q; \+ q. KSelection::Response res = selmgr->SelectTaggedObjects(
8 p3 l; K6 Q2 L7 S# I! o0 C   message, title, scope, include_features,
+ r0 `9 v' E: D. c" T+ p8 v   keep_highlighted, objectArray ); return objectArray;
' D6 L  D% \3 K. A}
# c$ u- ?( Q) P2 `" W
2 `* W: p4 e. @% V2 x1 L# {0 s! @  J( L0 K' h% w

5 E" a$ H- D) L0 Q0 g  N
上海点团信息科技有限公司,承接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
# x+ I3 E1 g9 Z8 r老大 为什么把你的这个代码放在这里会提示错误啊。。。新手一枚,问题幼稚,请多指教 谢谢 ...

7 r! Y0 k/ F3 ?( ^$ }! E0 L' s你抱什么错/ |: Y2 j; K' X8 U
头文件 加了么
上海点团信息科技有限公司,承接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$ N' A' d2 t# a! ]
老大 为什么把你的这个代码放在这里会提示错误啊。。。新手一枚,问题幼稚,请多指教 谢谢 ...

% A: B- w/ J% [# q! r你抱什么错
1 \. L: F' z) U; i头文件 加了么
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了