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

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

  [复制链接]

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

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

admin 楼主

2014-2-18 13:07:13

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

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

x
选择方式包括通过mask过滤,通过type选择,或者通过选择所有的对象。
- j1 B) j4 Y: U$ U! e/ X. @6 k$ w
/------------------------------------------------------------------------------
2 ~* x( v0 l1 V7 N+ c// Selection with mask
4 @  J0 z9 W8 I. m! x" B//------------------------------------------------------------------------------+ z% u4 V+ P- H: i
TaggedObject* MyClass::select_by_mask(), y9 m  ]! E+ Q8 H- d& Q# q) m3 \
{
$ K6 A$ g; l% x1 JNXString message("Select an object by mask:");7 t& u8 P3 l, T
NXString title("Select object");6 B# \: y" s2 M" F5 g, E' X2 K8 L
Selection::SelectionScope scope = Selection::SelectionScopeUseDefault;
8 O& r0 t! v' W7 z* u5 [8 \9 \2 \Selection::SelectionAction action = Selection::SelectionActionClearAndEnableSpecific;
  t5 N: x. U( obool include_features = 0;* a( t$ s0 S- B1 \
bool keep_highlighted = 0; // Define the mask triple(s), see also uf_object_types.h.% T& b, N; ]- J! v
// Uncomment or combine the desired mask triples3 }9 H) |. o' g2 M+ U- P
std::vector<Selection::MaskTriple> maskArray(1);
- [2 P! M! A$ q: S* vmaskArray[0] = Selection::MaskTriple( UF_solid_type, UF_solid_body_subtype, 0 ); // Bodies3 r# B* j( i3 U
/*0 m0 H, B& f1 @/ F# {
maskArray[0] = Selection::MaskTriple( UF_solid_type, UF_all_subtype, UF_UI_SEL_FEATURE_ANY_FACE); // Faces
! S" {1 b. C  }  h, z( ~maskArray[0] = Selection::MaskTriple( UF_solid_type, UF_all_subtype, UF_UI_SEL_FEATURE_ANY_EDGE); // Edges6 N0 J. Y7 Q, K( u
maskArray[0] = Selection::MaskTriple( UF_component_type, 0, 0 ); // Components
2 T" Z2 e9 R& j, i8 I5 z0 Q. [  CmaskArray[0] = Selection::MaskTriple( UF_line_type, 0, 0 ); // Lines, \/ c0 }: ^  X3 R! j
maskArray[0] = Selection::MaskTriple( UF_drafting_entity_type, 0, 0 ); // Drafting objects
. c5 o+ j7 w6 s4 B3 R*// ?- z( ]; ~- s
Point3d cursor;& T) h4 {, H6 k4 r/ m
TaggedObject *object; // Select objects using filter defined by maskArray triples
1 J0 ~. c& E* iSelection::Response res = selmgr->SelectTaggedObject(
2 o3 X3 t$ Q/ f   message, title, scope, action, include_features,+ J, J( W: R. A8 r' s/ m4 h
            keep_highlighted, maskArray, &object, &cursor ); if( res == Selection::ResponseObjectSelected )# W4 x9 I# u8 F! f
{
7 `( a% F$ Y0 I1 q; o& Z1 u  return object;; H9 Y1 l2 p- b2 E! v
}- G5 {! R6 v6 k  d- W6 z8 s; F
return 0;
8 u2 M. }" T7 t+ M& c}//------------------------------------------------------------------------------4 ~1 D& |- P, n: m
// Selection with type array
5 A+ n8 |9 Y' U. K& g2 ~3 F, a//------------------------------------------------------------------------------( a5 O: }0 _3 x4 C* \
TaggedObject* MyClass::select_by_type()7 N+ i/ G; H/ l7 y, U. e4 o
{: C) G, W. v4 Y
NXString message("Select an object by type:");
  Y& M  X% [0 \' u8 w3 ?NXString title("Select object");" a& I* j# y" D3 i
Selection::SelectionScope scope = Selection::SelectionScopeUseDefault;
; I7 r0 z9 W- P& s' M" ]8 Zbool keep_highlighted = 0; // Define the mask triple(s), see also uf_object_types.h.  e  M/ h" o6 t/ K: R
// Uncomment or combine the desired types$ [5 ]3 S7 J" t" X8 d' m
std::vector<Selection::SelectionType> typeArray(1);  ^$ r$ W1 A+ q- @3 H1 B8 H% ~# N/ e* O
typeArray[0] = Selection::SelectionTypeAll;& f/ \6 `. O. v* v. H& b
/*2 y" t' H- z4 ~! ]
typeArray[0] = Selection::SelectionTypeFeatures;' z* Z8 |) ~$ Y  O. D" }; }
typeArray[0] = Selection::SelectionTypeCurves;
$ w5 f; W& l( X: PtypeArray[0] = Selection::SelectionTypeFaces;( P" ]1 D( w& r& D9 d
typeArray[0] = Selection::SelectionTypeEdges;# p) i7 n( P; C
typeArray[0] = Selection::SelectionTypeCurvesAndEdges;
+ K8 Q; R( {9 i$ ^2 f*/) T5 A5 R2 m! g" }# X/ w
Point3d cursor;  p0 J* c( @0 y& |. O3 Y) j
TaggedObject *object; // Select objects using filter defined by type array
# _) T" U! K0 N& |1 k; d. Z( oSelection::Response res = selmgr->SelectTaggedObject(
$ X, P' w, V3 G; v% K& ^* i   message, title, scope, keep_highlighted, ! B( ~9 A. `: M9 y
   typeArray, &object, &cursor ); if( res == Selection::ResponseObjectSelected )
- ~3 A/ z7 s  \' v/ D{
2 h1 X* b) i" {  return object;, O5 u/ b3 T$ R# L8 l4 s  p( o8 t
}7 N7 H3 ^/ I3 l/ r' E
return 0;8 N% U3 [# Y" ]* a: G2 r7 ]
}//------------------------------------------------------------------------------/ I' F: b* h, Y' e" t7 G- |
// Selection any objects
( R8 M/ c3 @' B) @. _//------------------------------------------------------------------------------! _. ?6 ?, S$ k6 ?
std::vector< NXOpen::TaggedObject * > MyClass::select_any_objects()4 g  X- R) |& L. @6 ^1 p
{, C6 `0 i( e  ^  P6 }6 u/ D  B
NXString message("Select any objects:");
; o8 q8 F. l5 d/ D9 a* Z# n. @( vNXString title("Select objects");# M+ h7 U7 p7 |1 [" A1 ?+ B* A
Selection::SelectionScope scope = Selection::SelectionScopeUseDefault;
* P( `0 `1 U; t* H1 K  K, lbool include_features = 0; 8 y, j1 \1 v% ]/ f* }8 e+ v0 W! O
bool keep_highlighted = 0;5 @  j' g' [8 B: z$ k$ m# ^
std::vector< NXOpen::TaggedObject * > objectArray; // Select any object array" C! M, D7 Q) w" p% S: R& f) c3 p4 G
Selection::Response res = selmgr->SelectTaggedObjects(0 i9 P7 C9 g6 d
   message, title, scope, include_features,
+ B8 [6 W5 |" {! i+ m5 x+ d" r   keep_highlighted, objectArray ); return objectArray;6 Q& F+ p2 k0 J/ z( Q3 y7 \
}, k1 P0 c; O7 n/ n
3 r% ?8 y( r1 I  E5 e

+ l5 n% Q# O: V3 c" v
% W& O8 A; j' w6 k  w
上海点团信息科技有限公司,承接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
) v; g1 k, E; v! a老大 为什么把你的这个代码放在这里会提示错误啊。。。新手一枚,问题幼稚,请多指教 谢谢 ...

0 D: h! s) T3 d5 k. ~你抱什么错
& P: R+ |7 k; r" ]头文件 加了么
上海点团信息科技有限公司,承接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, L, q! x$ i0 [, M  T- t& O
老大 为什么把你的这个代码放在这里会提示错误啊。。。新手一枚,问题幼稚,请多指教 谢谢 ...

- g" Y' Y& V' D你抱什么错0 H$ r" W) _  g. s
头文件 加了么
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了