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

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

  [复制链接]

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

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

admin 楼主

2014-2-18 13:07:13

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

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

x
选择方式包括通过mask过滤,通过type选择,或者通过选择所有的对象。9 e( w* q# t" H) U+ m
) |/ V' ]6 d1 {
/------------------------------------------------------------------------------
4 `2 N3 |# W6 `' z  Z) s// Selection with mask
7 l2 A; B. `* C3 U: T3 T, ^//------------------------------------------------------------------------------
; {7 `7 c/ r9 H6 yTaggedObject* MyClass::select_by_mask()
& t+ X- D& G; o4 n1 m, b+ d2 _5 _{$ F3 ~. S+ ~4 V# t
NXString message("Select an object by mask:");' m6 K- H  x, O* x! u% P
NXString title("Select object");/ S, H8 \6 z$ n  z) ]( l; a8 Q
Selection::SelectionScope scope = Selection::SelectionScopeUseDefault;
# l+ x. Q& p  b6 [3 i2 _& }Selection::SelectionAction action = Selection::SelectionActionClearAndEnableSpecific;
1 V5 ^( Y& t; h" O! U/ n# gbool include_features = 0;
  `5 E% k9 x  n$ U' Vbool keep_highlighted = 0; // Define the mask triple(s), see also uf_object_types.h.
, q! h; Z8 _# r+ v3 V+ k, m// Uncomment or combine the desired mask triples& D3 ?1 I0 d! ?6 j0 f
std::vector<Selection::MaskTriple> maskArray(1);* A' s: C/ X% U3 }
maskArray[0] = Selection::MaskTriple( UF_solid_type, UF_solid_body_subtype, 0 ); // Bodies
$ Y$ l( n, n3 e- B* g% g, k% V/*& h% {8 t7 `7 u; a) y7 H
maskArray[0] = Selection::MaskTriple( UF_solid_type, UF_all_subtype, UF_UI_SEL_FEATURE_ANY_FACE); // Faces
$ |6 x# k. f$ V1 ~0 R8 b& ], HmaskArray[0] = Selection::MaskTriple( UF_solid_type, UF_all_subtype, UF_UI_SEL_FEATURE_ANY_EDGE); // Edges
4 V( T7 R9 N( wmaskArray[0] = Selection::MaskTriple( UF_component_type, 0, 0 ); // Components. a& n6 x0 W& M9 p  @2 Z' `
maskArray[0] = Selection::MaskTriple( UF_line_type, 0, 0 ); // Lines$ K5 c, p: \+ D8 |6 E+ w' H
maskArray[0] = Selection::MaskTriple( UF_drafting_entity_type, 0, 0 ); // Drafting objects
8 \1 `( A* U, {' w*/2 L& h) {! ?/ @7 ?2 p
Point3d cursor;
- d4 j  ?, V/ n9 BTaggedObject *object; // Select objects using filter defined by maskArray triples
+ B$ J5 m! U" _7 SSelection::Response res = selmgr->SelectTaggedObject(5 p- O3 p9 W9 m0 G
   message, title, scope, action, include_features,+ w, V$ {# ~! c$ _5 s
            keep_highlighted, maskArray, &object, &cursor ); if( res == Selection::ResponseObjectSelected )
- x" g8 U0 A1 N, q% o7 A, s8 k{& Z: d" ]2 I1 o# N
  return object;
" G- h; }  }* L2 d9 j, H' D2 [* h' s}, ^& [! }' T  }* N$ g
return 0;
' m2 P& f. l7 U0 @$ g' ~! z  j}//------------------------------------------------------------------------------1 p& K/ L4 H' F! w7 P, O( n
// Selection with type array/ k) R6 `. W% d1 j7 y
//------------------------------------------------------------------------------
9 C8 |- v& n( A8 e/ \9 V% bTaggedObject* MyClass::select_by_type()$ e  {  A& U6 X( {" I. `
{
; b* r1 l1 F* X* V$ F+ KNXString message("Select an object by type:");- G: z- }4 T3 k' Q1 ]. v
NXString title("Select object");4 O" r* D/ B$ ~7 |
Selection::SelectionScope scope = Selection::SelectionScopeUseDefault;
7 q3 d1 P1 N7 kbool keep_highlighted = 0; // Define the mask triple(s), see also uf_object_types.h., W8 N2 \* N; N
// Uncomment or combine the desired types
4 Q7 e: e; @4 I3 {9 @' t) U0 astd::vector<Selection::SelectionType> typeArray(1);$ \! D/ h* M& I" a! ]: ?; O! }
typeArray[0] = Selection::SelectionTypeAll;5 h$ c9 S9 |8 e9 x4 ?
/*
6 L8 |# h7 b8 c, t- t3 gtypeArray[0] = Selection::SelectionTypeFeatures;2 C) c) m+ N, w$ R8 c) Q/ I# H/ A- {4 @
typeArray[0] = Selection::SelectionTypeCurves;; |3 i. Z# K$ f7 K1 V
typeArray[0] = Selection::SelectionTypeFaces;& Z6 s- N  @3 V
typeArray[0] = Selection::SelectionTypeEdges;
) P# _. B1 u3 n9 z( `, ntypeArray[0] = Selection::SelectionTypeCurvesAndEdges;
: ?  q/ v! l/ x2 C*/
$ e) w* ^6 l- r5 ?+ [5 ^, uPoint3d cursor;" _0 _5 z; d/ b( |' s7 B; X6 H# H4 u
TaggedObject *object; // Select objects using filter defined by type array
3 ^! v7 x  y' n+ N- W- WSelection::Response res = selmgr->SelectTaggedObject(
# k/ S, l( m; D* ?  _   message, title, scope, keep_highlighted, - u4 f( J$ l: X  W/ N" s
   typeArray, &object, &cursor ); if( res == Selection::ResponseObjectSelected )
" M7 h' W# K: S7 J* @3 t{
9 }# f+ _; j& Y4 c  return object;/ x6 C& B" \+ S
}
' K9 r, ^  A; ?" q, S6 a' ?return 0;" M  l3 w. f: B( u5 D5 c
}//------------------------------------------------------------------------------3 p7 O3 z& P8 p
// Selection any objects
0 n7 V# V& y; X  K6 q//------------------------------------------------------------------------------
+ Q" }2 Y9 p' p) |- z$ mstd::vector< NXOpen::TaggedObject * > MyClass::select_any_objects()
- t: i. G2 @) x3 r{; y7 ~) ?" I3 \5 W- S, Z) F5 [
NXString message("Select any objects:");
1 A2 W% u* z# y* u7 nNXString title("Select objects");: E& O3 ]$ `" [3 q3 _
Selection::SelectionScope scope = Selection::SelectionScopeUseDefault;
0 a$ I9 u$ ]9 K4 V( Y, }. o# ^bool include_features = 0;
4 y! @. }% K- u; e) S/ t( j) gbool keep_highlighted = 0;% a3 N& x; B" c8 k/ n1 p' d8 r; }
std::vector< NXOpen::TaggedObject * > objectArray; // Select any object array' S7 w) w2 B" L3 T. S& X- j
Selection::Response res = selmgr->SelectTaggedObjects(
$ ~* Q2 t# R& K3 l7 {% ~   message, title, scope, include_features,
4 h3 X, J6 ]  d   keep_highlighted, objectArray ); return objectArray;
$ o% A4 R# X4 I1 P* F}3 N8 j* L. j8 l7 _$ B. P2 n' W
+ D7 e  \1 T4 Y" a2 y: j  e1 u* m
( K! G% W" Q  f

4 R5 q5 U! y  f9 v- h' h
上海点团信息科技有限公司,承接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
' m, u+ h' B3 j老大 为什么把你的这个代码放在这里会提示错误啊。。。新手一枚,问题幼稚,请多指教 谢谢 ...

* [& s! v' p" W! Q5 L) Z: e7 E" p你抱什么错+ ?( ~$ }3 h$ a& S+ ~
头文件 加了么
上海点团信息科技有限公司,承接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# W% _8 M/ D  x, ?! r) a1 x# W  W
老大 为什么把你的这个代码放在这里会提示错误啊。。。新手一枚,问题幼稚,请多指教 谢谢 ...

, q* i* y: m) C' h( u4 r你抱什么错. L; m; }5 m% d! D% 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二次开发专题模块培训报名开始啦

    我知道了