PLM之家PLMHome-国产软件践行者

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

  [复制链接]

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

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

admin 楼主

2014-2-18 13:07:13

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

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

x
选择方式包括通过mask过滤,通过type选择,或者通过选择所有的对象。; K! L+ s  ]; K, y
! p& c1 a# t: O, r
/------------------------------------------------------------------------------
( Y) N. _3 E& ]* b// Selection with mask
! [% N8 i# g! X& J//------------------------------------------------------------------------------
$ X+ k* J# o3 i9 R2 H* R8 BTaggedObject* MyClass::select_by_mask()
; z, M2 \% ]5 `* o/ y' G{
; `6 L: K( U2 ?2 b# g- CNXString message("Select an object by mask:");
$ ~/ b; h7 X/ ~& B$ M, ONXString title("Select object");
5 [; ~% s- y5 W# H' R8 j& `; hSelection::SelectionScope scope = Selection::SelectionScopeUseDefault;& H. i' F# N) Q0 d1 d# s8 f
Selection::SelectionAction action = Selection::SelectionActionClearAndEnableSpecific;
7 M3 {/ C; P* m" z& abool include_features = 0;
) ?# @: ]2 X# K0 e$ f  _2 Ebool keep_highlighted = 0; // Define the mask triple(s), see also uf_object_types.h.
! D9 i' d1 c5 \, Y7 N1 ]// Uncomment or combine the desired mask triples1 A" Z% T- P$ {# u! }! N3 j) U! V
std::vector<Selection::MaskTriple> maskArray(1);9 Z- w3 T4 }0 e
maskArray[0] = Selection::MaskTriple( UF_solid_type, UF_solid_body_subtype, 0 ); // Bodies0 w0 @2 T; W/ I8 c
/*& Z% e" r$ H/ L3 w% y4 K7 w
maskArray[0] = Selection::MaskTriple( UF_solid_type, UF_all_subtype, UF_UI_SEL_FEATURE_ANY_FACE); // Faces
5 U9 ]/ y; T1 V7 a3 y( H# CmaskArray[0] = Selection::MaskTriple( UF_solid_type, UF_all_subtype, UF_UI_SEL_FEATURE_ANY_EDGE); // Edges
. y; C% W. K0 E0 SmaskArray[0] = Selection::MaskTriple( UF_component_type, 0, 0 ); // Components  k7 K7 H2 v- k
maskArray[0] = Selection::MaskTriple( UF_line_type, 0, 0 ); // Lines% l6 G5 U; X1 j' F5 }9 h. ^
maskArray[0] = Selection::MaskTriple( UF_drafting_entity_type, 0, 0 ); // Drafting objects! w  t6 d6 k' L- t: R
*/
6 _3 v# T" J# X# H+ a- k; v' i9 S, EPoint3d cursor;
+ E# [% f2 y9 M. M6 B$ C9 LTaggedObject *object; // Select objects using filter defined by maskArray triples
: J- P* l4 k. kSelection::Response res = selmgr->SelectTaggedObject(
: m0 x1 T$ D2 q% H" v* j  L   message, title, scope, action, include_features,
2 g/ W4 q+ k' ]            keep_highlighted, maskArray, &object, &cursor ); if( res == Selection::ResponseObjectSelected )
1 g; a3 ]4 M* n. }{
9 a3 d3 M" ]5 {+ {; T$ c' P" e8 S  return object;. U4 x, |9 ^+ Z& T
}4 D) r5 ?# s2 E. `: A7 x$ |
return 0;/ A, g1 v& B  `+ e
}//------------------------------------------------------------------------------
. [" q* f$ P( [1 o9 s$ ?// Selection with type array! i- I3 N& S' U/ w2 t5 J% j2 e
//------------------------------------------------------------------------------
! ]+ u( a$ y/ O4 c! ATaggedObject* MyClass::select_by_type()
: E& x2 F+ T" B  o{
$ B& G. V- Z  k2 U4 W2 n% u. p% MNXString message("Select an object by type:");- ~# x2 X( x  Y' }% I& U
NXString title("Select object");
: _$ q" {( L4 x6 ^+ \Selection::SelectionScope scope = Selection::SelectionScopeUseDefault;
, U) x3 O4 E' @5 V, K! ^bool keep_highlighted = 0; // Define the mask triple(s), see also uf_object_types.h.
: V& J0 _  j5 A  e# i3 u+ x) G// Uncomment or combine the desired types2 C# K$ j9 _2 c# i, f
std::vector<Selection::SelectionType> typeArray(1);% K  g; U! k! ^) A" w6 f6 L0 M3 q& n
typeArray[0] = Selection::SelectionTypeAll;) e' Y. s, H1 x
/*
$ J. z% T. W9 z& N8 k8 Z" |typeArray[0] = Selection::SelectionTypeFeatures;
( P+ L- e4 f4 a- p. o$ p5 EtypeArray[0] = Selection::SelectionTypeCurves;
2 ?( y( L( L' |typeArray[0] = Selection::SelectionTypeFaces;; f) u  ?* }- i8 {2 ?4 `* s+ |
typeArray[0] = Selection::SelectionTypeEdges;
) S# z, [* h. QtypeArray[0] = Selection::SelectionTypeCurvesAndEdges;
- J1 S. S1 k- s$ _3 V*/
; R- H8 G  p9 c$ p1 BPoint3d cursor;
! U5 P( t( l: |; Y- Y' ZTaggedObject *object; // Select objects using filter defined by type array  {. N! m( h$ S! X7 k1 O6 @& P
Selection::Response res = selmgr->SelectTaggedObject(
$ Y( ~- t2 Z1 Q! R8 \8 u$ d! D5 N   message, title, scope, keep_highlighted, 3 y0 g4 B$ n8 P) j: B
   typeArray, &object, &cursor ); if( res == Selection::ResponseObjectSelected )
. u( X- o( w4 Z( u- p$ J& @, p{% r; e. A/ s, Y% b+ C1 h  q$ ?
  return object;7 \6 S! u0 s8 B0 H
}
) M9 {5 {8 l7 \9 s. ^5 K  T8 [return 0;9 \  a+ G2 \7 U3 \8 |( t) ]0 ^
}//------------------------------------------------------------------------------
0 C/ y% b$ Y$ k2 A+ a. _% u// Selection any objects
7 @5 y' L! a+ w5 j' y* W8 X: Z, F& X//------------------------------------------------------------------------------
) x" u) _) f0 o( h: Kstd::vector< NXOpen::TaggedObject * > MyClass::select_any_objects()& |  m4 l! h' I- R% }- A
{
4 O& z8 X  ~$ {! uNXString message("Select any objects:");, V1 H; P6 a: s8 y8 w7 t6 G7 D6 Z- T
NXString title("Select objects");
4 T8 Y$ k3 R+ W3 \Selection::SelectionScope scope = Selection::SelectionScopeUseDefault;
$ D  s) F8 k2 a7 g% V0 i! nbool include_features = 0; 5 ]0 |9 G+ s6 }5 |' `
bool keep_highlighted = 0;
/ ]/ ^& P- H# hstd::vector< NXOpen::TaggedObject * > objectArray; // Select any object array& @- d$ E8 U8 }; H' E8 ]4 R
Selection::Response res = selmgr->SelectTaggedObjects(
2 Y9 Q4 Y1 \1 }* h: M/ C3 X   message, title, scope, include_features, ( K- S7 w' t( X/ K
   keep_highlighted, objectArray ); return objectArray;7 v3 S" D6 |2 d/ L& C
}
3 A* \* D  `- b1 I* Q. ]2 F6 k2 Z
6 s5 ^$ }1 P! O7 Z
) W4 E( |3 r" R- q7 w9 V, s" E* x; f9 X  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
2 D1 [5 x! s, l  A0 t老大 为什么把你的这个代码放在这里会提示错误啊。。。新手一枚,问题幼稚,请多指教 谢谢 ...

3 X& i! O! k+ h5 ~6 Q; X1 }: H你抱什么错
- q. h4 K% j7 O. 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
! M# T2 N5 k6 p1 ^' }& Y8 ]老大 为什么把你的这个代码放在这里会提示错误啊。。。新手一枚,问题幼稚,请多指教 谢谢 ...

2 z1 y4 ?5 w, p+ |  b5 N- E! y你抱什么错2 `# A! n% D, c* |) a) e0 ?
头文件 加了么
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了