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

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

  [复制链接]

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

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

admin 楼主

2014-2-18 13:07:13

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

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

x
选择方式包括通过mask过滤,通过type选择,或者通过选择所有的对象。/ D1 o- C7 x) ^+ R( z

$ x7 s4 i# I2 y1 u6 a* w' X1 Q/------------------------------------------------------------------------------; j# W7 a$ z9 w
// Selection with mask" y2 M( Q' e( i0 ?5 F
//------------------------------------------------------------------------------. o0 `' a$ I: A2 X; s3 g  c
TaggedObject* MyClass::select_by_mask()5 \& N0 `0 z9 A: N1 e0 I$ A
{
+ A1 @' L, n- ^NXString message("Select an object by mask:");
% ~  B8 b3 ]! N9 {( \0 H2 lNXString title("Select object");
& v: K8 k- C% P3 Z9 w$ _0 z/ c' ISelection::SelectionScope scope = Selection::SelectionScopeUseDefault;9 m7 {( u" R* X
Selection::SelectionAction action = Selection::SelectionActionClearAndEnableSpecific;
; }. V# L  W& n  X7 U/ Mbool include_features = 0;
+ `' M" q0 f: A* u3 t! Jbool keep_highlighted = 0; // Define the mask triple(s), see also uf_object_types.h.. k# G  O: a2 n
// Uncomment or combine the desired mask triples) b% A- C$ w& H
std::vector<Selection::MaskTriple> maskArray(1);8 e4 N8 s8 J' W8 }4 Z, f
maskArray[0] = Selection::MaskTriple( UF_solid_type, UF_solid_body_subtype, 0 ); // Bodies
& r8 Z8 T" }- Z6 [) A3 \/*4 u. m' u. V+ Y$ k
maskArray[0] = Selection::MaskTriple( UF_solid_type, UF_all_subtype, UF_UI_SEL_FEATURE_ANY_FACE); // Faces( R$ R1 C5 T) F  r- ]# |7 \
maskArray[0] = Selection::MaskTriple( UF_solid_type, UF_all_subtype, UF_UI_SEL_FEATURE_ANY_EDGE); // Edges
1 O% T" U  S' d9 UmaskArray[0] = Selection::MaskTriple( UF_component_type, 0, 0 ); // Components
6 w- z* z  o5 ~/ h# ?$ z1 RmaskArray[0] = Selection::MaskTriple( UF_line_type, 0, 0 ); // Lines
  \/ ^: e6 @" zmaskArray[0] = Selection::MaskTriple( UF_drafting_entity_type, 0, 0 ); // Drafting objects
+ i# n5 {/ K9 E7 s% N! K- c' }" s*/$ d) U1 W, u/ S# O' {+ \, R% F
Point3d cursor;$ \+ v; d/ \# A! G7 S
TaggedObject *object; // Select objects using filter defined by maskArray triples! O+ }$ b+ v! i
Selection::Response res = selmgr->SelectTaggedObject($ `% e7 {# f9 s7 C5 G5 a0 ~( e, [
   message, title, scope, action, include_features,
: t+ w% g. t: I- r' l4 j7 z            keep_highlighted, maskArray, &object, &cursor ); if( res == Selection::ResponseObjectSelected )
' |$ o) `# ?3 @. T: J{
* t4 p! f0 k+ k0 K# v: C$ D. u  return object;4 N: [4 r. j0 A# T% B
}1 ]5 Y( |2 f- C, v7 |
return 0;/ N! z: S' z9 ^* \/ j+ k$ Y4 T
}//------------------------------------------------------------------------------1 X3 X/ b; [/ a
// Selection with type array
. [; o$ W& O/ N' H: w//------------------------------------------------------------------------------
  w+ ?2 h$ O# ~* z$ gTaggedObject* MyClass::select_by_type()% ^" V( }5 H/ g7 f; u. S9 r8 B
{$ S- V3 W, }8 a
NXString message("Select an object by type:");# f1 C% ?( m: D. q- x
NXString title("Select object");
, E8 k  ?6 P" E/ K- U6 ySelection::SelectionScope scope = Selection::SelectionScopeUseDefault;
  i- V4 \+ x. F& K* Hbool keep_highlighted = 0; // Define the mask triple(s), see also uf_object_types.h.  C# j) B$ y) u9 g0 T* X8 a& x
// Uncomment or combine the desired types
2 x% D2 @/ `# G" n1 Kstd::vector<Selection::SelectionType> typeArray(1);
$ n4 K' w6 u% P# l+ \typeArray[0] = Selection::SelectionTypeAll;
4 U2 d5 i0 w  \' c/*/ G1 K# l9 e4 h/ v' v- N; B
typeArray[0] = Selection::SelectionTypeFeatures;7 k" p$ N8 q0 ~% D4 F' y
typeArray[0] = Selection::SelectionTypeCurves;
( v, H8 a& S- l& ctypeArray[0] = Selection::SelectionTypeFaces;4 F0 G0 D+ M2 K& i) Y) S
typeArray[0] = Selection::SelectionTypeEdges;
! T. Q2 H- g6 S( w  ytypeArray[0] = Selection::SelectionTypeCurvesAndEdges;
) @! H& l* J" M3 v2 [% J! ?*/
; S/ p$ u1 X. K/ z3 ^# J; NPoint3d cursor;
: f! s) ^: Q( p8 tTaggedObject *object; // Select objects using filter defined by type array+ d  r' k( P$ w: V5 q3 U
Selection::Response res = selmgr->SelectTaggedObject(& B( e# I& N- U# Q. n0 w7 b* L9 W
   message, title, scope, keep_highlighted, & c; c. w) X$ [) E9 t5 |
   typeArray, &object, &cursor ); if( res == Selection::ResponseObjectSelected )$ K' A2 b9 L4 b1 P& p
{; @8 p! s. M3 ^7 ~* q- N( t4 L
  return object;
( }# k' R  I. S1 O2 q. r}
5 H( l, }5 Z( U% v" f4 {return 0;' c( X# d) H% u* O4 o9 K
}//------------------------------------------------------------------------------8 \( d" S2 R  d, W: s, g; J4 d
// Selection any objects
0 H) |3 l7 w8 |; ]  |! L) w//------------------------------------------------------------------------------
- t" k6 Z5 l  m" B4 [std::vector< NXOpen::TaggedObject * > MyClass::select_any_objects()9 k& m; R/ }4 x* g/ ^
{
. r- D$ v. K. H( ~# U+ ?5 SNXString message("Select any objects:");# e2 ?. L; U" S0 G  Z2 d
NXString title("Select objects");
, i6 C) w. |4 n- t; l6 p4 I. c/ xSelection::SelectionScope scope = Selection::SelectionScopeUseDefault;8 s. q( ^; g: ?! u4 x
bool include_features = 0;
- t+ s% m& e6 g! t$ X) Bbool keep_highlighted = 0;0 X+ @5 ^$ D5 `. y
std::vector< NXOpen::TaggedObject * > objectArray; // Select any object array
% x; |/ N; C! |. p- w3 oSelection::Response res = selmgr->SelectTaggedObjects(
  @4 i( {6 f0 e, a3 v   message, title, scope, include_features,
, w! D1 J! s6 D) o   keep_highlighted, objectArray ); return objectArray;
& h6 S# B$ V# v, N}
8 {7 @4 Z8 j6 J- H- k' T* ]4 {) V
8 C) [6 r) V$ |8 e3 P% {4 J" o- Q  @% Y. u

% R  o4 m7 Z: C
上海点团信息科技有限公司,承接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: |, l  m$ I, C5 P$ f$ ^
老大 为什么把你的这个代码放在这里会提示错误啊。。。新手一枚,问题幼稚,请多指教 谢谢 ...
. K) K  U- b' k
你抱什么错
. }0 o9 a3 D. _9 a) J* C头文件 加了么
上海点团信息科技有限公司,承接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, z7 K; |3 _( T! G% W- ?
老大 为什么把你的这个代码放在这里会提示错误啊。。。新手一枚,问题幼稚,请多指教 谢谢 ...
4 R' l# R7 N9 D' t. A# M
你抱什么错
% D  g$ P1 E. j5 E# C$ C( X8 {头文件 加了么
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了