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

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

  [复制链接]

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

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

admin 楼主

2014-2-18 13:07:13

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

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

x
选择方式包括通过mask过滤,通过type选择,或者通过选择所有的对象。
  q0 \* Q  M+ {& |4 m! T; d$ U
; ~4 }, Y9 R2 D- w( @; X7 m/------------------------------------------------------------------------------1 r: C' m3 Q0 r" p) D8 Z
// Selection with mask0 N. R1 @  P1 b4 w$ s5 l7 _, e
//------------------------------------------------------------------------------: q5 t+ v0 y. p7 f; R  s0 J4 T
TaggedObject* MyClass::select_by_mask()
0 M" r2 \7 b2 o4 [{0 }' ]$ R# `4 ]4 f, S& `
NXString message("Select an object by mask:");& M# `- f$ C) Q: I5 e+ `
NXString title("Select object");
( v" k5 f% ~$ H+ z$ ]  n, VSelection::SelectionScope scope = Selection::SelectionScopeUseDefault;  v5 }: f, a5 g, T1 k
Selection::SelectionAction action = Selection::SelectionActionClearAndEnableSpecific;$ ^+ X/ d1 r/ k0 r( d! V
bool include_features = 0;
% @  r; m4 h$ |6 |( }bool keep_highlighted = 0; // Define the mask triple(s), see also uf_object_types.h.& K; ^" K! A) ~! D& c# J" Y
// Uncomment or combine the desired mask triples
3 n2 R. _7 G  k* Kstd::vector<Selection::MaskTriple> maskArray(1);
& d: w8 L+ q: H: b1 f; ?maskArray[0] = Selection::MaskTriple( UF_solid_type, UF_solid_body_subtype, 0 ); // Bodies* K9 [5 i( z, j2 y7 q
/*
( q+ ?3 }" g3 P0 ~/ p+ qmaskArray[0] = Selection::MaskTriple( UF_solid_type, UF_all_subtype, UF_UI_SEL_FEATURE_ANY_FACE); // Faces
  ?, B' h, V* R+ [maskArray[0] = Selection::MaskTriple( UF_solid_type, UF_all_subtype, UF_UI_SEL_FEATURE_ANY_EDGE); // Edges. S' F/ V6 c0 `! ^8 N
maskArray[0] = Selection::MaskTriple( UF_component_type, 0, 0 ); // Components- g* u; l3 I& V
maskArray[0] = Selection::MaskTriple( UF_line_type, 0, 0 ); // Lines
  a' V& w; {6 p: MmaskArray[0] = Selection::MaskTriple( UF_drafting_entity_type, 0, 0 ); // Drafting objects' |, i4 }" {1 H2 `% X* Q$ M
*/- M2 e9 e$ X6 P" [# ~: ]
Point3d cursor;
: {1 g. ^* B+ F# K; d3 Z2 JTaggedObject *object; // Select objects using filter defined by maskArray triples
+ A/ ^; o8 f  J4 C" [Selection::Response res = selmgr->SelectTaggedObject(
" N5 G6 B0 @1 W5 o6 z   message, title, scope, action, include_features,+ O- \1 r) W" `8 c
            keep_highlighted, maskArray, &object, &cursor ); if( res == Selection::ResponseObjectSelected )
$ l) f% A+ ?+ L6 Z{% m& M3 [) u; I8 F+ o
  return object;
: f6 ~' v& r6 a6 x$ }1 R}
- Y( S0 E! O+ h+ l% G: Ureturn 0;
  a3 K+ l9 e, W: [% \+ l}//------------------------------------------------------------------------------
/ J0 t; W9 t8 K, Q* U2 S' [// Selection with type array
+ [. c  P$ a  Q! F6 U! ?% {//------------------------------------------------------------------------------
# |; H( J# s" t3 k6 f5 mTaggedObject* MyClass::select_by_type()) B& e! z( Z& x! S9 c, R7 K
{* e1 V3 K& V% A: n, ^9 N1 g2 n" v/ `0 D
NXString message("Select an object by type:");- Q- U5 |# e' |) O$ D4 s4 ?# g
NXString title("Select object");
) V. c( Q% W8 X) P4 ^0 W# z+ u' ISelection::SelectionScope scope = Selection::SelectionScopeUseDefault;
1 w; R, U5 }: q3 M6 _6 u. p% s6 Lbool keep_highlighted = 0; // Define the mask triple(s), see also uf_object_types.h.- y1 ~  t% b, Q/ a9 o5 Y
// Uncomment or combine the desired types
  _6 ^# }# o) A( S; ostd::vector<Selection::SelectionType> typeArray(1);+ _0 n9 ^& X: P# e$ L6 `" T
typeArray[0] = Selection::SelectionTypeAll;
, F' u  {6 _0 h' N+ {% b" B/*
4 ]: ?- m3 S  K: y7 n" PtypeArray[0] = Selection::SelectionTypeFeatures;
- C5 l4 f0 t3 S0 ttypeArray[0] = Selection::SelectionTypeCurves;
0 S$ u7 h  ^: q6 FtypeArray[0] = Selection::SelectionTypeFaces;0 `6 ]( V. F  c) A
typeArray[0] = Selection::SelectionTypeEdges;
) F6 q2 U# {2 G$ Y0 ?+ KtypeArray[0] = Selection::SelectionTypeCurvesAndEdges;
! _0 q5 N* A" D* N*/
$ N0 u9 r1 E* ~5 _$ U8 \: QPoint3d cursor;6 Q0 R% q9 t  M7 G2 g0 A3 X; x: N
TaggedObject *object; // Select objects using filter defined by type array
, F+ o0 |0 @9 ASelection::Response res = selmgr->SelectTaggedObject(
3 H4 d+ l; h7 o: q   message, title, scope, keep_highlighted,
: b  Z9 L' A" h' u/ T$ L/ T   typeArray, &object, &cursor ); if( res == Selection::ResponseObjectSelected )" R9 k! i4 s9 y0 S
{- X+ M$ T- Z, c( L) R% `+ k
  return object;( C) |8 }  M2 n. H* e) ?" A
}# G' @( j% e# d$ o8 o8 V; L# b+ J! [
return 0;8 l' `) \2 F$ x& n& B2 S( Y; m
}//------------------------------------------------------------------------------$ f" o, {2 s  H8 R( r
// Selection any objects- J/ U2 M7 ~8 s9 b" X' S
//------------------------------------------------------------------------------
* Z' q: |3 u) v4 _std::vector< NXOpen::TaggedObject * > MyClass::select_any_objects(); x+ k; H6 a, B2 Y1 @! h1 J
{
; l0 [9 n, c7 i  q" ^NXString message("Select any objects:");4 w# b: {1 @1 I( I0 r9 \
NXString title("Select objects");" W0 `- f8 N0 X3 |6 n
Selection::SelectionScope scope = Selection::SelectionScopeUseDefault;
; H, E# F. f' W' ^0 gbool include_features = 0; + T) Q+ @6 v/ n+ t4 v
bool keep_highlighted = 0;
. @6 i9 K" J* S" b& q1 r6 qstd::vector< NXOpen::TaggedObject * > objectArray; // Select any object array
( ~8 S& v) i! v, y% E, j2 e7 [% T9 ySelection::Response res = selmgr->SelectTaggedObjects(- w, K0 W4 C( L' V- k
   message, title, scope, include_features,
% c; J6 g, W; L# I+ }2 L' V; ], v   keep_highlighted, objectArray ); return objectArray;
2 _% n' s7 m: @# s. N}
, r4 E! m' N+ k6 |" T
  I0 \( ]3 l& p. s0 o: E8 c
( x* n1 g4 N1 [8 S' _
- ~. a& P" I; F1 B
上海点团信息科技有限公司,承接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: H! [. a+ C7 o( d; p
老大 为什么把你的这个代码放在这里会提示错误啊。。。新手一枚,问题幼稚,请多指教 谢谢 ...

7 `% d* b% t) b你抱什么错
. M) c# W1 k# D$ m头文件 加了么
上海点团信息科技有限公司,承接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
2 ?5 S1 {5 J! N7 r/ ]老大 为什么把你的这个代码放在这里会提示错误啊。。。新手一枚,问题幼稚,请多指教 谢谢 ...
. \% t# e, c& f1 `: g
你抱什么错
. b/ ?$ z% R4 |9 r头文件 加了么
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了