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

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

  [复制链接]

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

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

admin 楼主

2014-2-18 13:07:13

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

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

x
选择方式包括通过mask过滤,通过type选择,或者通过选择所有的对象。& B4 z. z+ e7 K+ g2 }9 D
7 X9 c& J1 K6 r2 X& S
/------------------------------------------------------------------------------: i# h4 j& @2 x2 c( O
// Selection with mask$ d/ S$ E* z& ?( v2 Z/ I% m* P
//------------------------------------------------------------------------------
! n$ ^. ?- P' }TaggedObject* MyClass::select_by_mask()
$ c$ B9 ]& O. u! Q# n/ }{2 z0 |) v) m% Z
NXString message("Select an object by mask:");0 f# D: A4 A; }* `8 ?- q! N/ w
NXString title("Select object");
/ W( _7 w% c0 x$ t) w; D- |5 NSelection::SelectionScope scope = Selection::SelectionScopeUseDefault;6 @3 j. ~& N; r7 T) ~. Y
Selection::SelectionAction action = Selection::SelectionActionClearAndEnableSpecific;
' `7 f9 E5 ]  w$ ^bool include_features = 0;6 x& k/ O* f6 e7 d
bool keep_highlighted = 0; // Define the mask triple(s), see also uf_object_types.h.
' A% b% g2 Z. p% I" D5 h// Uncomment or combine the desired mask triples
7 G3 B: q( Z$ T; Ystd::vector<Selection::MaskTriple> maskArray(1);) G" ]/ G6 w* Q" N1 ^* a1 Q
maskArray[0] = Selection::MaskTriple( UF_solid_type, UF_solid_body_subtype, 0 ); // Bodies
) z) M5 q, `, J/*
4 G* B! R4 {2 L8 O& qmaskArray[0] = Selection::MaskTriple( UF_solid_type, UF_all_subtype, UF_UI_SEL_FEATURE_ANY_FACE); // Faces( J; [& }8 y/ ?# b: L$ l6 R7 E
maskArray[0] = Selection::MaskTriple( UF_solid_type, UF_all_subtype, UF_UI_SEL_FEATURE_ANY_EDGE); // Edges( Z0 I% }# {  k4 O: E: R
maskArray[0] = Selection::MaskTriple( UF_component_type, 0, 0 ); // Components; B. X% h4 P0 ~- O- B4 }
maskArray[0] = Selection::MaskTriple( UF_line_type, 0, 0 ); // Lines
3 C* }3 H( b/ b5 E& JmaskArray[0] = Selection::MaskTriple( UF_drafting_entity_type, 0, 0 ); // Drafting objects6 l( l, ~( T. G
*/
3 |4 u3 S1 B9 l+ a5 TPoint3d cursor;
( T; e( P7 A' A' \; s+ oTaggedObject *object; // Select objects using filter defined by maskArray triples3 @' i& P3 H- _, n- _/ w: [
Selection::Response res = selmgr->SelectTaggedObject(# C- D  x2 X% [2 K
   message, title, scope, action, include_features,$ R" m( S; r4 ]
            keep_highlighted, maskArray, &object, &cursor ); if( res == Selection::ResponseObjectSelected )
: Y, |, ?( t% T& H: @, x1 w{
; @2 n# w& |' L) @3 H# h. M) F6 r  return object;
0 @7 m  ^( e0 r5 b/ M+ V" o}
" V: q( e) r: P& X; x; i) v6 treturn 0;
. _$ X; K1 a, ?' ]2 B; Z}//------------------------------------------------------------------------------
' I, j# X$ s/ S. A// Selection with type array4 Q# X/ o8 a. U# {" _- B
//------------------------------------------------------------------------------
8 o% V5 U: n9 d) {- m8 `- {$ JTaggedObject* MyClass::select_by_type()1 A8 f& P: ^( j7 o9 ?
{
3 ]+ i2 V$ z0 k7 x: ~" N8 w9 G3 yNXString message("Select an object by type:");! Q4 ^) |7 ]7 e4 n, G
NXString title("Select object");
. N1 z4 V, w6 L7 Z6 ^5 TSelection::SelectionScope scope = Selection::SelectionScopeUseDefault;
* @( V! e  B: X- _2 d' l9 ~bool keep_highlighted = 0; // Define the mask triple(s), see also uf_object_types.h.4 ]6 f" K$ g  k
// Uncomment or combine the desired types
% j6 t4 D- P9 fstd::vector<Selection::SelectionType> typeArray(1);; ^; y+ l  v( V
typeArray[0] = Selection::SelectionTypeAll;  i: c$ x# N* a: F
/*
& h! Y& C! d! l/ WtypeArray[0] = Selection::SelectionTypeFeatures;5 l0 \0 }4 e5 f
typeArray[0] = Selection::SelectionTypeCurves;5 W4 I! l' T  \" F0 A& i6 _3 k
typeArray[0] = Selection::SelectionTypeFaces;
7 s& c9 P) v! Y% M" o+ {# ^typeArray[0] = Selection::SelectionTypeEdges;
  s) n, B* `9 D+ y  u9 p1 R/ ktypeArray[0] = Selection::SelectionTypeCurvesAndEdges;
9 f2 _+ Q( ^% ~' E* |5 Q4 Z6 ?$ J*/* \+ w$ z' h0 p1 V; F- J" H  e! @
Point3d cursor;6 }. l  M- t' l2 S6 e& N9 Z- N
TaggedObject *object; // Select objects using filter defined by type array) @1 s+ \. r& h% [$ F
Selection::Response res = selmgr->SelectTaggedObject(
. l8 k0 t' n4 C   message, title, scope, keep_highlighted, % e4 e2 N2 {  P7 H7 }
   typeArray, &object, &cursor ); if( res == Selection::ResponseObjectSelected )( D; i& y* |  a% F: \- y
{
: z! `& A( n" s; @  return object;4 k) |! k& p8 z( u/ F, k! C7 Z! d
}! p: R, g( g2 N# ?
return 0;
, k; f7 E/ k9 F1 t0 h}//------------------------------------------------------------------------------
% R1 n7 a8 m( G% F// Selection any objects' e7 e' V4 L% Z8 R
//------------------------------------------------------------------------------" y8 U2 `* @" l" x/ m. J
std::vector< NXOpen::TaggedObject * > MyClass::select_any_objects()3 R4 J; J0 {3 C% l' I1 z; S4 V1 T2 B
{
, i% Q. \$ N) D5 `, HNXString message("Select any objects:");
1 v, w! {9 r" ~7 L: |9 Z1 J  ]NXString title("Select objects");
/ Z1 h0 p) y7 T) s9 H$ z+ ]; r+ _Selection::SelectionScope scope = Selection::SelectionScopeUseDefault;# o; l: a1 m7 ~6 ~
bool include_features = 0; 7 ?; c2 x3 [7 h( W
bool keep_highlighted = 0;: P$ x2 D9 S5 i# U$ _: t9 c1 c* H/ A3 ~
std::vector< NXOpen::TaggedObject * > objectArray; // Select any object array
& \1 j4 s, C, _Selection::Response res = selmgr->SelectTaggedObjects(
! ^! r  u. n- Q# A   message, title, scope, include_features, % g" n& a' c' R2 f
   keep_highlighted, objectArray ); return objectArray;
: I* Q& t( K! p+ l' ]8 {( ^  h& K}
. C- Y0 r( l9 D. ]. |5 D
& Z# N5 w' J& O% Q8 L$ Q" E" T/ F. A# u) S) x

2 v5 P( c1 g8 ^7 l
上海点团信息科技有限公司,承接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
' j( L* u: {1 q" |老大 为什么把你的这个代码放在这里会提示错误啊。。。新手一枚,问题幼稚,请多指教 谢谢 ...

% Q1 F, w, l; J0 _; e" X) c你抱什么错
# H, ?8 S1 B5 y9 n' S" f) G头文件 加了么
上海点团信息科技有限公司,承接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:367 B0 c& C- ?8 r
老大 为什么把你的这个代码放在这里会提示错误啊。。。新手一枚,问题幼稚,请多指教 谢谢 ...
6 k1 E1 a* t5 c; A) k2 G0 y
你抱什么错
3 L) }6 m5 b5 |' @2 H头文件 加了么
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了