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

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

  [复制链接]

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

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

admin 楼主

2014-2-18 13:07:13

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

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

x
选择方式包括通过mask过滤,通过type选择,或者通过选择所有的对象。
5 O& E1 b/ L" j, }" b& }4 j  J2 f5 [* U4 x' P) I: ]! C8 ^2 |* ]
/------------------------------------------------------------------------------) s; F) C5 C% i+ |( y+ ^
// Selection with mask
- [0 ^7 b7 I  s$ T! P4 [3 H9 |//------------------------------------------------------------------------------/ ]& H! B2 p8 D' {* N
TaggedObject* MyClass::select_by_mask()3 D6 k9 E  ]- E' c, j
{2 y3 G/ |5 k, G% I
NXString message("Select an object by mask:");
: G8 }4 C# {1 DNXString title("Select object");4 b% W% s+ V) B4 k8 l! h: K
Selection::SelectionScope scope = Selection::SelectionScopeUseDefault;. K' a* [6 A5 g; q& |" C9 S+ P
Selection::SelectionAction action = Selection::SelectionActionClearAndEnableSpecific;
- c' q; i9 x5 J0 {4 i  P. s5 ]2 nbool include_features = 0;
& z( A; o% N# i: C! Dbool keep_highlighted = 0; // Define the mask triple(s), see also uf_object_types.h.
5 t( p$ J9 e, F4 n% H3 b4 a. g" a. [// Uncomment or combine the desired mask triples- n$ L" l/ C/ X% E" q8 w
std::vector<Selection::MaskTriple> maskArray(1);
6 u5 Q3 d* |! y& kmaskArray[0] = Selection::MaskTriple( UF_solid_type, UF_solid_body_subtype, 0 ); // Bodies
7 a6 V7 g) s' j. h8 \1 _- q/*  e3 Z# C# y4 o6 E8 [0 A
maskArray[0] = Selection::MaskTriple( UF_solid_type, UF_all_subtype, UF_UI_SEL_FEATURE_ANY_FACE); // Faces% |3 ^6 |5 J# _7 E6 k; ~3 \( x
maskArray[0] = Selection::MaskTriple( UF_solid_type, UF_all_subtype, UF_UI_SEL_FEATURE_ANY_EDGE); // Edges
: _& ?8 B2 L8 O( gmaskArray[0] = Selection::MaskTriple( UF_component_type, 0, 0 ); // Components+ t0 e  f; P) X3 ?7 r; y* `
maskArray[0] = Selection::MaskTriple( UF_line_type, 0, 0 ); // Lines' z' \% \3 h. I6 V. X- h
maskArray[0] = Selection::MaskTriple( UF_drafting_entity_type, 0, 0 ); // Drafting objects
6 b# k# p6 N" t, i8 k" z" C5 U*/
" a. D( ^2 m# y9 Y! `Point3d cursor;
6 B9 u% @- P, [4 P% D2 a$ }TaggedObject *object; // Select objects using filter defined by maskArray triples$ q: P2 S+ D/ V# h# h; y, U- i
Selection::Response res = selmgr->SelectTaggedObject(* w; v+ L5 h8 {, r" U
   message, title, scope, action, include_features,$ m% e& `6 E6 R4 p6 i, K4 |% G$ b# E
            keep_highlighted, maskArray, &object, &cursor ); if( res == Selection::ResponseObjectSelected )
% l- O0 ]3 _* j$ {* l{
, y# x+ |( v4 Q5 b* h' O$ t  return object;
; r& v8 G! \5 ]- t* @  D}4 Q8 V2 n$ m4 E$ Z
return 0;
! Z2 L3 r' g5 k  N' c}//------------------------------------------------------------------------------3 h; s& p% f. K1 S; |  g) j- Y/ x1 a* n
// Selection with type array/ T2 b, k; O0 _6 n6 U5 d) K
//------------------------------------------------------------------------------
, L3 ?, Y4 h; \TaggedObject* MyClass::select_by_type()( V& r& v* U: m7 l; h3 z3 e
{
0 T) P6 l: ]* SNXString message("Select an object by type:");
5 }/ y$ w. Z: T/ LNXString title("Select object");; y2 `7 f- l2 M. j
Selection::SelectionScope scope = Selection::SelectionScopeUseDefault;- V  \+ [7 Q& Q( a3 E
bool keep_highlighted = 0; // Define the mask triple(s), see also uf_object_types.h.0 B- s. c5 @" K/ G* N
// Uncomment or combine the desired types: w3 c9 y4 t: ?
std::vector<Selection::SelectionType> typeArray(1);
: s( _) l( \6 j. ^. h1 k" }6 }3 ytypeArray[0] = Selection::SelectionTypeAll;
9 D3 `4 K, A$ ^7 X; p5 i. m, U; z/*
& y7 R+ q9 U/ [. m. t1 htypeArray[0] = Selection::SelectionTypeFeatures;
4 y; j- M- p# ~0 RtypeArray[0] = Selection::SelectionTypeCurves;- s, o- a0 e: K% ?5 C/ v
typeArray[0] = Selection::SelectionTypeFaces;. X$ U; X/ P) X) h
typeArray[0] = Selection::SelectionTypeEdges;! Z2 y# x# q4 C+ Q& ^+ i( o
typeArray[0] = Selection::SelectionTypeCurvesAndEdges;, M7 E* M5 X- G+ Y
*/' f6 Y2 y: E3 c3 x& e
Point3d cursor;# q6 u0 K7 Y$ V% E" y( c( m- _: N
TaggedObject *object; // Select objects using filter defined by type array
( A% U  @! f. S% a- }4 [+ p9 \( s- ISelection::Response res = selmgr->SelectTaggedObject(" O* }7 _( `! Z) q
   message, title, scope, keep_highlighted,
' z3 }9 t, E$ a, w2 O: r   typeArray, &object, &cursor ); if( res == Selection::ResponseObjectSelected )
8 o  \; ?' s0 ^" R4 f1 }0 H  j& h{5 F  b( S# ~; P- f. F6 {  h. I
  return object;
( ?2 E; m( S5 Y; _  W  R/ b}
5 L# q. D1 o1 N) \# |+ T8 T; u1 ireturn 0;
. k9 p3 J7 Y! p}//------------------------------------------------------------------------------
3 u' q: ^6 _  t6 a( ~// Selection any objects
7 j/ R% ]3 a1 V0 s//------------------------------------------------------------------------------! a( j/ y/ E+ k( _. O
std::vector< NXOpen::TaggedObject * > MyClass::select_any_objects()8 ]2 T! p. D# U1 X2 e8 a3 T- p
{$ Y3 ^, K& C0 e; p! b3 l+ `, o1 |
NXString message("Select any objects:");& W2 A6 H* J0 b5 y, s. {
NXString title("Select objects");
$ E0 Z2 i0 V$ a/ d8 p3 \/ Z) NSelection::SelectionScope scope = Selection::SelectionScopeUseDefault;
+ G9 E/ i+ p9 Z6 hbool include_features = 0;
' x0 k. G' Q* x! z8 Lbool keep_highlighted = 0;
* ]9 b* _. }+ k% `- R# g" h9 w8 m  l% @std::vector< NXOpen::TaggedObject * > objectArray; // Select any object array
! G3 L+ n( s7 E0 v' d/ N8 H3 ~Selection::Response res = selmgr->SelectTaggedObjects(
- d( t2 R6 K% d/ h, S/ ~# X5 ]2 Z) P   message, title, scope, include_features, ; D# j( I9 O1 ^( \5 q# Q- k+ q
   keep_highlighted, objectArray ); return objectArray;
( ^" G1 q: `& B  ~; |; z5 ^5 B9 m}. d$ ]! e, o5 O% B) M" R# \
  ]0 n$ x; [! _9 T% @$ ?4 p
$ j; L9 l3 J$ n% y$ g" `" k

2 M  o' t4 n& [# a# @5 ]
上海点团信息科技有限公司,承接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
& s, B% A) a# y& y# E, [' G老大 为什么把你的这个代码放在这里会提示错误啊。。。新手一枚,问题幼稚,请多指教 谢谢 ...
9 ^9 X4 x, a  g# n0 ~; Q3 R9 p1 l
你抱什么错
  r& P: H  s4 g8 I0 K, a, b头文件 加了么
上海点团信息科技有限公司,承接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
0 @. ~2 h4 X- N; y; Y( l$ E老大 为什么把你的这个代码放在这里会提示错误啊。。。新手一枚,问题幼稚,请多指教 谢谢 ...

6 i/ H# Z! r6 ]3 p; A" p, A' D你抱什么错. D& i: y; F6 k; n
头文件 加了么
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了