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

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

  [复制链接]

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

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

admin 楼主

2014-2-18 13:07:13

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

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

x
选择方式包括通过mask过滤,通过type选择,或者通过选择所有的对象。
- V7 h# f4 _; J
! v7 v, k5 o8 {2 W& X1 ^/------------------------------------------------------------------------------
7 A& ~, l- v1 g) [// Selection with mask
! r; @7 N6 A0 }) |//------------------------------------------------------------------------------
9 X! K' V/ {2 Q) BTaggedObject* MyClass::select_by_mask()
8 |3 a2 Z$ r: ?4 F2 ~# [' V{
2 ~% P' |6 o4 j. i6 INXString message("Select an object by mask:");9 S+ k' f) u) q# B; c
NXString title("Select object");4 S8 Y5 l1 N9 T  G4 I. a* |. w0 m7 [
Selection::SelectionScope scope = Selection::SelectionScopeUseDefault;
+ f9 s: l9 x  e1 rSelection::SelectionAction action = Selection::SelectionActionClearAndEnableSpecific;5 G; P7 u2 W, X! P- q% c* Q
bool include_features = 0;4 x5 G! p  _: |  A3 P/ ]; x. [
bool keep_highlighted = 0; // Define the mask triple(s), see also uf_object_types.h.) ?: \! p' F( L- m
// Uncomment or combine the desired mask triples
# m( W4 e/ Y8 X* V" A" Xstd::vector<Selection::MaskTriple> maskArray(1);/ j8 K' X9 u7 k
maskArray[0] = Selection::MaskTriple( UF_solid_type, UF_solid_body_subtype, 0 ); // Bodies
* I' {3 i, i1 A! z, o4 ~! w/*" _- M, g/ p, E, ~  a) p5 L
maskArray[0] = Selection::MaskTriple( UF_solid_type, UF_all_subtype, UF_UI_SEL_FEATURE_ANY_FACE); // Faces
/ }3 {+ i. S3 ymaskArray[0] = Selection::MaskTriple( UF_solid_type, UF_all_subtype, UF_UI_SEL_FEATURE_ANY_EDGE); // Edges
# U7 p$ v. w# j- C8 _; ^( T* mmaskArray[0] = Selection::MaskTriple( UF_component_type, 0, 0 ); // Components& n) `* w% `: {4 Q
maskArray[0] = Selection::MaskTriple( UF_line_type, 0, 0 ); // Lines
7 t9 q- `( D9 u) b7 T  Z6 @maskArray[0] = Selection::MaskTriple( UF_drafting_entity_type, 0, 0 ); // Drafting objects4 A) w. |$ |( k% j/ g$ r
*/* T3 J- a3 L- u
Point3d cursor;
9 m" a' U: [: O* T  E# wTaggedObject *object; // Select objects using filter defined by maskArray triples
# V$ O2 x# k9 s; I# z( k: l4 k0 G4 gSelection::Response res = selmgr->SelectTaggedObject(
& ^3 Z; S8 L5 v4 R" t* y& Y   message, title, scope, action, include_features,
; i8 F9 ?  [5 m* x: @            keep_highlighted, maskArray, &object, &cursor ); if( res == Selection::ResponseObjectSelected )0 ?2 D' K* I+ T8 X* P; o# w
{8 X* X+ v  g; R5 F
  return object;
, T3 `7 ]1 y( Z' g. w, D}: v! _0 x- f9 @! x
return 0;0 Q- a# `  I' f; W+ G
}//------------------------------------------------------------------------------7 B+ `+ u! E5 e' Y$ X. Q
// Selection with type array
+ Z: M* q0 L9 s6 u3 e5 j//------------------------------------------------------------------------------* Y1 `: M  M: d
TaggedObject* MyClass::select_by_type()' h2 K; [0 J4 l/ u" y
{) {) |% ^" j: e
NXString message("Select an object by type:");* V7 {6 b& n5 V% w( p* [2 @- N
NXString title("Select object");
) Q% S3 A* O. HSelection::SelectionScope scope = Selection::SelectionScopeUseDefault;
# }" C, ^( D8 P5 k& @6 Ybool keep_highlighted = 0; // Define the mask triple(s), see also uf_object_types.h.1 T" |0 E( m+ V  H7 X  E( a
// Uncomment or combine the desired types. {* ], e1 G6 a
std::vector<Selection::SelectionType> typeArray(1);! p8 n5 K# l$ d  S( _
typeArray[0] = Selection::SelectionTypeAll;& [0 w! t' L4 j) a2 o
/*, \: g' Z) m$ K' ~
typeArray[0] = Selection::SelectionTypeFeatures;
( y8 b* _6 X# i7 t- E9 W. m$ {6 a3 mtypeArray[0] = Selection::SelectionTypeCurves;' N0 s6 N: V. W0 f
typeArray[0] = Selection::SelectionTypeFaces;; Q$ k2 M' U& ~. t4 j1 [+ {# z
typeArray[0] = Selection::SelectionTypeEdges;" x- \7 A7 b8 L  I
typeArray[0] = Selection::SelectionTypeCurvesAndEdges;
, e4 M3 @5 H. Q. ]7 M*/5 T9 P7 h- D/ U9 h) C
Point3d cursor;
9 i  Q. T: \8 x% h' Z. l' nTaggedObject *object; // Select objects using filter defined by type array
8 d. E8 C) C+ U9 oSelection::Response res = selmgr->SelectTaggedObject(
4 ^/ ]1 L. K/ H: K! O   message, title, scope, keep_highlighted, / f/ D1 Z) W1 s# j% V7 [6 o
   typeArray, &object, &cursor ); if( res == Selection::ResponseObjectSelected ), p$ }8 j( E% c8 A! y
{
! f( k" I1 r: y3 t, O# a' a  return object;
; z+ \3 F/ D; o8 s5 q) z! g6 g1 {}# r. Q- [0 r, o1 a# Q2 l
return 0;. W% O* K) ]9 H8 x
}//------------------------------------------------------------------------------
3 e. T; T" o; ]; U6 T* B// Selection any objects# [% s" [6 o* c. Y
//------------------------------------------------------------------------------
' p( g* P: d- w  k$ y8 vstd::vector< NXOpen::TaggedObject * > MyClass::select_any_objects()" \8 V' s7 U, Q+ \" u' X: H
{
# _6 Z+ t: C" W% s8 @NXString message("Select any objects:");$ g- H/ \: D, m1 G
NXString title("Select objects");; s2 l+ t3 [( l( Z) K
Selection::SelectionScope scope = Selection::SelectionScopeUseDefault;
4 I& H( N( Y! v( v2 U2 tbool include_features = 0;
6 }0 K1 x5 s1 d6 i' u3 N1 Qbool keep_highlighted = 0;
. u2 A) v6 l& S. N2 b+ E0 Ostd::vector< NXOpen::TaggedObject * > objectArray; // Select any object array% g; W: d" f  n
Selection::Response res = selmgr->SelectTaggedObjects(
! O/ v+ Z: I4 ~$ F2 r' l   message, title, scope, include_features,
0 X( J; ]& @# {  f; G  C   keep_highlighted, objectArray ); return objectArray;5 n! r0 T( J2 F) `5 @
}8 `* V+ H/ s( W" o/ B) j
0 Y, n' |! z( T/ b1 c
3 @, N% L1 p( X9 y9 u, W
1 D$ m. E7 P% F1 g4 C+ V$ T2 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. ~; a" G) h6 a* D( C
老大 为什么把你的这个代码放在这里会提示错误啊。。。新手一枚,问题幼稚,请多指教 谢谢 ...

6 S0 M, U1 ?; o你抱什么错
, K" L7 p! |8 z; c: N3 D  U头文件 加了么
上海点团信息科技有限公司,承接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, t0 W6 Q2 O& ^1 R8 Q: o$ E
老大 为什么把你的这个代码放在这里会提示错误啊。。。新手一枚,问题幼稚,请多指教 谢谢 ...
# B( c8 S, s4 h- J3 u8 n
你抱什么错
, Z$ a, S5 a  u3 i3 {7 y2 g6 M9 T头文件 加了么
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了