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

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

  [复制链接]

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

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

admin 楼主

2014-2-18 13:07:13

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

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

x
选择方式包括通过mask过滤,通过type选择,或者通过选择所有的对象。4 U9 u4 _+ L) b* I

( Y! H( K" K, T2 h9 O" \: R2 w/------------------------------------------------------------------------------& q4 g8 H3 L3 ]0 z: e8 ~4 K4 L
// Selection with mask# w& g+ ]$ Z( h& R% g+ S, N/ O$ z! H
//------------------------------------------------------------------------------
( J$ t& b* X) U0 e& ~TaggedObject* MyClass::select_by_mask()
5 G2 N/ W9 n; X2 D. G{! j/ W! Y& D" b6 ^+ c1 Z
NXString message("Select an object by mask:");
+ G1 X* E- v4 U' K  DNXString title("Select object");. j6 R7 `- ~+ N# f3 R2 C" t0 ]
Selection::SelectionScope scope = Selection::SelectionScopeUseDefault;
; X9 g( O- C  G: S" jSelection::SelectionAction action = Selection::SelectionActionClearAndEnableSpecific;; K$ r* {8 ~+ H0 R* x& l* S3 [
bool include_features = 0;4 ?0 x$ j* Z- e
bool keep_highlighted = 0; // Define the mask triple(s), see also uf_object_types.h.
0 Z! B  e" }4 e* q2 T6 I8 X// Uncomment or combine the desired mask triples5 i% c6 d0 I/ T3 C6 G7 w. j
std::vector<Selection::MaskTriple> maskArray(1);5 [4 V" D( Z3 q, K# B* S- Y* u
maskArray[0] = Selection::MaskTriple( UF_solid_type, UF_solid_body_subtype, 0 ); // Bodies
0 k2 X5 K1 i0 N& P! d, P/*) j: r+ N4 ^0 o- X+ s( i% Z; f
maskArray[0] = Selection::MaskTriple( UF_solid_type, UF_all_subtype, UF_UI_SEL_FEATURE_ANY_FACE); // Faces  `9 Z, Y+ h! ~, U+ K* y. W- s
maskArray[0] = Selection::MaskTriple( UF_solid_type, UF_all_subtype, UF_UI_SEL_FEATURE_ANY_EDGE); // Edges5 r0 K" W4 D- I( M9 Y0 m
maskArray[0] = Selection::MaskTriple( UF_component_type, 0, 0 ); // Components
$ A6 f& a! Y/ E2 d. @! P8 K& i( b, v. emaskArray[0] = Selection::MaskTriple( UF_line_type, 0, 0 ); // Lines
/ g8 c( z6 y$ ?# C; L, emaskArray[0] = Selection::MaskTriple( UF_drafting_entity_type, 0, 0 ); // Drafting objects
! @0 V, s2 f; Q4 \) J*/9 R& k- o& f" o( v+ I( l
Point3d cursor;
: K8 ~; o' P6 F" v: ]1 r1 `TaggedObject *object; // Select objects using filter defined by maskArray triples" `, q  z# @) {! \" H6 j
Selection::Response res = selmgr->SelectTaggedObject(
/ F3 J9 ?4 L% o* v$ |( d7 ]   message, title, scope, action, include_features,
" j6 p- j' f: {* _9 k/ l            keep_highlighted, maskArray, &object, &cursor ); if( res == Selection::ResponseObjectSelected )$ N2 `+ u3 S. u- l+ t% s
{/ [1 A0 F( M! ^! @7 ^
  return object;
& }: E3 Y; ~* {$ l0 [}
' W$ _/ R( Y0 B( a5 S8 ^return 0;; D# p/ t$ ?5 s! z6 T' p" z7 `
}//------------------------------------------------------------------------------
! r6 \& _6 @9 {4 v% ~- [% T- W2 u& O! {// Selection with type array
, O% v% x4 C- }* d/ R3 |7 T/ e# D7 F- |//------------------------------------------------------------------------------
: c5 Q7 Q3 o0 U) gTaggedObject* MyClass::select_by_type()5 W" o- f/ I' T& _! X) Y
{
% P$ B% C6 j- ]+ R% X6 |NXString message("Select an object by type:");$ N7 Q( a( j9 n0 Y$ T( S
NXString title("Select object");% ?  {, K: M* @; ~
Selection::SelectionScope scope = Selection::SelectionScopeUseDefault;
5 S2 G- \: L4 y4 ?bool keep_highlighted = 0; // Define the mask triple(s), see also uf_object_types.h.
& A) m. r8 F4 N+ f// Uncomment or combine the desired types, h/ i, X' H2 z2 h
std::vector<Selection::SelectionType> typeArray(1);: {* Z- G6 T+ u# S8 N% Y
typeArray[0] = Selection::SelectionTypeAll;
+ N& {. q, c$ W/*
3 Q; a7 u" w: T' p8 {typeArray[0] = Selection::SelectionTypeFeatures;+ x$ c+ S. t( v1 {! D
typeArray[0] = Selection::SelectionTypeCurves;
/ F$ z; y% r- t' x3 y: n% E9 \* {typeArray[0] = Selection::SelectionTypeFaces;
9 r( k4 B, j6 W% n& }  xtypeArray[0] = Selection::SelectionTypeEdges;0 e: p0 f0 N  z# A  Y! V2 c" b7 T
typeArray[0] = Selection::SelectionTypeCurvesAndEdges;, Q. U9 r, D, ]0 M, h
*/
6 x; m3 [. z1 CPoint3d cursor;
1 q3 C, \( W0 rTaggedObject *object; // Select objects using filter defined by type array* `7 B8 |  f; W% R+ Q
Selection::Response res = selmgr->SelectTaggedObject(6 m+ ?6 B5 x) ?. _. C2 ]
   message, title, scope, keep_highlighted, & k$ }5 A+ j. Z0 k9 X8 b5 Q0 K
   typeArray, &object, &cursor ); if( res == Selection::ResponseObjectSelected )9 [! _5 g( O0 e0 K6 D  V
{; R: p  s1 }3 }
  return object;8 y& W: c3 u* @) I. a) V
}# R$ Z: V- y6 h3 H6 P/ x; Z9 v4 e( q
return 0;
3 Q5 u0 O4 I4 J3 h3 Q}//------------------------------------------------------------------------------# b* B3 ^* W2 `) w. A
// Selection any objects
% p+ F% \; U7 P% D//------------------------------------------------------------------------------
6 P& d+ i$ ]: Y+ @# Z6 p% }std::vector< NXOpen::TaggedObject * > MyClass::select_any_objects()& P0 b5 F, K% D
{  n( ~$ L: O* z1 W
NXString message("Select any objects:");- W9 K) f' L& |4 S3 B& |- O
NXString title("Select objects");
* a3 f( N+ j/ N% w, Y/ DSelection::SelectionScope scope = Selection::SelectionScopeUseDefault;; e% T2 F& s$ h1 y8 o( m
bool include_features = 0;
3 c. i9 S# F1 p: r. u' tbool keep_highlighted = 0;
$ B! x0 [1 X4 p# {std::vector< NXOpen::TaggedObject * > objectArray; // Select any object array& `; U7 t7 w# ^0 u% M0 n
Selection::Response res = selmgr->SelectTaggedObjects(
6 O) {9 {& z* Y; K% w   message, title, scope, include_features, % t( N/ a% ]! u1 D1 k/ Z. a6 e
   keep_highlighted, objectArray ); return objectArray;2 u- a* k" ^- l. y1 _$ c4 w. k
}
- w7 d" H; {$ U9 D! n/ c( S6 e8 \2 ]7 H- G5 S8 }

( w7 b4 s$ z9 S; g1 G& H2 v9 u5 _5 }- I# u6 f  j/ r# L# [6 w
上海点团信息科技有限公司,承接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
% g+ O8 i+ V0 h. i/ Q老大 为什么把你的这个代码放在这里会提示错误啊。。。新手一枚,问题幼稚,请多指教 谢谢 ...
% j) m: k0 o, X. v' Q: I9 N
你抱什么错
6 d& t! N+ T3 p6 x头文件 加了么
上海点团信息科技有限公司,承接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 x- p. ~% D( s老大 为什么把你的这个代码放在这里会提示错误啊。。。新手一枚,问题幼稚,请多指教 谢谢 ...

$ \3 i1 p# f8 _- i, U, x% Q你抱什么错/ g# x* i. N, l$ }: W4 t5 W) c" O
头文件 加了么
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了