PLM之家精品课程培训

PLM之家精品课程培训

联系电话:18301858168   |   QQ咨询:939801026
NX二次开发培训

NX二次开发培训

UFUN/NXOpen C++和实战案例

适合初级入门或想深入了解二次开发的工程师,本培训结合ufun,NXOpen C++,大量的实例及官方内部的开发技术。
公众号二维码

关注公众号

点击扫描二维码免费在线高清教程

课程详情
Catia二次开发培训

Catia二次开发培训

市场需求大,掌握核心技术前景广阔

Catia二次开发的市场需求大,人才稀缺。掌握开发技能潜力巨大,随着经验积累将在汽车、航空等领域有所作为。
B站二维码

在线原创B站视频

点击关注工业软件传道士主页

课程详情
Teamcenter培训

Teamcenter培训

全方位培训,从基础应用到高级开发全覆盖

涵盖用户应用基础培训、管理员基础培训、管理员高级培训及二次开发培训等全方位内容,由多年经验讲师打造。
QQ群二维码

加入同行交流

点击扫描二维码加入QQ群

课程详情
×

PLM之家plmhome公众号

课程涵盖: PLM之家所有原创视频

×

关注B站视频

所有高清视频一览无余,全部在线播放学习

×

加入PLM之家QQ群

同行交流,疑问解答,更多互助

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

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

[复制链接]

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

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

admin 楼主

2013-10-30 14:00:47

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

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

