PLM之家PLMHome-工业软件与AI结合践行者

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

  [复制链接]

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

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

admin 楼主

2014-2-18 13:07:13

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

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

x
选择方式包括通过mask过滤,通过type选择,或者通过选择所有的对象。" e- @7 U% U+ A7 R
# S  Z- @: I$ P- e: F& O* m" ^
/------------------------------------------------------------------------------
9 K! p* a$ [! f4 u- a// Selection with mask& L7 T, M. j5 L7 ]3 n" B3 d
//------------------------------------------------------------------------------; C! o8 I7 i+ [1 [! T+ b
TaggedObject* MyClass::select_by_mask()+ n5 G; ^8 v( r5 j
{
. ]0 w( A3 D; @0 X0 T8 A& mNXString message("Select an object by mask:");* J  w' G& S2 f. f
NXString title("Select object");
  r; c% D, w8 \" O! G2 k- w# H5 dSelection::SelectionScope scope = Selection::SelectionScopeUseDefault;
3 Y$ k* d2 ]" sSelection::SelectionAction action = Selection::SelectionActionClearAndEnableSpecific;  V5 h0 W. x% a2 `
bool include_features = 0;  p( }2 n1 q6 C; {% n$ }0 Y
bool keep_highlighted = 0; // Define the mask triple(s), see also uf_object_types.h.* j9 y6 b! }7 P/ e  s9 O
// Uncomment or combine the desired mask triples
* C* Y5 t& v2 V8 Rstd::vector<Selection::MaskTriple> maskArray(1);9 o! L2 h8 p/ G
maskArray[0] = Selection::MaskTriple( UF_solid_type, UF_solid_body_subtype, 0 ); // Bodies
0 ^3 @. g7 m# z4 i/ \/*
; P( u: Z! F$ o% B' s/ P6 O9 fmaskArray[0] = Selection::MaskTriple( UF_solid_type, UF_all_subtype, UF_UI_SEL_FEATURE_ANY_FACE); // Faces
& \* P2 _# Y4 z, @0 X) }0 x% H+ J2 JmaskArray[0] = Selection::MaskTriple( UF_solid_type, UF_all_subtype, UF_UI_SEL_FEATURE_ANY_EDGE); // Edges7 r1 D5 I; G9 `
maskArray[0] = Selection::MaskTriple( UF_component_type, 0, 0 ); // Components' k5 T7 a- q" ^5 n1 R% d+ h1 l
maskArray[0] = Selection::MaskTriple( UF_line_type, 0, 0 ); // Lines' l2 F; n8 h% K. U
maskArray[0] = Selection::MaskTriple( UF_drafting_entity_type, 0, 0 ); // Drafting objects- L% R  Q+ ]5 D) H' ~+ G* s
*/3 O7 T7 ?, a! B& }% X/ m7 S
Point3d cursor;
% m3 x0 ?, T( T* \8 W. DTaggedObject *object; // Select objects using filter defined by maskArray triples" y/ F$ n  V7 n6 y9 y
Selection::Response res = selmgr->SelectTaggedObject(* R+ E1 n, S! h& k% D- q$ I
   message, title, scope, action, include_features,
$ z+ p1 R* ^5 E! R% \; ^, H            keep_highlighted, maskArray, &object, &cursor ); if( res == Selection::ResponseObjectSelected )6 t9 {. ]6 ~  c$ `
{
% `$ s/ a& c! {9 d) {7 i* M  return object;; w8 g, Z, J: i# Y
}
2 x. r% p9 v7 s  c2 l. i: Oreturn 0;
( H/ b% m' H8 Z1 ]+ o}//------------------------------------------------------------------------------
4 M" V/ c. Y" f5 B9 D5 d// Selection with type array
! p. c( |4 p. q* J$ k/ j//------------------------------------------------------------------------------
2 J: ^# \- I' LTaggedObject* MyClass::select_by_type()/ Q3 ^: T$ C) ?4 @3 K
{- P  x1 o1 u1 X  D* Y+ D& R1 D
NXString message("Select an object by type:");
2 U( S$ c! y0 [  e0 }NXString title("Select object");
7 L) V1 `" }  S6 u3 y! q+ hSelection::SelectionScope scope = Selection::SelectionScopeUseDefault;
# D6 n( h. r( @. L& {) m8 mbool keep_highlighted = 0; // Define the mask triple(s), see also uf_object_types.h.
  N* o. c: f# r) n1 z) ~: o// Uncomment or combine the desired types
- O6 y2 ~: P" N! T. H! x; Estd::vector<Selection::SelectionType> typeArray(1);8 }: h: X, _1 k: c4 f1 x/ ~2 p
typeArray[0] = Selection::SelectionTypeAll;/ v- ~- d4 h4 n8 w0 D
/*
  Y7 U! p/ ]- A* k7 t! T  |typeArray[0] = Selection::SelectionTypeFeatures;  \0 z9 ?# `8 F7 F
typeArray[0] = Selection::SelectionTypeCurves;7 l3 N  q3 Z- y
typeArray[0] = Selection::SelectionTypeFaces;
& v% `6 \& p' ~6 dtypeArray[0] = Selection::SelectionTypeEdges;
( h" X2 @6 F$ P6 T0 {" j3 o+ gtypeArray[0] = Selection::SelectionTypeCurvesAndEdges;+ J1 u: N: m5 s1 `% ]( K# A
*/
/ H6 l7 n% q$ y4 s4 hPoint3d cursor;% f. z: d/ V. R; X" k$ \3 x  m4 r
TaggedObject *object; // Select objects using filter defined by type array1 e1 y7 n" w1 y9 ?
Selection::Response res = selmgr->SelectTaggedObject(  I! A( T9 V. j) W: E* S3 I! f( p
   message, title, scope, keep_highlighted,
2 Z, s1 _' ?2 k- m" R   typeArray, &object, &cursor ); if( res == Selection::ResponseObjectSelected )1 f5 g* r  `- I2 n/ P0 `
{
' W/ W- q% Z, I+ H  l7 b5 x  L  return object;. g6 Y6 p5 n6 {4 c' D8 Q5 W$ u6 F
}
# P" _( ~' d9 I* l$ Y- nreturn 0;
0 k$ f& ]9 S1 @9 ~}//------------------------------------------------------------------------------
0 g  E5 B# G: X. a) G// Selection any objects0 f. B3 E' N. o) i( |( _
//------------------------------------------------------------------------------* m6 D8 I* ^% x9 b) s
std::vector< NXOpen::TaggedObject * > MyClass::select_any_objects()
$ x4 T0 w' P! E6 l{4 `. ?! `8 O+ I3 |% m( D) Y1 O: d
NXString message("Select any objects:");
# T; d" F! ]: B8 FNXString title("Select objects");. _: d' x! {6 i$ X! r: y- Z- u' U
Selection::SelectionScope scope = Selection::SelectionScopeUseDefault;
$ V  M& S& v, `  l0 `/ mbool include_features = 0;
7 k: ^9 |# s& B1 e* kbool keep_highlighted = 0;
2 I  o; E+ e; }. o$ q4 A& h" m9 Ostd::vector< NXOpen::TaggedObject * > objectArray; // Select any object array" M$ ~; B- j( U' i9 }
Selection::Response res = selmgr->SelectTaggedObjects(" ~) b; E5 g. ~/ s
   message, title, scope, include_features,
4 E: H: L  P* H) G/ T7 H/ m   keep_highlighted, objectArray ); return objectArray;
( i( r: U3 J" F. A* O! x}
( F: E: K1 g( ~  t0 V
) s# t$ c6 F- W! T
3 b! y7 H6 m" y& @) f- f# V
  ]" V5 }! F1 D" O+ E
上海点团信息科技有限公司,承接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; {( r5 k0 V) P0 L- j* c
老大 为什么把你的这个代码放在这里会提示错误啊。。。新手一枚,问题幼稚,请多指教 谢谢 ...

( |/ Y$ `# {( G- d! F你抱什么错
; r4 ?* C- O" |% `头文件 加了么
上海点团信息科技有限公司,承接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+ i+ T' B# U0 z  F( [* n4 D
老大 为什么把你的这个代码放在这里会提示错误啊。。。新手一枚,问题幼稚,请多指教 谢谢 ...

7 ]* R& n+ P. Q1 u) w2 i, ]6 q你抱什么错
9 P+ Z$ \& V0 l* l6 p2 d5 Q头文件 加了么
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了