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

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

  [复制链接]

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

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

admin 楼主

2014-2-18 13:07:13

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

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

x
选择方式包括通过mask过滤,通过type选择,或者通过选择所有的对象。
, _6 D5 D5 R1 B( y( S" _, d& G# J5 Y4 U
/------------------------------------------------------------------------------
. e5 r0 i, m7 |' u9 g// Selection with mask
) k( n0 U' M# s//------------------------------------------------------------------------------0 F) f: W; ~; a/ b  u
TaggedObject* MyClass::select_by_mask()
' z2 Q: n  h- h, M$ v* S+ s{$ e4 D  U& U. B, G; G0 z' J
NXString message("Select an object by mask:");' p3 q. `/ z, `
NXString title("Select object");) J3 y, c  p' e5 ^, i
Selection::SelectionScope scope = Selection::SelectionScopeUseDefault;
' x; Z+ i! m+ |; K2 _7 |, ]2 w( HSelection::SelectionAction action = Selection::SelectionActionClearAndEnableSpecific;
* B- C% v' a. {& ^5 m6 E' nbool include_features = 0;- U- ^# Q8 g7 y. ], U
bool keep_highlighted = 0; // Define the mask triple(s), see also uf_object_types.h.
& L: T% ?) b5 N- Z# P// Uncomment or combine the desired mask triples2 T! P* ^) m- i' ^; z
std::vector<Selection::MaskTriple> maskArray(1);9 D. |+ k5 f* q/ E7 E
maskArray[0] = Selection::MaskTriple( UF_solid_type, UF_solid_body_subtype, 0 ); // Bodies& o5 U& _; ]3 L8 j2 n4 G- ^4 B
/*- x: e$ {4 V/ Y0 e8 a
maskArray[0] = Selection::MaskTriple( UF_solid_type, UF_all_subtype, UF_UI_SEL_FEATURE_ANY_FACE); // Faces
: u- [  R' X9 OmaskArray[0] = Selection::MaskTriple( UF_solid_type, UF_all_subtype, UF_UI_SEL_FEATURE_ANY_EDGE); // Edges$ r7 q( r, k& \  n7 ]. m" [3 {
maskArray[0] = Selection::MaskTriple( UF_component_type, 0, 0 ); // Components
, ]/ J4 a7 U1 i! w4 I3 w- `9 Q* DmaskArray[0] = Selection::MaskTriple( UF_line_type, 0, 0 ); // Lines
3 O) Z! B: N& o$ t& N& MmaskArray[0] = Selection::MaskTriple( UF_drafting_entity_type, 0, 0 ); // Drafting objects
1 r/ J" n' O: e9 P% Y( u( `*/2 S7 t2 l$ K5 x
Point3d cursor;
5 G$ l0 [2 I/ S# A) x$ u2 GTaggedObject *object; // Select objects using filter defined by maskArray triples. V7 Y. i' q1 f+ n/ R! X  S) M
Selection::Response res = selmgr->SelectTaggedObject(1 K& S0 g+ I1 ~2 N. C: S! m
   message, title, scope, action, include_features,9 T6 @3 N% L5 i# u. m: F$ ^
            keep_highlighted, maskArray, &object, &cursor ); if( res == Selection::ResponseObjectSelected )
, @7 v/ f' x7 m, Q/ T; Q{) j$ P3 H3 z3 v5 l, R8 }+ h* t7 J4 ?
  return object;: Q  X7 Y+ N9 X3 v; X2 W; [
}
0 s; z& I! b! L: Xreturn 0;
2 z3 O  y! W0 s8 E( o}//------------------------------------------------------------------------------
7 o: Y, W: v5 h8 _6 s" a8 I// Selection with type array
& f2 O  ^$ v7 k: `4 c//------------------------------------------------------------------------------+ {! P9 r$ `% D" ~
TaggedObject* MyClass::select_by_type()
: h( h/ C, E6 q9 y+ K" O{
: R6 Q2 h, j, B5 Q4 ONXString message("Select an object by type:");2 d5 Q* A. _" j' _- y) }1 O
NXString title("Select object");& g! B8 z6 S7 W) R
Selection::SelectionScope scope = Selection::SelectionScopeUseDefault;
8 J. F- d* J# Z9 Pbool keep_highlighted = 0; // Define the mask triple(s), see also uf_object_types.h.
: u" I8 W/ p7 Q( g8 i, y- S5 o// Uncomment or combine the desired types
9 |: J0 ~7 e% b( D! P& D, E6 Ystd::vector<Selection::SelectionType> typeArray(1);; W  d% ~0 H6 p* f$ }8 z
typeArray[0] = Selection::SelectionTypeAll;
  C3 r+ r3 X  }% z+ S' s; S2 ^/*5 n/ M7 t1 T5 N- x
