PLM之家PLMHome-工业软件践行者

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

  [复制链接]

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

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

admin 楼主

2014-2-18 13:07:13

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

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

x
选择方式包括通过mask过滤,通过type选择,或者通过选择所有的对象。: c' G/ p2 J. d) K5 C2 |
, I8 w' m6 h2 {7 f
/------------------------------------------------------------------------------3 n1 R* c, V- l$ a2 C
// Selection with mask9 v( T4 _0 u6 z( S7 }3 @
//------------------------------------------------------------------------------1 j/ r7 h: d: o% E( S$ ?
TaggedObject* MyClass::select_by_mask()7 K" h$ P9 o3 ^! n/ u3 c4 L% T1 ^5 Y
{, i" z) ?. ?0 V, m* z, i
NXString message("Select an object by mask:");
4 P4 k5 j7 t: c& p# `- CNXString title("Select object");+ o7 K" c2 }% J! i2 ^
Selection::SelectionScope scope = Selection::SelectionScopeUseDefault;+ n; {0 C6 \+ {: d; h. n' ?4 Y% j
Selection::SelectionAction action = Selection::SelectionActionClearAndEnableSpecific;
/ t, x/ w+ |8 S2 tbool include_features = 0;. i& Z# F1 O0 ~7 k0 e/ {
bool keep_highlighted = 0; // Define the mask triple(s), see also uf_object_types.h.! R- J+ X7 P7 X* {. z/ @4 M- C( U
// Uncomment or combine the desired mask triples
3 O. c% A% A7 Z9 E, E  ^std::vector<Selection::MaskTriple> maskArray(1);& f$ J5 ^0 B0 b0 G( B; I7 s2 S
maskArray[0] = Selection::MaskTriple( UF_solid_type, UF_solid_body_subtype, 0 ); // Bodies
6 @7 e2 Q9 F! d4 _- x/*7 S2 X- C6 A5 V1 x0 c
maskArray[0] = Selection::MaskTriple( UF_solid_type, UF_all_subtype, UF_UI_SEL_FEATURE_ANY_FACE); // Faces
, K- m. f: A8 q8 |1 n: I. SmaskArray[0] = Selection::MaskTriple( UF_solid_type, UF_all_subtype, UF_UI_SEL_FEATURE_ANY_EDGE); // Edges
; W# L7 w( B; @% H! P. e8 @maskArray[0] = Selection::MaskTriple( UF_component_type, 0, 0 ); // Components
1 J, a; L- U# c2 qmaskArray[0] = Selection::MaskTriple( UF_line_type, 0, 0 ); // Lines6 |$ U/ x7 s$ o5 P! o' ]4 d
maskArray[0] = Selection::MaskTriple( UF_drafting_entity_type, 0, 0 ); // Drafting objects
6 Y2 v2 [" A; g) x*/
# C% p* m+ f+ n" LPoint3d cursor;2 l2 w8 i6 I% q$ r& k/ h
TaggedObject *object; // Select objects using filter defined by maskArray triples
# a' R, L0 d* X8 sSelection::Response res = selmgr->SelectTaggedObject() l$ \) ]3 r2 x* ^
   message, title, scope, action, include_features,  A. L! c  ?) E! c
            keep_highlighted, maskArray, &object, &cursor ); if( res == Selection::ResponseObjectSelected )* C3 p/ N2 y$ o8 V8 S/ M
{% N+ S) v4 W- H/ E) Q
  return object;5 f9 v! r0 y+ R2 C% y
}
: A# }: E8 l8 Z/ e" C1 x. v' mreturn 0;
" X) v# M7 N" S' _+ G# m) U}//------------------------------------------------------------------------------. U. ~; U( C# K
// Selection with type array: \* i7 \! p; {! b$ @5 p# Q/ ~2 J
//------------------------------------------------------------------------------3 _+ ]- C8 @! L+ j) J, R
TaggedObject* MyClass::select_by_type()
5 E* i+ L& g0 G{0 C4 e- x# M4 X( B7 H; z
NXString message("Select an object by type:");% |* h' b- f7 s: I3 ?
NXString title("Select object");# ~  f9 U! I" n7 a" T# k
Selection::SelectionScope scope = Selection::SelectionScopeUseDefault;
: p  a( X1 E9 b$ Fbool keep_highlighted = 0; // Define the mask triple(s), see also uf_object_types.h.
2 }9 o* B; M$ \7 e9 S// Uncomment or combine the desired types
1 {* j9 ~; z8 o% Z# Mstd::vector<Selection::SelectionType> typeArray(1);
4 a1 u: r% M( K7 N& u2 o* FtypeArray[0] = Selection::SelectionTypeAll;, ~# ^2 [3 _# ?& b& o
/*
7 `& c5 E* d% X0 b& y- KtypeArray[0] = Selection::SelectionTypeFeatures;
) g# R* U/ L$ G. c; {typeArray[0] = Selection::SelectionTypeCurves;3 K: O0 `5 f  y2 Y+ e$ B; [
typeArray[0] = Selection::SelectionTypeFaces;
+ }, k+ R4 _* h( j1 t5 KtypeArray[0] = Selection::SelectionTypeEdges;; K0 ^1 R6 ~9 i- ?" d
typeArray[0] = Selection::SelectionTypeCurvesAndEdges;8 D% ~: {; \8 t/ F; b0 M1 F
*/2 P# O' t( C4 C
Point3d cursor;
$ a1 L; M9 |: Q2 t8 `) m: e$ ]TaggedObject *object; // Select objects using filter defined by type array
( a4 A1 u3 ~& X+ [! X6 N/ a7 JSelection::Response res = selmgr->SelectTaggedObject(" q5 j$ w$ x# J& U
   message, title, scope, keep_highlighted,
/ G! j8 I! y# g1 e( P0 _0 |0 B   typeArray, &object, &cursor ); if( res == Selection::ResponseObjectSelected )9 X0 x& [/ e1 |; V) d8 [
{
9 l/ A! c' ]- |# Y7 K+ M. p; v! Q  return object;) e7 ~* n; v( |" G
}
1 J9 U3 L+ f2 _3 s9 r3 }return 0;
( b7 X* O8 w! |' b. W4 v0 P}//------------------------------------------------------------------------------7 n% [8 A8 b" B4 @/ K* M
// Selection any objects
" \6 z5 N5 Y1 R; M: s) E7 i2 \: @//------------------------------------------------------------------------------6 L8 ~2 T/ y& j& t! u
std::vector< NXOpen::TaggedObject * > MyClass::select_any_objects()9 w$ N5 k4 x5 C& D7 S
{# U- w( x) C& x3 v4 q. X% h2 S
NXString message("Select any objects:");
" ~8 q7 Z4 i0 tNXString title("Select objects");
6 t2 {4 g: L. a8 g$ ^' S- a1 ?5 sSelection::SelectionScope scope = Selection::SelectionScopeUseDefault;
+ [+ @* Q+ [6 f4 Y) [3 J. e$ q: tbool include_features = 0;
# F4 }2 @( }- w6 B+ Kbool keep_highlighted = 0;
2 Z0 R( |6 v, e5 Y$ H: A% wstd::vector< NXOpen::TaggedObject * > objectArray; // Select any object array! [9 t# I4 V% \) Z
Selection::Response res = selmgr->SelectTaggedObjects(( w0 E* n& K" @% s2 Y) u9 z7 i7 w
   message, title, scope, include_features,
3 |. ^$ e! c4 u" Z+ I1 I/ ^( f   keep_highlighted, objectArray ); return objectArray;
& E) Z$ c" a! U( J0 u}& G3 A* t% v3 |# z" b1 Q

6 @8 Q" L& x4 i+ z/ \4 `/ q' y; ?! q: l: |  W4 n- J
) _! \! ^- x  N3 z
上海点团信息科技有限公司,承接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
. r- r( ]. W" z) U, F; J+ O老大 为什么把你的这个代码放在这里会提示错误啊。。。新手一枚,问题幼稚,请多指教 谢谢 ...

, H, U" ?; D6 t) P: U- A# l- T, ^你抱什么错
2 _! ?6 T; y: s1 W5 R  [! 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:365 s/ U" |8 F% s6 e  ^& J
老大 为什么把你的这个代码放在这里会提示错误啊。。。新手一枚,问题幼稚,请多指教 谢谢 ...
+ V5 V- S1 i3 D, x
你抱什么错+ `9 N3 q. C9 k$ {) e; I/ i6 w; }- b/ g
头文件 加了么
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了