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

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

  [复制链接]

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

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

admin 楼主

2014-2-18 13:07:13

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

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

x
选择方式包括通过mask过滤,通过type选择,或者通过选择所有的对象。
0 K$ F/ X$ U% n; D" d# Z) b
7 }6 ]4 M4 i, w7 U# T/------------------------------------------------------------------------------
/ u5 _( f0 I# O( S// Selection with mask
; @( c& q2 e0 m6 I/ T+ f//------------------------------------------------------------------------------
  `+ n7 R4 g( @* R. ]+ iTaggedObject* MyClass::select_by_mask()8 }* o& n5 z+ K4 B1 t# J
{# }7 F$ P) \9 i+ Q4 j
NXString message("Select an object by mask:");
2 Y  _, D* t# z0 uNXString title("Select object");
# S$ J2 M9 j6 l* PSelection::SelectionScope scope = Selection::SelectionScopeUseDefault;
1 d% c- W$ W- e# ^Selection::SelectionAction action = Selection::SelectionActionClearAndEnableSpecific;& l* ~5 z4 |$ t8 o. k/ Y* ]4 C
bool include_features = 0;* _, d" k# Q0 u; v; A) x: n
bool keep_highlighted = 0; // Define the mask triple(s), see also uf_object_types.h.& |( C  w& a6 p# N2 x% n
// Uncomment or combine the desired mask triples9 j4 }! N4 K+ f2 J) M: y
std::vector<Selection::MaskTriple> maskArray(1);( _8 P6 a$ o5 X# h& S+ Q
maskArray[0] = Selection::MaskTriple( UF_solid_type, UF_solid_body_subtype, 0 ); // Bodies' \) C4 x" J! p* ]
/*& }% l: d% P! X6 @
maskArray[0] = Selection::MaskTriple( UF_solid_type, UF_all_subtype, UF_UI_SEL_FEATURE_ANY_FACE); // Faces  p7 w! i: J" w7 E5 X
maskArray[0] = Selection::MaskTriple( UF_solid_type, UF_all_subtype, UF_UI_SEL_FEATURE_ANY_EDGE); // Edges, B! ^, X$ l  M  b& j
maskArray[0] = Selection::MaskTriple( UF_component_type, 0, 0 ); // Components% d: O7 ^4 s2 _4 y$ w
maskArray[0] = Selection::MaskTriple( UF_line_type, 0, 0 ); // Lines7 L$ d' M0 o5 I8 T$ Q
maskArray[0] = Selection::MaskTriple( UF_drafting_entity_type, 0, 0 ); // Drafting objects
6 g8 i& H6 r* U. P9 H8 E! _*/
" ^. q3 H8 N0 \4 D6 u. cPoint3d cursor;! c1 z( O+ n  m/ _4 d
TaggedObject *object; // Select objects using filter defined by maskArray triples
# |* R/ B: h& j- j. J( nSelection::Response res = selmgr->SelectTaggedObject(
  K0 P4 Y7 @+ w# z9 t   message, title, scope, action, include_features,6 U2 _3 z$ X! U7 d& U4 P4 N
            keep_highlighted, maskArray, &object, &cursor ); if( res == Selection::ResponseObjectSelected )
. ^  i6 u! L6 U" F; t1 z{; a* ^1 \) R! j+ d# U4 F( Z  C
  return object;% z1 q; t# D/ U7 }. ~
}
. t9 V/ C8 u' @! x: v; {" \return 0;
0 d+ b9 `$ z" G}//------------------------------------------------------------------------------
3 M2 v9 C/ s! d+ j. D$ d// Selection with type array" d% R% ?" Q; b
//------------------------------------------------------------------------------3 k; b5 P2 k( r
TaggedObject* MyClass::select_by_type()
2 {# D9 r+ m* j" J2 x{
0 Y: ~1 w) F2 M0 L5 h, }NXString message("Select an object by type:");
! x% l( g0 `' B0 CNXString title("Select object");
( ]; i2 o# f0 m1 u7 \6 nSelection::SelectionScope scope = Selection::SelectionScopeUseDefault;" M( O$ f# e1 _5 Z
bool keep_highlighted = 0; // Define the mask triple(s), see also uf_object_types.h.9 R! q! c+ j# o: q5 `
// Uncomment or combine the desired types, p& ~& R  X+ F+ D, m
std::vector<Selection::SelectionType> typeArray(1);3 e1 J5 ^  m8 u  L/ y; E6 a
typeArray[0] = Selection::SelectionTypeAll;+ r) R; t& l9 u5 E
/*" c# U, o9 \0 f3 U  T! d/ x
typeArray[0] = Selection::SelectionTypeFeatures;
; U& O+ i; `( r' btypeArray[0] = Selection::SelectionTypeCurves;
8 P7 b- c0 a* ^' ~+ C% \* [typeArray[0] = Selection::SelectionTypeFaces;4 C) C8 h5 R2 U
typeArray[0] = Selection::SelectionTypeEdges;% m1 h& c1 h- `+ M  E% |# [
typeArray[0] = Selection::SelectionTypeCurvesAndEdges;& R, F* h" m" y/ W  O/ O9 W- E" B
*/
# @. A5 v" t7 f  k% P5 GPoint3d cursor;) Y+ }1 v5 m9 h0 w# @( y9 a
TaggedObject *object; // Select objects using filter defined by type array
* Q% m$ m& d9 [! w7 WSelection::Response res = selmgr->SelectTaggedObject(# C& b' i( H- s) r
   message, title, scope, keep_highlighted, ; J3 m3 u# s4 u
   typeArray, &object, &cursor ); if( res == Selection::ResponseObjectSelected )' P) I5 _3 {/ B8 ~' v
{
) _% h& V7 \" D" \% F* B, [5 R  return object;- _1 h+ G& M4 H. K: }
}  {0 X0 B' k1 _- I" G' x# H) \' N& z9 B
return 0;
. i6 [! @/ h0 Y$ X6 y, F}//------------------------------------------------------------------------------
, B' i. b% {; {, s' w& G// Selection any objects
1 O- T  y. B. h8 P% K7 r* y//------------------------------------------------------------------------------
( u4 m1 o( a  c: kstd::vector< NXOpen::TaggedObject * > MyClass::select_any_objects()
( j9 }6 f6 k0 l. |/ I) |# L" H{
, K2 Z0 @7 t" E6 @NXString message("Select any objects:");! c( i$ \0 y. N: G: F4 c. v9 F
NXString title("Select objects");, b6 ^. F( _  U0 p& @7 N
Selection::SelectionScope scope = Selection::SelectionScopeUseDefault;
! U" L  }/ D1 t! i2 vbool include_features = 0; $ @5 l9 P8 o& T! W/ W/ p
bool keep_highlighted = 0;' T& d9 Q. m) D1 k" u7 [) w
std::vector< NXOpen::TaggedObject * > objectArray; // Select any object array
5 \% U1 i$ W" {, MSelection::Response res = selmgr->SelectTaggedObjects(" }2 C) r. g4 d# T+ J5 y1 L
   message, title, scope, include_features, $ `6 K5 j2 ?- X! ^
   keep_highlighted, objectArray ); return objectArray;9 D8 q& A. q: @; s
}
" p/ D# M9 {+ @
/ C  X. C5 t$ y4 M; X5 R; |; [( f$ H6 Y

8 {+ A' M' F9 N( D
上海点团信息科技有限公司,承接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
) \- J- r5 X0 w老大 为什么把你的这个代码放在这里会提示错误啊。。。新手一枚,问题幼稚,请多指教 谢谢 ...

. w$ Q+ ?5 \4 I$ K你抱什么错
8 V8 M6 l" M1 |$ i2 c头文件 加了么
上海点团信息科技有限公司,承接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! d# t1 N' c3 ?8 A7 j
老大 为什么把你的这个代码放在这里会提示错误啊。。。新手一枚,问题幼稚,请多指教 谢谢 ...
  ?/ I' ]1 O+ O3 j1 N( }
你抱什么错
$ t- K! q' b8 _# \( u* }头文件 加了么
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了