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

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

  [复制链接]

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

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

admin 楼主

2014-2-18 13:07:13

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

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

x
选择方式包括通过mask过滤,通过type选择,或者通过选择所有的对象。
- r) B+ F( ~5 q$ `! B; G$ E6 x2 T
/------------------------------------------------------------------------------; f% d, O+ ^2 \) W6 U% }
// Selection with mask/ o% D7 Z" s: b2 O
//------------------------------------------------------------------------------
" \/ N& e' t/ h! S# dTaggedObject* MyClass::select_by_mask()
+ P" b* f5 g: O! g4 n' z6 w! u{
- e. Q: B, k4 ~  MNXString message("Select an object by mask:");5 S* L) r% F% o8 x9 U" W
NXString title("Select object");# D' T# Z. N, f' m
Selection::SelectionScope scope = Selection::SelectionScopeUseDefault;
( r+ T7 u; r! _" g( t& VSelection::SelectionAction action = Selection::SelectionActionClearAndEnableSpecific;
: U2 `4 o# h) I4 G4 O3 t( xbool include_features = 0;
$ ~6 s) B! _: |' ?" Tbool keep_highlighted = 0; // Define the mask triple(s), see also uf_object_types.h.
) i/ D; J" J, a2 c# \// Uncomment or combine the desired mask triples9 K1 Q2 y* r# }* \
std::vector<Selection::MaskTriple> maskArray(1);
; s) P0 `, m- ]  P: YmaskArray[0] = Selection::MaskTriple( UF_solid_type, UF_solid_body_subtype, 0 ); // Bodies
% m+ ?2 T' L) r5 {* ?$ ^/ U$ n& G/*
" v6 u7 c: A" ^- j- l) B# _7 ]maskArray[0] = Selection::MaskTriple( UF_solid_type, UF_all_subtype, UF_UI_SEL_FEATURE_ANY_FACE); // Faces4 ^+ }- o0 P+ R5 t5 c
maskArray[0] = Selection::MaskTriple( UF_solid_type, UF_all_subtype, UF_UI_SEL_FEATURE_ANY_EDGE); // Edges; A2 I& Z. k5 ^2 F: Q/ \- c
maskArray[0] = Selection::MaskTriple( UF_component_type, 0, 0 ); // Components2 T4 j9 L% v+ ~* ?0 _' j* N
maskArray[0] = Selection::MaskTriple( UF_line_type, 0, 0 ); // Lines3 w. F0 F# Q1 `( @
maskArray[0] = Selection::MaskTriple( UF_drafting_entity_type, 0, 0 ); // Drafting objects
$ @8 K; Q- ^2 M  i6 P*/
- r1 H$ J+ B4 e5 ePoint3d cursor;
& @/ e2 p, c6 _, R4 vTaggedObject *object; // Select objects using filter defined by maskArray triples; H: _# Y% D+ Y
Selection::Response res = selmgr->SelectTaggedObject(
! V, F6 ]! U7 b( z2 k   message, title, scope, action, include_features,  Q. X( r. Y, X2 q* j5 j
            keep_highlighted, maskArray, &object, &cursor ); if( res == Selection::ResponseObjectSelected )
! g. C, _" Z3 x+ N6 U% V! X$ U{5 \- s6 p/ V+ F3 i$ a
  return object;
+ x/ ~6 B8 }8 z& J  u( p}% F$ ^7 h) {* N. t- V8 I
return 0;8 }' T$ h2 U+ T2 ?$ x
}//------------------------------------------------------------------------------
( h8 O- e% D, t( B; E* X5 Z  X* x// Selection with type array$ c. \& l+ N! _) Z
//------------------------------------------------------------------------------
2 f( x# |, O% X6 D5 iTaggedObject* MyClass::select_by_type()
% S+ k; G$ z. m; v7 ~{
9 y$ h- H' ?% s; j4 @1 L2 JNXString message("Select an object by type:");
$ f1 P0 Y5 u* b4 s8 z1 S4 z# HNXString title("Select object");% N7 G5 o- T: v1 B; n4 w5 H
Selection::SelectionScope scope = Selection::SelectionScopeUseDefault;! n& X! p6 |& A( J- [
bool keep_highlighted = 0; // Define the mask triple(s), see also uf_object_types.h.! I( d+ P+ ^5 y3 S& J, N" u
// Uncomment or combine the desired types' ]- ~6 L* K( |* T6 O: j
std::vector<Selection::SelectionType> typeArray(1);
6 x$ ?1 f$ V  r% V* Q$ \2 D: ttypeArray[0] = Selection::SelectionTypeAll;  g) {8 s- l3 S" ~, v  \) M
/*
* Y1 ^3 C  S* D: X5 utypeArray[0] = Selection::SelectionTypeFeatures;$ T1 Q+ Q5 M6 Y9 L& M' a
typeArray[0] = Selection::SelectionTypeCurves;
* e/ B/ R1 A! ^% _typeArray[0] = Selection::SelectionTypeFaces;# M( ^. T- `8 q# V- g# G* t) a
typeArray[0] = Selection::SelectionTypeEdges;: c' j' Y( i) M
typeArray[0] = Selection::SelectionTypeCurvesAndEdges;/ f- t+ D/ S9 \& ^% ?
*/
$ Q9 q) A; a1 r: [3 x8 i/ cPoint3d cursor;7 y% @2 q6 U2 w( O0 T
TaggedObject *object; // Select objects using filter defined by type array& K4 }* |0 O' i# o3 T7 @
Selection::Response res = selmgr->SelectTaggedObject(* d; M; S; u8 W
   message, title, scope, keep_highlighted, ! [; }) [) m+ x% n9 F
   typeArray, &object, &cursor ); if( res == Selection::ResponseObjectSelected )% }1 _$ `2 H0 E) T. g6 c! U8 n# f' Q/ F8 c
{! |1 @0 o, |1 k& r! a5 r0 s3 o# \
  return object;
2 o# }; w/ _' }4 P; f! X& x}
9 X2 i$ Y, D+ M) W. p; Dreturn 0;
) H  P$ W. b9 J* n}//------------------------------------------------------------------------------* b( V; |1 s9 m% P
// Selection any objects, U" ]. g- X- J5 w( L
//------------------------------------------------------------------------------; n9 P& ~& H$ I' h) d
std::vector< NXOpen::TaggedObject * > MyClass::select_any_objects()
- }1 D$ ~' p9 V9 b{
- W( y+ @" Z' U0 }. L5 c" ENXString message("Select any objects:");
8 h0 I5 D% {2 x( N+ t" DNXString title("Select objects");& l- J) ]" }" S& p1 i9 o
Selection::SelectionScope scope = Selection::SelectionScopeUseDefault;
- U! q7 A; W% v$ a! k$ P; ~3 Dbool include_features = 0;
7 P+ L/ }) e2 ?bool keep_highlighted = 0;
6 X5 Q" F. r) D6 j/ Nstd::vector< NXOpen::TaggedObject * > objectArray; // Select any object array9 V( a' N5 p6 s+ h& M4 o5 k& j
Selection::Response res = selmgr->SelectTaggedObjects(7 V2 w+ r9 N2 U6 Q4 l4 m7 b$ h0 L
   message, title, scope, include_features, ; ^$ H+ Y7 G4 u" F2 a
   keep_highlighted, objectArray ); return objectArray;
- n9 b0 O' h/ l* x}
7 h8 N4 [0 t; k# L; ~. ~% h6 p
5 H' y6 Y5 ?% |( P0 @3 r& d4 X0 A1 a& g2 c- ]2 p
) A$ ]( E  b5 W' a
上海点团信息科技有限公司,承接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& a: C& ^1 A& k% ]0 w
老大 为什么把你的这个代码放在这里会提示错误啊。。。新手一枚,问题幼稚,请多指教 谢谢 ...
0 c. H) p2 j9 i1 ]
你抱什么错- D/ e4 g$ i5 ?# I
头文件 加了么
上海点团信息科技有限公司,承接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:368 q: N1 A2 d  Z7 G$ E) x1 t
老大 为什么把你的这个代码放在这里会提示错误啊。。。新手一枚,问题幼稚,请多指教 谢谢 ...

% f* Y4 {% b& w3 L2 x/ A9 J' d你抱什么错' a1 K! C. x. V( `+ E
头文件 加了么
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了