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

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

  [复制链接]

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

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

admin 楼主

2014-2-18 13:07:13

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

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

x
选择方式包括通过mask过滤,通过type选择,或者通过选择所有的对象。
) z% F1 t  |6 v. d, n2 T' |  \2 G1 F. k) R! Q' c" j+ _
/------------------------------------------------------------------------------
# Y$ Z+ \3 Q9 E" L& g7 l// Selection with mask
: C$ I* ]- Q6 h1 G$ T" M2 Y//------------------------------------------------------------------------------( y' }6 u2 m! C7 R5 W
TaggedObject* MyClass::select_by_mask()  ?2 ~3 G. t1 g% P* a& f) s+ G! c
{
( H# V  Z. O4 h7 V- d6 @5 zNXString message("Select an object by mask:");
" x' P1 [% K+ E$ DNXString title("Select object");
3 \8 K+ ~4 O& y; P, M: q! LSelection::SelectionScope scope = Selection::SelectionScopeUseDefault;
; X5 H% K( x6 n6 p; ^1 x7 y1 CSelection::SelectionAction action = Selection::SelectionActionClearAndEnableSpecific;6 \5 L8 Z9 g7 f( w
bool include_features = 0;
5 g9 d1 ]: E; q  a! d; {9 b8 ?bool keep_highlighted = 0; // Define the mask triple(s), see also uf_object_types.h.
6 Q; c+ j6 v# E' ?, }// Uncomment or combine the desired mask triples
5 t/ n, b9 n% s( @: m! Kstd::vector<Selection::MaskTriple> maskArray(1);; f* c$ h: i+ {5 [2 N1 h2 F; Z
maskArray[0] = Selection::MaskTriple( UF_solid_type, UF_solid_body_subtype, 0 ); // Bodies
1 y. ^3 p7 L+ I$ k4 H/*6 J- g3 W5 N' z& n* l1 w8 A
maskArray[0] = Selection::MaskTriple( UF_solid_type, UF_all_subtype, UF_UI_SEL_FEATURE_ANY_FACE); // Faces, \! W( K6 X5 o2 b  \" E
maskArray[0] = Selection::MaskTriple( UF_solid_type, UF_all_subtype, UF_UI_SEL_FEATURE_ANY_EDGE); // Edges
  i  Z$ P. t4 a+ B3 v$ s0 F5 UmaskArray[0] = Selection::MaskTriple( UF_component_type, 0, 0 ); // Components
* f9 y5 ?( h6 k9 P; Z7 l7 ^maskArray[0] = Selection::MaskTriple( UF_line_type, 0, 0 ); // Lines5 J& P3 N" F9 X/ k! N
maskArray[0] = Selection::MaskTriple( UF_drafting_entity_type, 0, 0 ); // Drafting objects
8 `  I6 w+ G* L* x; O* B" S, F*/
2 ^8 L9 v' H: H* F! D, oPoint3d cursor;* l8 |/ S" Y4 T+ Q9 I$ K3 Z9 F
TaggedObject *object; // Select objects using filter defined by maskArray triples
: Q! S# M/ x" O. }, S% nSelection::Response res = selmgr->SelectTaggedObject(
& T, j3 T8 ~- `% T$ E. h* A   message, title, scope, action, include_features,
6 C& ~7 z; ], @! v0 m5 k            keep_highlighted, maskArray, &object, &cursor ); if( res == Selection::ResponseObjectSelected )
* G4 P. E$ D+ j: I# e% N{
. b5 r7 \% M; p2 F  return object;: Q+ j2 Z  y6 p$ I9 l( g
}" w4 ?' t! H4 G) `3 j
return 0;) k9 v3 Q* F3 j! l# ]
}//------------------------------------------------------------------------------( v8 v$ e: k3 c4 Z3 R$ T! X' B4 d
// Selection with type array
0 c" r1 n; u0 }  m6 N% O//------------------------------------------------------------------------------/ _6 i+ p; k1 ]) ]9 y
TaggedObject* MyClass::select_by_type()7 ~, k# t( p$ k/ B/ M+ ^! g
{
5 Y' {# ?1 q) T( oNXString message("Select an object by type:");
! p* t! ~# S& K% C! c% q5 V$ xNXString title("Select object");
1 Y* K1 ]$ o( m5 _5 I* |Selection::SelectionScope scope = Selection::SelectionScopeUseDefault;
+ e% T: y+ Z2 Y/ Y* B: @) @- F0 ~bool keep_highlighted = 0; // Define the mask triple(s), see also uf_object_types.h.
0 w4 |& w+ S5 L5 D// Uncomment or combine the desired types
2 [& R6 i: h, j$ e4 ]8 ?; estd::vector<Selection::SelectionType> typeArray(1);. L6 j/ q8 J6 ~: s
typeArray[0] = Selection::SelectionTypeAll;
  ]7 t5 A# |; l2 Y& h" w/*
% g; a0 |& d8 m1 }; z1 vtypeArray[0] = Selection::SelectionTypeFeatures;
" K& f% b  o6 N) B  A4 V# a1 ftypeArray[0] = Selection::SelectionTypeCurves;
7 F/ j2 S* D; x+ G" B# [3 GtypeArray[0] = Selection::SelectionTypeFaces;# ]! s' e1 t" l" A4 Z8 g
typeArray[0] = Selection::SelectionTypeEdges;
- v7 q1 [( G7 r3 V) Y7 R0 R) htypeArray[0] = Selection::SelectionTypeCurvesAndEdges;: H  Z$ k. ?, b7 B, ~
*/" Y8 D* N7 n9 U- V) B, u
Point3d cursor;
) l( `& ]- @$ a6 r3 YTaggedObject *object; // Select objects using filter defined by type array
3 c4 n$ F8 ?. M6 gSelection::Response res = selmgr->SelectTaggedObject(5 t& v0 J$ N5 r8 D4 d
   message, title, scope, keep_highlighted, 1 X: J3 e+ w! ~0 F  \
   typeArray, &object, &cursor ); if( res == Selection::ResponseObjectSelected )
: Z+ h4 X: K) j  E{
2 L& B+ E, l1 [" o8 e  return object;3 ^2 {7 `! Y  H
}) C" d8 B1 s. N
return 0;! J- ]% g9 E( k) }- L
}//------------------------------------------------------------------------------
, c& b* J7 @0 Q3 D# A& f' n// Selection any objects
  `2 o. [$ ]1 h9 |) W' G3 b/ {, K//------------------------------------------------------------------------------2 R; K* V$ Y2 K% o+ M( ~( g! D# x
std::vector< NXOpen::TaggedObject * > MyClass::select_any_objects()8 R: i. w0 ?  r+ o- w7 W8 k# s6 m
{
- H6 X; m& Q" p9 Y) g3 ]NXString message("Select any objects:");
# t! t: |' l' \, I& ?/ u! INXString title("Select objects");" N) A5 ~1 d% y+ }# s( }
Selection::SelectionScope scope = Selection::SelectionScopeUseDefault;
5 y0 I) p! _: y- gbool include_features = 0; * ~$ k) o  }' J# f/ v8 i
bool keep_highlighted = 0;
. n+ }1 l0 N* k# m& x7 K/ Jstd::vector< NXOpen::TaggedObject * > objectArray; // Select any object array
% X8 R; T8 {$ a) J; |0 iSelection::Response res = selmgr->SelectTaggedObjects(
- O* [8 ?% T1 A% l' Y* Z   message, title, scope, include_features,
5 d2 X9 M8 h' T, [   keep_highlighted, objectArray ); return objectArray;5 G9 u5 n$ Z1 `. L, p
}8 o* U* j: u- ~8 |9 @5 I

4 o  J2 ^1 l4 D$ A) {7 J; x% o/ U( ]9 x6 |

, r: z) l; T! I' R9 ~+ B0 y' y, Y
上海点团信息科技有限公司,承接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
* k7 q4 ?2 b: M, Q' y& R老大 为什么把你的这个代码放在这里会提示错误啊。。。新手一枚,问题幼稚,请多指教 谢谢 ...

# P: L/ i$ l/ u. k* [你抱什么错
: a( ]. _% M: f3 \& M8 Q头文件 加了么
上海点团信息科技有限公司,承接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
( J. q. \4 G8 L; }' g老大 为什么把你的这个代码放在这里会提示错误啊。。。新手一枚,问题幼稚,请多指教 谢谢 ...

6 p4 c9 g* i1 f. t. I) A7 y你抱什么错; \" E& F4 ~1 S, Y/ P0 j
头文件 加了么
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了