x
NX二次开发源码:使用NX Open C++选取注释( h( T7 q8 G6 \1 K) [8 N, h
  1. #include <uf.h>
      B, j. b" u+ e& q$ W
  2. #include <uf_object_types.h>$ n3 h9 j/ \; z4 S
  3. # N2 n; N6 h% r2 P
  4. #include <NXOpen/Annotations.hxx>
    ; J/ D; L8 A! A5 e- t  M0 Q. |
  5. #include <NXOpen/Annotations_Note.hxx>
    - }7 e7 a1 q8 ~' k! h9 h* c
  6. #include <NXOpen/NXException.hxx>$ \. b$ f) U3 @/ E: q7 r6 G
  7. #include <NXOpen/NXMessageBox.hxx> // as of NX5& a3 K8 a! v) R( N' m
  8. #include <NXOpen/NXObject.hxx>( ^, o, i1 P/ x; J% d
  9. #include <NXOpen/Selection.hxx>
    # X3 _( \* x9 H5 y+ ?' {9 G9 N
  10. #include <NXOpen/Session.hxx>
    ( N' w7 z, l: e$ x- W  M
  11. #include <NXOpen/UI.hxx>  v" O( C* M- z0 F2 [5 h
  12. + ^; U7 _; n9 D# ]: |
  13. using namespace NXOpen;
    - C. p/ W2 l4 M
  14. using namespace std;+ X$ _, p- z, V8 ?
  15. 6 e. U1 y- p& x0 ^( j+ I
  16. /*****************************************************************************
    : L# Q" h! o  P! x
  17. **  Activation Methods
    8 M/ v: j! C5 E3 T, S
  18. *****************************************************************************/
    9 ?, S% D# M. |: T+ o8 G' c  r
  19. /*  Explicit Activation/ z  _- R# ]. B: }7 D+ K
  20. **      This entry point is used to activate the application explicitly, as in; |( u5 U; t, g8 H8 v6 P
  21. **      "File->Execute UG/Open->User Function..." */9 I' n) u  ~$ I% Y5 v/ _
  22. extern DllExport void ufusr( char *parm, int *returnCode, int rlen ): ~  h% K. |, q. d+ h/ O+ V: t- @9 j
  23. {
    ' ?' p& d2 U3 k$ n* r$ ?6 y
  24.     /* Initialize the API environment */
    ' L( ?5 d% v" |. f) Y7 ?, e
  25. 5 A2 v$ `6 N1 s( F. \; v& |) Z
  26.     Session* theSession = NXOpen::Session::GetSession();: L7 W3 O8 p& [8 L4 I

  27. * }4 r* j+ n$ n( v9 j" G
  28.     try
    8 ^# Z0 `& e6 o
  29.     {
    9 I8 S9 [# ?. m
  30. # h- L' G3 X3 F
  31.         // ask user to select text) F. }5 h, e6 h5 F  J
  32.         UI *ui = UI::GetUI();+ v, i& s1 W1 p
  33.         Selection *sm = ui->SelectionManager();
    ( b4 o# l  O/ g5 H* d# Y
  34.         NXMessageBox *mb = ui->NXMessageBox(); // as of NX5
    . A+ t$ Y/ W1 T0 o" Q# O# x$ W! T
  35.   \2 M, U+ A6 A& H
  36.         NXString message("Select Notes:");
    8 ]3 I! g! w4 {. U# |: h7 i) ~. \4 t
  37.         NXString title("Select Notes");: B6 m* n* V, o; q& U
  38.         Selection::SelectionScope scope = Selection::SelectionScopeUseDefault;
    7 f% N2 o( P! \
  39.         Selection::SelectionAction action = Selection::SelectionActionClearAndEnableSpecific;
    $ F" j' ^+ s% h4 P7 w
  40.         bool include_features = 0;
    5 m7 L/ e8 H) i; P& K, p
  41.         bool keep_highlighted = 0;$ P% m+ M  p; d9 H# i

  42. + o& [) X" I$ o  ]
  43.         // Define the mask triple(s)8 G: V# V( ]1 z* E+ X( U8 \
  44.         std::vector<Selection::MaskTriple> mask(1);
    7 M' A# z. p, `; Q" ^  d8 ~/ F$ O4 ?4 b7 `
  45.         mask[0] = Selection::MaskTriple( UF_drafting_entity_type, UF_draft_note_subtype, 0 );- K$ l) l; X" l( n5 y
  46. : t+ J' J- |9 H
  47.         std::vector<NXObject *> objects;
    + Y0 I  d: O- ~4 P# l( X/ B7 a1 E

  48. 8 p# L% H9 H& ^  F- k, R' C
  49.         // Select objects using filter defined by mask triples6 w* i6 ?- `- ]# p' S, E# a
  50.         Selection::Response res = sm->SelectObjects(! l; ^9 N3 E  b' S. n# ~0 h3 V5 I
  51.             message,
    8 {( m4 F# o6 w8 Z- `
  52.             title,+ U  Z# D- J2 l1 V0 M
  53.             scope,
    0 M5 D9 g4 |4 b* `+ A
  54.             action,
    5 @) `5 U7 U1 u; T$ e1 d: c% {
  55.             include_features,
    ' n& y0 l1 _" m% c( s2 v
  56.             keep_highlighted,4 S+ B/ J) C* e& Z* Y
  57.             mask,
    , H  i$ Y! O0 o% f( s& b& ^. b
  58.             objects; L( L! U) l* }3 P* l! t
  59.             );: J( k+ f5 D) z8 V/ A# K
  60. & i( V& C# v, `
  61.         if (objects.size())
    # V9 g  a4 E) P+ g8 r
  62.         {
    + |* T* F& w2 U; ~
  63.             Annotations::Note *note;* I4 V# ?6 I* t, B6 E$ Q1 p
  64.             std::vector<NXString> messages;) @) u6 g6 g0 b6 v" G) y( Q
  65.             std::vector<NXString> texts;
    $ G5 l6 |1 P" q4 [) s8 o. I
  66.             for (unsigned int ii = 0; ii < objects.size(); ii++)5 s, h: z; L* Q& f  z+ _% m
  67.             {
    ; a/ {; s& s9 q; V. G
  68.                 note = dynamic_cast<Annotations::Note *>(objects[ii]);
    + b+ I6 o4 B( p  A; ]. u& m
  69.                 texts = note->GetText();, {5 ?! [+ c5 k! |
  70.                 for(unsigned int jj=0; jj<texts.size(); jj++)
    2 p) W4 S+ v. d" H
  71.                 {% j- N: i8 C% _# ~$ Q2 _- |
  72.                     messages.push_back(texts[jj]);
    $ J! J; Y& N. e7 z' N8 @
  73.                 }/ i7 Z3 E3 p* n" {1 N
  74.             }
    ; Z$ m  z. K9 x8 z
  75.             // NXMessageBox works as of NX5
    ; X! v9 l- A' V' l; c
  76.             mb->Show("Selected Notes", NXMessageBox::DialogTypeInformation, messages);
    # `$ x, e* A' o# K$ G7 a
  77.             // otherwise simply write to the listing window
    7 D0 [: e! K+ l1 O
  78.             // ListingWindow *lw = theSession->GetListingWindow();5 _) i# {1 J" i$ \
  79.             // lw->Open();
    3 W& u, C4 Y& `% ~' u3 Z2 t' @
  80.             // for (unsigned int kk = 0; kk < messages.size(); kk++)8 V) y, r" b' _& P
  81.             // {6 ~6 Y! i7 N! D* F
  82.             //  lw->WriteLine(messages[kk].getText());! }: B9 n6 y" ~6 X6 N* ?  `
  83.             // }$ V# ]( l( v0 Z: J

  84. ; j+ ^9 ?! Z) U& M  ^) [
  85.         }
      y7 B; z$ Y% m+ m$ H
  86.     }
    % @3 E: D; O# h) }$ M4 K

  87. 6 Y! L( [8 ~* [
  88.     /* Handle errors */+ Z( }7 u9 Z# X/ r; B
  89.     caTCh ( const NXOpen::NXException& ex )
    ' U% ^7 Q0 Z0 z% k- l
  90.     {
    ( Q9 h9 x& {6 I0 K/ T4 T) V" D
  91.         // NXMessageBox works as of NX5: B  r; H: ?. U. G, O
  92.         UI::GetUI()->NXMessageBox()->Show("Error", NXMessageBox::DialogTypeInformation, ex.Message());7 q7 j; G' ]& r1 D3 t1 L$ _
  93.         // Until NX4 simply write to the listing window  a% M0 c6 R. X( P7 `" j
  94.         // theSession->GetListingWindow()->WriteLine(ex.GetMessage());
    0 X+ @  I3 ^- `
  95.     }
    ( P  ?/ s; ], c! W% l- z" A
  96. }
    3 C; A; X( v6 J6 x* f' e

  97. * k1 P( r( _+ g, u) L
  98. /*****************************************************************************8 g( \6 e) A" c# s# ?4 c  B& |7 b9 r
  99. **  Utilities
    + N! x9 m6 ^, V
  100. *****************************************************************************/
    3 h1 M* J+ g% n; q- x- q

  101. 8 y9 i  k, c0 B3 \( [: r
  102. /* Unload Handler
    8 i+ v( y& D1 A( A
  103. **    This function specifies when to unload your application from Unigraphics.! O3 |) v9 `/ f- n- Y$ }
  104. **    If your application registers a callback (from a MenuScript item or a2 l( ?' G+ k% j0 ]# H* S
  105. **    User Defined Object for example), this function MUST return* p0 ?+ e3 H6 t0 }4 f
  106. **    "UF_UNLOAD_UG_TERMINATE". */
    / c& T$ N& Z/ X5 g! U: f
  107. extern "C" DllExport int ufusr_ask_unload()
    . B4 F9 w/ b! p" _; D, q
  108. {
    1 R' n# b+ M7 H2 l
  109. return (int)NXOpen::Session::LibraryUnloadOptionImmediately;1 A6 B9 }# o3 E1 V* ~4 v  C
  110. }1 O' {5 }+ E' k- Z- j
  111. : V8 y* P; ~  M/ B& B
复制代码
0 r( e' {9 R' B5 y1 E. @

4 R% |9 Q4 x: O' G$ Q8 w
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了