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

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

  [复制链接]

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

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

admin 楼主

2014-2-18 13:07:13

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

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

x
选择方式包括通过mask过滤,通过type选择,或者通过选择所有的对象。
7 p  E' i+ W* k6 Q% N1 c" F
" y" U6 @  Y7 Y7 `' q/ P  A) y7 l/------------------------------------------------------------------------------
/ U. Z' m: p6 E! P1 u& p// Selection with mask
# {, I4 w5 f- t" C, t//------------------------------------------------------------------------------; n: v3 @8 ]( B3 Y+ L7 B
TaggedObject* MyClass::select_by_mask(), P/ b. D& p: c. u, T( m# q0 J
{
4 ~* t2 }! }6 C3 Y; \. V, ZNXString message("Select an object by mask:");7 S& ^) ?% A0 i, p1 W
NXString title("Select object");  v" E. {- u2 d( M. y7 U! j
Selection::SelectionScope scope = Selection::SelectionScopeUseDefault;4 X1 o9 U: Z6 Z4 a' v4 L- W6 n
Selection::SelectionAction action = Selection::SelectionActionClearAndEnableSpecific;+ Y' }. \# z! K( q6 o9 ?$ O
bool include_features = 0;0 e# W4 o  f& {4 U
bool keep_highlighted = 0; // Define the mask triple(s), see also uf_object_types.h.! o/ ?2 G: s8 M. M  ?0 @
// Uncomment or combine the desired mask triples" {9 _$ X1 N) b9 Z' R/ h' N/ m
std::vector<Selection::MaskTriple> maskArray(1);
& w+ l3 T5 @9 P( \4 w6 h5 UmaskArray[0] = Selection::MaskTriple( UF_solid_type, UF_solid_body_subtype, 0 ); // Bodies3 o+ V1 E0 M6 \- T
/*4 b6 h" `: N1 O3 `0 m+ b
maskArray[0] = Selection::MaskTriple( UF_solid_type, UF_all_subtype, UF_UI_SEL_FEATURE_ANY_FACE); // Faces
  O) s- d6 [' o. h$ _& F! o0 l/ [maskArray[0] = Selection::MaskTriple( UF_solid_type, UF_all_subtype, UF_UI_SEL_FEATURE_ANY_EDGE); // Edges
7 _% ]3 z* v/ S% T( d" omaskArray[0] = Selection::MaskTriple( UF_component_type, 0, 0 ); // Components
( q; |; j2 D6 R9 LmaskArray[0] = Selection::MaskTriple( UF_line_type, 0, 0 ); // Lines
% G# X  z! Q- \$ c# {+ j4 qmaskArray[0] = Selection::MaskTriple( UF_drafting_entity_type, 0, 0 ); // Drafting objects4 K; k1 m# ~1 t: I
*/$ R2 E8 Q  M" X% F" r
Point3d cursor;
* G2 {3 l% i% e- W$ ~/ ZTaggedObject *object; // Select objects using filter defined by maskArray triples" z+ R. ]! m# N, D5 ?
Selection::Response res = selmgr->SelectTaggedObject(
1 e: I+ `5 B) c   message, title, scope, action, include_features,4 N- ?8 w# U( O3 S+ S
            keep_highlighted, maskArray, &object, &cursor ); if( res == Selection::ResponseObjectSelected )
