PLM之家PLMHome-工业软件践行者

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

  [复制链接]

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

2470

主题

1275

回帖

8万

积分

管理员

PLM之家站长

积分
82162
QQ
发表于 2014-2-18 13:07:13 | 显示全部楼层 |阅读模式

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

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

x
选择方式包括通过mask过滤,通过type选择,或者通过选择所有的对象。$ C$ n0 s- u+ l. i4 n
9 Y  H! Y5 n8 S& q( R5 O
/------------------------------------------------------------------------------
! u" r7 D: z0 \// Selection with mask, q7 Q1 C( _% V9 K6 ]* P
//------------------------------------------------------------------------------  p5 P+ ]6 y7 K0 ?: b( S
TaggedObject* MyClass::select_by_mask()
! M) j& c4 D) ^4 r. _{
+ J% J, p# ]* a& CNXString message("Select an object by mask:");
$ j& ~2 s9 ?$ D- y: \0 N6 v. M% E2 pNXString title("Select object");
; U8 V& h$ C+ h3 K% ~+ k: `, {% hSelection::SelectionScope scope = Selection::SelectionScopeUseDefault;; P4 I! }0 q* U+ |+ p- K* g
Selection::SelectionAction action = Selection::SelectionActionClearAndEnableSpecific;
. h0 z6 _7 L2 \: s7 z  t% r4 K1 _bool include_features = 0;
- K- ?$ g) [, H2 g* m( ]+ h) dbool keep_highlighted = 0; // Define the mask triple(s), see also uf_object_types.h.  k2 g7 S& a6 G4 L  C( u& t
// Uncomment or combine the desired mask triples% R* G) a# B, l6 _2 g
std::vector<Selection::MaskTriple> maskArray(1);
4 O( y2 `+ K% X* X  UmaskArray[0] = Selection::MaskTriple( UF_solid_type, UF_solid_body_subtype, 0 ); // Bodies' O) D* m1 }( U0 G9 c1 D
/*3 e* m3 S4 ~5 V3 W- {' g$ I
maskArray[0] = Selection::MaskTriple( UF_solid_type, UF_all_subtype, UF_UI_SEL_FEATURE_ANY_FACE); // Faces
& H4 y0 a1 e2 _) i& p! p: ~maskArray[0] = Selection::MaskTriple( UF_solid_type, UF_all_subtype, UF_UI_SEL_FEATURE_ANY_EDGE); // Edges
; D( Y+ ^( }8 {: \maskArray[0] = Selection::MaskTriple( UF_component_type, 0, 0 ); // Components/ S8 t% `, f/ G# Y* `( V1 d/ B
maskArray[0] = Selection::MaskTriple( UF_line_type, 0, 0 ); // Lines
0 ?$ O) h+ [8 ymaskArray[0] = Selection::MaskTriple( UF_drafting_entity_type, 0, 0 ); // Drafting objects$ T2 ?# m  o# O3 Z
*/
& D. f! i# e+ o) ]7 \4 P: A7 O9 qPoint3d cursor;
0 ~: j; q+ A, X& w+ {) _. C. n1 ?TaggedObject *object; // Select objects using filter defined by maskArray triples, i1 A* o& v! {, x# M( r5 A
Selection::Response res = selmgr->SelectTaggedObject(
! r$ |  J$ E5 F4 W+ f   message, title, scope, action, include_features,' m- P0 h$ j+ ^, k1 x' C7 Z
            keep_highlighted, maskArray, &object, &cursor ); if( res == Selection::ResponseObjectSelected )
* J8 _9 |7 J2 `+ d6 }4 n{
5 c( T: A% o/ v  S3 e7 {0 _: ]  return object;2 v- _/ m7 W% \: w& ^; y4 `
}  s* |2 P7 P8 V
return 0;8 o" k* H& ~! n8 S  l7 D. n
}//------------------------------------------------------------------------------3 x, @) m/ ~/ m1 K4 K/ Y( a
// Selection with type array+ U/ p0 i% t) g7 T7 n! d
//------------------------------------------------------------------------------- }4 e8 x! g( o: D3 F3 n9 U$ O
TaggedObject* MyClass::select_by_type()
; B  b& x* D0 z; C; e{
2 R2 _! X0 `0 C7 F# H2 ]& |NXString message("Select an object by type:");
: u$ i% F6 O- q) B/ JNXString title("Select object");
6 r* T7 f+ K. c- i- [: j) c8 hSelection::SelectionScope scope = Selection::SelectionScopeUseDefault;' w" o( Y! ~$ ^
bool keep_highlighted = 0; // Define the mask triple(s), see also uf_object_types.h.
5 r. q# Y% M0 F; S// Uncomment or combine the desired types
) L0 f* W- F: U+ lstd::vector<Selection::SelectionType> typeArray(1);; ?/ r6 C, _5 ]1 `, ]
typeArray[0] = Selection::SelectionTypeAll;8 E- \. X( z7 _. a! d$ F) d( z
/*
  [) I/ b5 x! }5 \7 G0 x1 `9 LtypeArray[0] = Selection::SelectionTypeFeatures;. M% f  O3 ]* D# c
typeArray[0] = Selection::SelectionTypeCurves;
% O; q, K9 `9 V0 ?, _0 s; D/ wtypeArray[0] = Selection::SelectionTypeFaces;
4 i# R( n6 ]& h4 f# T/ mtypeArray[0] = Selection::SelectionTypeEdges;  i# o0 L. M* }* H" L) e
typeArray[0] = Selection::SelectionTypeCurvesAndEdges;
5 d2 A5 l3 Z$ J- Z8 D$ U* ?*/  r3 N  n/ |0 P; g% m
Point3d cursor;
  T# r& L3 B* r- L3 j' u% V% |; N  OTaggedObject *object; // Select objects using filter defined by type array- X+ D$ t, |9 l- L" G: E$ p
Selection::Response res = selmgr->SelectTaggedObject(, I6 J( n, \1 V- v* T) l
   message, title, scope, keep_highlighted,
! q3 s; S' L8 ?   typeArray, &object, &cursor ); if( res == Selection::ResponseObjectSelected )3 {& j" v7 a- i. F( f3 e9 _
{' X! R9 f5 C! [3 ]2 n' v1 l& ~
  return object;
% g, s" a+ s; R# x0 |}/ ~# M# ]# c& h# t+ m5 ^1 T: T8 z
return 0;3 r) i  @4 |% p" l8 H
}//------------------------------------------------------------------------------
. Z. Z/ ]3 {& |$ ~// Selection any objects
! N, O. b4 l0 m; z; d: V- ^//------------------------------------------------------------------------------) f: T  P# `8 n2 u1 `- K
std::vector< NXOpen::TaggedObject * > MyClass::select_any_objects()
/ d) I3 M3 X. h( U$ r{' {9 F3 d* I6 e/ ^* v( R; z" p
NXString message("Select any objects:");
9 C3 \/ ^6 x1 WNXString title("Select objects");  \+ r+ k- Z4 P3 \" w! H0 n0 i$ e# ~
Selection::SelectionScope scope = Selection::SelectionScopeUseDefault;
/ i" h1 A& y3 W7 V7 b) C; \bool include_features = 0;
. k" W0 Q5 k* C/ y5 _0 L# Fbool keep_highlighted = 0;, ]9 n% \" ?# o$ P* e
std::vector< NXOpen::TaggedObject * > objectArray; // Select any object array8 q$ ?$ d6 y2 X
Selection::Response res = selmgr->SelectTaggedObjects(+ o4 `: Y- g% K# k2 d) o
   message, title, scope, include_features,
  V. E* C$ `0 z% {; D& N. P   keep_highlighted, objectArray ); return objectArray;, J. l( r# h+ r7 R4 s
}
* l& q+ s) @, n+ t& Y3 P* {& _' J$ d; k) `; {! k
* j" }% C- _9 ?1 v
" D. Y; `$ I! }$ D& U& b
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 doTeam.tech
回复

使用道具 举报

全部回复6

7

主题

45

回帖

186

积分

注册会员

积分
186
发表于 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.doteam.tech
回复 支持 反对

使用道具 举报

2470

主题

1275

回帖

8万

积分

管理员

PLM之家站长

积分
82162
QQ
 楼主| 发表于 2014-3-2 19:34:19 | 显示全部楼层
sl2651668521 发表于 2014-3-2 10:36) K! @4 H1 q' n* V4 ?' g7 H
老大 为什么把你的这个代码放在这里会提示错误啊。。。新手一枚,问题幼稚,请多指教 谢谢 ...
9 u$ }6 V/ P/ o7 Y. C! N( F
你抱什么错/ P. I( F& u$ a
头文件 加了么
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 doTeam.tech
回复 支持 反对

使用道具 举报

2470

主题

1275

回帖

8万

积分

管理员

PLM之家站长

积分
82162
QQ
 楼主| 发表于 2014-3-2 19:34:21 | 显示全部楼层
sl2651668521 发表于 2014-3-2 10:36
$ d* s* B) P0 \" c7 b+ }老大 为什么把你的这个代码放在这里会提示错误啊。。。新手一枚,问题幼稚,请多指教 谢谢 ...

4 \2 V7 D7 u% N- k& D5 u你抱什么错
3 @/ t( M2 U- D# G* s7 d: Z  U# ]头文件 加了么
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 doTeam.tech
回复 支持 反对

使用道具 举报

7

主题

45

回帖

186

积分

注册会员

积分
186
发表于 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.doteam.tech
回复 支持 反对

使用道具 举报

0

主题

17

回帖

84

积分

培训VIP会员

积分
84
发表于 2015-11-5 14:55:45 | 显示全部楼层
老大,这个 selmgr 是个什么东西,怎么定义啊?
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.doteam.tech
回复 支持 反对

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 注册

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

    本网站(plmhome.com)为PLM之家工业软件学习官网站

    展示的视频材料全部免费,需要高清和特殊技术支持请联系 QQ: 939801026

    PLM之家NX CAM二次开发专题模块培训报名开始啦

    我知道了