typeArray[0] = Selection::SelectionTypeFeatures;5 u; a! F; r8 i" W- j- z8 l2 Q
typeArray[0] = Selection::SelectionTypeCurves;- b, U  g7 V* Q3 C/ l' `
typeArray[0] = Selection::SelectionTypeFaces;
, d& L" A3 f: ^- \& otypeArray[0] = Selection::SelectionTypeEdges;
# U8 L7 V- E- [* j8 g9 l0 s' b/ X: QtypeArray[0] = Selection::SelectionTypeCurvesAndEdges;
6 V' ^; ]8 H: E. H) J6 S1 t" s*/
# n" X) y3 [7 k8 OPoint3d cursor;
; I3 Q* z( z* e5 o. V9 p# a( {( ?TaggedObject *object; // Select objects using filter defined by type array4 I4 ?1 q/ Q; T" c# D+ Y/ H, f3 A
Selection::Response res = selmgr->SelectTaggedObject(2 B* s5 g  ?! m
   message, title, scope, keep_highlighted, 6 f( ?1 Y$ X- Q4 b+ q' e7 B) f) L7 }
   typeArray, &object, &cursor ); if( res == Selection::ResponseObjectSelected )) [. G/ ~4 r& x( r* ~
{  [  C. t0 U4 X$ T7 E, v* n
  return object;
# p' E$ z, R/ F; i* p! t/ K: R  K}
; k$ K) O% b5 C  y( Vreturn 0;$ @; e, T% |2 F% l- A: g* H+ f1 K
}//------------------------------------------------------------------------------
) H% j6 k3 I8 `% O! l// Selection any objects; G6 x+ c3 f. V6 q
//------------------------------------------------------------------------------7 p% `3 [7 Y4 r+ f: I6 ~: d
std::vector< NXOpen::TaggedObject * > MyClass::select_any_objects()
1 d3 v+ z( O5 x" g9 h{9 ?9 [: X. I  k# d1 o/ f
NXString message("Select any objects:");
! m9 p' ?5 A8 r" l$ G6 XNXString title("Select objects");
7 X' {4 _, [; e7 s! i) M( \+ dSelection::SelectionScope scope = Selection::SelectionScopeUseDefault;
5 d5 k: l8 K$ ?& e$ Dbool include_features = 0;
, A$ X$ D" a% _; G2 Sbool keep_highlighted = 0;; y& g; E8 p0 J. f
std::vector< NXOpen::TaggedObject * > objectArray; // Select any object array4 z1 |9 {" f9 S0 D' j* d
Selection::Response res = selmgr->SelectTaggedObjects(  u# A; m7 h" C# [" m
   message, title, scope, include_features, + n* R9 \! I3 m) w' |2 J. i
   keep_highlighted, objectArray ); return objectArray;* n$ r# ?& r7 ]3 p
}
: y+ F0 i9 Z& T8 x4 z* i7 Z2 l* j3 g9 d

$ E! Z- M1 M: _) K- ]; A# j
) S. B6 e# g$ ~, }# F
上海点团信息科技有限公司,承接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
% u4 k" {, d+ U/ C4 L$ P' e老大 为什么把你的这个代码放在这里会提示错误啊。。。新手一枚,问题幼稚,请多指教 谢谢 ...

  K3 x% e( D0 H4 K! x! p% p  i7 r你抱什么错- f/ T1 G' I4 ]( a
头文件 加了么
上海点团信息科技有限公司,承接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
' b* }2 N# q* Q老大 为什么把你的这个代码放在这里会提示错误啊。。。新手一枚,问题幼稚,请多指教 谢谢 ...
/ T$ ?2 J5 G, U' x
你抱什么错& i# H. _; O- S
头文件 加了么
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了