PLM之家精品课程培训,联系电话:18301858168 QQ: 939801026

  • NX二次开培训

    NX二次开培训

    适合初级入门或想深入了解二次开发的工程师,本培训结合ufun,NXOpen C++,大量的实例及官方内部的开发技术对于老鸟也值得借鉴!.

    NX CAM二次开发培训报名 NX二次开发基础培训报名
  • PLM之家Catia CAA二次开发培训

    Catia二次开发培训

    Catia二次开发的市场大,这方面开发人才少,难度大。所以只要你掌握了开发,那么潜力巨大,随着时间的积累,你必将有所用武之地!

  • PLM之Teamcenter最佳学习方案

    Teamcenter培训

    用户应用基础培训,管理员基础培训,管理员高级培训,二次开发培训应有尽有,只要你感兴趣肯学习,专业多年经验大师级打造!

  • PLM之Tecnomatix制造领域培训

    Tecnomatix培训

    想了解制造领域数字化吗?想了解工厂,生产线设计吗?数字化双胞胎,工业4.0吗?我们的课程虚位以待!

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

[二次开发源码] NX二次开发源码:使用NX Open C++选取注释

[复制链接]

2013-10-30 14:00:47 4307 0

admin 发表于 2013-10-30 14:00:47 |阅读模式

admin 楼主

2013-10-30 14:00:47

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

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