: g, _; ]9 x+ V{8 Q" h+ ], N, M
  return object;
/ i* A3 P8 e. G! j; A- ^0 H}" F: {/ g' a4 S' x5 L3 s
return 0;
% ~' Q4 }% u, v- X, y" d}//------------------------------------------------------------------------------
4 E8 g9 K$ v0 f9 x' |// Selection with type array7 R* V5 T5 |# L8 J
//------------------------------------------------------------------------------5 [) p0 X# |8 d: K
TaggedObject* MyClass::select_by_type(); `* S1 \" U. P  l. _7 n1 Y
{
! |9 G" S3 J9 j) {' q& d+ Y% {NXString message("Select an object by type:");- C) p5 F% T+ p
NXString title("Select object");
- X% ?3 |  p* M+ uSelection::SelectionScope scope = Selection::SelectionScopeUseDefault;
! s# w! E/ t3 }; Y9 y3 r. K$ T9 ]bool keep_highlighted = 0; // Define the mask triple(s), see also uf_object_types.h.6 S; S$ s6 C% N. k5 q
// Uncomment or combine the desired types$ l5 [) g- }* h' I
std::vector<Selection::SelectionType> typeArray(1);
7 h% K8 U/ e) f4 QtypeArray[0] = Selection::SelectionTypeAll;' w) ?. `  |) `4 _/ |. @
/*
0 ~8 n) [# Z+ i% m5 ^typeArray[0] = Selection::SelectionTypeFeatures;) R/ D. S- y* C5 K+ n6 R
typeArray[0] = Selection::SelectionTypeCurves;. `& r, x$ t; t' k/ N7 R
typeArray[0] = Selection::SelectionTypeFaces;
+ s3 J. X3 @1 C# p- {typeArray[0] = Selection::SelectionTypeEdges;
9 H6 e  K6 x; B/ v1 A+ atypeArray[0] = Selection::SelectionTypeCurvesAndEdges;( B$ T4 K5 y. E; l
*/
2 l7 U5 H# P: M  x9 _Point3d cursor;
+ P  c+ v- h' I+ P+ p$ G# B/ ETaggedObject *object; // Select objects using filter defined by type array
- k1 n/ R7 m5 pSelection::Response res = selmgr->SelectTaggedObject(- O7 f5 ]7 H$ B: G0 r( v4 r9 a0 y
   message, title, scope, keep_highlighted,
( f( J( x. l; a& [! i   typeArray, &object, &cursor ); if( res == Selection::ResponseObjectSelected )" M8 L  M1 O) P
{
- l9 F/ J2 u& @& H: B) ~: T- J0 G  return object;
! h, \* J* K# Q6 W6 u1 b7 H/ q( g}
  m1 z& B! ^4 [  x9 u; ?% Greturn 0;2 R' T0 e( c1 Z; n
}//------------------------------------------------------------------------------
; k6 C  }0 H( Y3 r// Selection any objects
1 t8 J9 P+ a; e7 o% p3 H3 J//------------------------------------------------------------------------------; V/ c7 E2 ~7 F& q
std::vector< NXOpen::TaggedObject * > MyClass::select_any_objects()* s" f: [0 t% t* j* w
{& g8 L, C. C0 I/ |1 J8 e
NXString message("Select any objects:");$ q! y, H( [/ p2 d  N. y$ Y
NXString title("Select objects");
/ k) A  L/ g$ R/ ySelection::SelectionScope scope = Selection::SelectionScopeUseDefault;
" N3 F) W8 S! s9 C7 k( ybool include_features = 0; ; a( ]  Z  Y& [8 ]. ]' m
bool keep_highlighted = 0;
2 D3 N- e7 B2 b( Z2 v# ostd::vector< NXOpen::TaggedObject * > objectArray; // Select any object array
! I3 ^4 l% @# ^' K+ kSelection::Response res = selmgr->SelectTaggedObjects(
2 d* S# R, Z& p: i7 b   message, title, scope, include_features,
3 z6 S) \* I4 v/ H   keep_highlighted, objectArray ); return objectArray;: H; z% Y5 i. B7 a! {
}. R1 G& ?  V& ]5 r

8 Z9 R' B6 V: q/ C
, e+ q: i/ e  y8 \( l
% E7 L  C* F+ D, P4 ?( K7 a: a
上海点团信息科技有限公司,承接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
6 B2 E3 j' e" _" \6 y  q老大 为什么把你的这个代码放在这里会提示错误啊。。。新手一枚,问题幼稚,请多指教 谢谢 ...

) U* }, r( w7 ~你抱什么错
! ~; W3 m' s8 i3 K& ~& R. J$ c5 v头文件 加了么
上海点团信息科技有限公司,承接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
3 f/ j- \' v4 @2 {老大 为什么把你的这个代码放在这里会提示错误啊。。。新手一枚,问题幼稚,请多指教 谢谢 ...
; R  o; J" J: p3 g/ w& _6 b
你抱什么错/ P$ l- u! @2 h5 \0 l
头文件 加了么
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了