x
NX二次开发源码:使用NX Open C++选取注释: \, E( M3 s4 T) e" _
  1. #include <uf.h>/ _, a/ c# _9 p( D1 C
  2. #include <uf_object_types.h>9 A8 R# P+ b% \9 t4 o4 S9 I
  3. 8 D' G# \3 m; L1 \
  4. #include <NXOpen/Annotations.hxx>
    2 ]* y4 ~$ E. r4 H3 x
  5. #include <NXOpen/Annotations_Note.hxx>
    : [1 ^" g4 o; G" i5 P+ j
  6. #include <NXOpen/NXException.hxx>
    7 \. L4 g; A% h6 S% L  N" P
  7. #include <NXOpen/NXMessageBox.hxx> // as of NX5
    # _9 O: Q* U' l- X6 e" D
  8. #include <NXOpen/NXObject.hxx>. [( k1 K, d& \5 n, o+ W
  9. #include <NXOpen/Selection.hxx>7 M9 |' E% ~% _$ c0 j! p
  10. #include <NXOpen/Session.hxx>
    1 Q1 V4 z  R  I6 F% T1 ]
  11. #include <NXOpen/UI.hxx>5 i# Z$ q# I) U" j. H3 j) Q" j6 W* l
  12. 2 E, K! A8 C8 N/ c+ S4 [) E
  13. using namespace NXOpen;9 A1 {6 E7 l) K$ B
  14. using namespace std;( J3 a1 B5 f  d" E& R

  15. 4 i; H7 w+ U& X0 a# ]1 Q- V& q
  16. /*****************************************************************************0 t3 x. @) q# s5 x1 F1 l6 V5 j
  17. **  Activation Methods  a3 v- Y4 v. N  U; o
  18. *****************************************************************************/7 b9 ~2 M2 G  P9 k; U) t& [& I6 r- A" B
  19. /*  Explicit Activation- b6 \( a3 m5 R8 ~" l' T- ~4 |! f
  20. **      This entry point is used to activate the application explicitly, as in
    1 X% V, b6 D( \, x9 ?- w
  21. **      "File->Execute UG/Open->User Function..." */
    $ ]5 x* ^7 S( f  |
  22. extern DllExport void ufusr( char *parm, int *returnCode, int rlen )
    6 k9 Z! o- U' f, ~* w' s' }
  23. {
    1 n% u) d( u* W% a  C* I& N
  24.     /* Initialize the API environment */; Z8 I9 W3 V; q8 ~

  25. ! q3 v0 z8 g) X$ i! h
  26.     Session* theSession = NXOpen::Session::GetSession();6 l# ]7 {/ |. v8 k# M$ X" ~) U
  27. 2 z& L! F' y9 ^/ W9 y* S! H% d  u
  28.     try
    7 ]1 X3 Y7 T6 B( J! b& E- |, p
  29.     {
    5 W$ ^8 H  }9 z! o- `' y* p( @' G8 k& ?
  30. / |; ^5 S* i) Y# {
  31.         // ask user to select text
    & w$ Z4 S: H6 M( x( M! z$ d
  32.         UI *ui = UI::GetUI();
    3 K, p5 j/ r/ q+ c! K$ m1 D
  33.         Selection *sm = ui->SelectionManager();
    % K7 L% D7 ?4 ~# e& x& W9 j
  34.         NXMessageBox *mb = ui->NXMessageBox(); // as of NX5. N! s  k. s7 f# w1 Y
  35. 4 t0 `0 V, L3 o7 @
  36.         NXString message("Select Notes:");
    8 N& l8 }- ^6 D! E: c; f1 x
  37.         NXString title("Select Notes");
    7 Z% ]7 q) v9 c) e6 Y+ m
  38.         Selection::SelectionScope scope = Selection::SelectionScopeUseDefault;1 [& j1 ]0 @5 Z6 ~& L; _
  39.         Selection::SelectionAction action = Selection::SelectionActionClearAndEnableSpecific;
    2 w) r1 |5 c& M0 [- S
  40.         bool include_features = 0;7 x: v( f" u! V% n
  41.         bool keep_highlighted = 0;* U0 y* c( y* L6 B: o" y- R
  42. , j# R0 \) [8 E; D- G4 @
  43.         // Define the mask triple(s)
    % `7 H1 c6 h0 ?4 ]
  44.         std::vector<Selection::MaskTriple> mask(1);8 b2 \# M4 U1 [
  45.         mask[0] = Selection::MaskTriple( UF_drafting_entity_type, UF_draft_note_subtype, 0 );
    " p" G$ t6 x- j; w

  46. + l, _4 Z0 G3 h) L6 `! d+ {. N& Y
  47.         std::vector<NXObject *> objects;
    2 ]1 b+ g6 Z/ m: w1 q6 Z" d
  48. # F! N4 }/ X- V' l- t, i0 S) S  g
  49.         // Select objects using filter defined by mask triples
    $ p% Q) Y) Z$ o) M+ l" {
  50.         Selection::Response res = sm->SelectObjects(
    7 W+ ?! `% T/ y5 F0 D+ B+ X
  51.             message,( i* m+ D7 @/ `) x
  52.             title,
    % Q& Z, g1 Z( y5 m, D) A( w5 P* R
  53.             scope,
    " j$ m8 ]6 ~( a  B1 ^" _
  54.             action,
      g6 W  c, g; M. \2 ~: I
  55.             include_features,
    0 T1 _; \2 @& ]; k# J" m' F
  56.             keep_highlighted," @8 X% M/ U% F# N; t/ x
  57.             mask,/ E. p$ P7 Z- k% N; h# X
  58.             objects
    0 z: d3 g* G/ L
  59.             );) M' |' S  A4 d: A' H0 |7 j+ d
  60. * q$ ]7 c% U9 n$ D  L& q
  61.         if (objects.size())  C# u; J1 Y! k
  62.         {
    ( g5 r$ c1 _$ H0 V3 F: n- }
  63.             Annotations::Note *note;
    . ?, O/ D  U) V% M4 H- ^
  64.             std::vector<NXString> messages;1 t" c0 ?: {, Q! O# [) Q3 X$ N
  65.             std::vector<NXString> texts;
    " d; L6 A7 R4 i6 w1 w8 Y% O
  66.             for (unsigned int ii = 0; ii < objects.size(); ii++)
    " F% E% \- D# o& m1 F  p/ x! R" P
  67.             {
    - C$ q" G1 G  q% U  D
  68.                 note = dynamic_cast<Annotations::Note *>(objects[ii]);' g  `+ N- p, C4 j
  69.                 texts = note->GetText();5 ]& b8 z6 N% v7 L
  70.                 for(unsigned int jj=0; jj<texts.size(); jj++)9 U# n% |) ?" \; j8 j( a
  71.                 {$ X) p. m  j, K' `
  72.                     messages.push_back(texts[jj]);5 a# S& F' B) P
  73.                 }
    9 b( B5 n% ]- J' r- K
  74.             }
    6 P3 {2 C) f& q! F( K6 d
  75.             // NXMessageBox works as of NX5, \8 ~+ E' w$ Z: D/ p% s0 h4 m
  76.             mb->Show("Selected Notes", NXMessageBox::DialogTypeInformation, messages);
    . N1 x$ N, f0 q3 v6 m* _/ p& b& g
  77.             // otherwise simply write to the listing window
    ! ?. D" ?6 Z) ^% U. D
  78.             // ListingWindow *lw = theSession->GetListingWindow();- \, A6 z. X! d9 p( a9 N6 R
  79.             // lw->Open();, e* J% R: b$ A: e: `
  80.             // for (unsigned int kk = 0; kk < messages.size(); kk++): q0 C' {/ K5 m$ V) m
  81.             // {, w1 v. T+ ]0 |  }( C+ y
  82.             //  lw->WriteLine(messages[kk].getText());) `" g; w$ g+ S; D/ O
  83.             // }7 u" K: j* x2 t: O% T. H7 O
  84. : S1 H$ t$ B- S6 |
  85.         }
    ) O+ S. x/ q8 Y5 e
  86.     }
      u# N7 c* e6 Y1 f  R% @

  87. / ]! r4 G- M3 @9 h7 a
  88.     /* Handle errors */9 ]  c/ u/ O, I6 f2 ~5 F9 W5 z
  89.     caTCh ( const NXOpen::NXException& ex )
    ! `7 D0 _$ R9 ?$ H
  90.     {
    7 u8 O! e+ m6 B1 k
  91.         // NXMessageBox works as of NX55 _2 Z0 J3 u0 y: z+ w
  92.         UI::GetUI()->NXMessageBox()->Show("Error", NXMessageBox::DialogTypeInformation, ex.Message());
    ' ^# P5 @. [1 W" {4 W
  93.         // Until NX4 simply write to the listing window
    " |7 i: g3 c* l' E4 d7 [. ^
  94.         // theSession->GetListingWindow()->WriteLine(ex.GetMessage());
    3 R, [8 D5 E( _- ]
  95.     }
    - j5 _; @, c2 a, C2 G
  96. }
    ' S+ E! N& V5 X' _4 a/ h

  97. 8 Z; X- F; v! a4 l, V/ ^+ V
  98. /*****************************************************************************
    , z  B" S" K/ f- `; j  h; O% u
  99. **  Utilities
    : K- m/ T, c6 h- o
  100. *****************************************************************************/# n: _8 j& v7 Y! a3 Y9 a

  101. 3 E; V6 l! u. B4 ]# z9 n5 m
  102. /* Unload Handler" c) B* B, f5 H' E" T& p& Z, _
  103. **    This function specifies when to unload your application from Unigraphics.
    $ ]2 s. l- q4 V/ Y
  104. **    If your application registers a callback (from a MenuScript item or a/ a9 c1 j! ?9 R: ]. K1 ~1 _: }
  105. **    User Defined Object for example), this function MUST return
    , G+ A. Y+ U2 L: c. W3 Q
  106. **    "UF_UNLOAD_UG_TERMINATE". */
    . `8 a2 I8 ^, H- r9 f! u2 j
  107. extern "C" DllExport int ufusr_ask_unload()
    0 t1 K, |5 D0 |( h/ J
  108. {+ s9 d" r6 [4 J; O! D/ K2 A
  109. return (int)NXOpen::Session::LibraryUnloadOptionImmediately;2 _0 N9 v  }- A  l4 N2 f5 ^
  110. }
    1 O. w8 g3 @, \1 {2 e

  111. ) E: d8 o" m# R6 A# e
复制代码
$ s& y3 M- {; R8 E# D* y% G5 l
! T8 B9 e  `7 q' \
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了