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 4372 0

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

admin 楼主

2013-10-30 14:00:47

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

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

x
NX二次开发源码:使用NX Open C++选取注释
6 n' Z* m! P( V  c
  1. #include <uf.h>+ \: c* ?+ c2 ~! n/ X" W7 d9 R
  2. #include <uf_object_types.h>
    ; m- ^$ Q: }: ~8 b3 U

  3. . X( m6 B/ [0 s' g& b, X4 G
  4. #include <NXOpen/Annotations.hxx>
    ( N0 Y7 H) z) `) V
  5. #include <NXOpen/Annotations_Note.hxx>
    / c, V7 d+ {2 T( k9 |) W- L/ g7 L' L
  6. #include <NXOpen/NXException.hxx>
    5 T5 g, ^: x. o& V4 ~( H) ?' i
  7. #include <NXOpen/NXMessageBox.hxx> // as of NX5& E0 M9 E9 j+ G8 K/ @* Y" f/ y! [. S
  8. #include <NXOpen/NXObject.hxx>
    2 L2 E3 I! Z8 L3 E! w& x1 E
  9. #include <NXOpen/Selection.hxx>
    - T: A- p% O* S  m; K8 Q
  10. #include <NXOpen/Session.hxx>
    / b. W2 {( [) [/ x
  11. #include <NXOpen/UI.hxx>
    7 K! Q  ^' a+ q  n3 |5 }2 W: w+ z

  12. . c; c8 ]( @4 A' P# @6 e
  13. using namespace NXOpen;. |+ d' C0 l& U3 C& o- v
  14. using namespace std;( e: h* x) R( q  Z2 m
  15. # e8 @7 J  H& A! Q
  16. /*****************************************************************************9 G8 X8 V) y; d6 m& J0 @
  17. **  Activation Methods
      B0 M" |% E+ p2 ^3 I
  18. *****************************************************************************/5 j# n* g, L' q
  19. /*  Explicit Activation& C* Y1 i* \! H+ a# M7 I
  20. **      This entry point is used to activate the application explicitly, as in
    ) Z6 Q5 ]. k% C' d2 w% P$ D
  21. **      "File->Execute UG/Open->User Function..." */
    4 y' ~- m5 j3 q7 g' |. J
  22. extern DllExport void ufusr( char *parm, int *returnCode, int rlen )
    ! C* j! U; X5 P, E
  23. {
    2 y4 J7 r8 G# _& \
  24.     /* Initialize the API environment */
    6 y% X+ m1 E+ F+ K3 w
  25. * z* H) S4 J! K! N: u
  26.     Session* theSession = NXOpen::Session::GetSession();
    6 m2 \: C: \( g: u' g! `6 G
  27. % c+ d! l7 f" R* B9 j' ]
  28.     try7 _. }$ z# z8 ?, d6 _* \
  29.     {
    ( F: @. _8 R& U+ j
  30. # B6 p+ b2 j$ _0 [9 T, j* V- B2 u+ c" y& O
  31.         // ask user to select text
    4 T8 z+ b1 [& Z7 r: P/ Y
  32.         UI *ui = UI::GetUI();7 K% @' [' v7 I+ E3 }
  33.         Selection *sm = ui->SelectionManager();
    ; k2 E+ {  [1 |) d3 \( K; ?
  34.         NXMessageBox *mb = ui->NXMessageBox(); // as of NX5) c7 q, s- L  K5 E+ @* J

  35. 9 c" f7 |3 n5 L+ l# S! Q8 o
  36.         NXString message("Select Notes:");* L0 k9 ~( O, Z7 m; M* i
  37.         NXString title("Select Notes");0 d2 m  \* f4 W2 S
  38.         Selection::SelectionScope scope = Selection::SelectionScopeUseDefault;
    2 F0 j+ ]& z: U; p, ~$ C+ _- }
  39.         Selection::SelectionAction action = Selection::SelectionActionClearAndEnableSpecific;
    8 r5 ]. C0 }8 T; {8 }) Q
  40.         bool include_features = 0;
    7 O1 h$ n/ S* I1 D
  41.         bool keep_highlighted = 0;
    ' E5 b; f+ Q) Y" f
  42. 5 X4 D8 T9 S, d. F0 s/ @
  43.         // Define the mask triple(s)' b  m& A: ^+ t) }1 K3 S$ t/ E
  44.         std::vector<Selection::MaskTriple> mask(1);; I2 f" D6 m- k# H) n8 l/ d2 c  G
  45.         mask[0] = Selection::MaskTriple( UF_drafting_entity_type, UF_draft_note_subtype, 0 );; \& H+ `1 P% A
  46. % X+ t) q0 t- k" K/ L
  47.         std::vector<NXObject *> objects;
    - e  d5 }( q" {- l: t$ i( |

  48. # p0 h1 v# r3 ^6 v# a" N3 i! h
  49.         // Select objects using filter defined by mask triples
    6 c% S' K* w0 e& D
  50.         Selection::Response res = sm->SelectObjects(
    3 u8 n9 j! x  A' s
  51.             message,
    1 w6 G; a7 d4 M- k; l. [9 J1 l1 L
  52.             title,2 n8 f: g" @; ^( G
  53.             scope,$ E! G) @. n' o, N2 ^) c4 v* c
  54.             action,
    ; L) H3 n9 S  [$ u% b" b1 |
  55.             include_features,
    0 T  N+ D. V2 z- t4 D+ t2 z
  56.             keep_highlighted,
    - v' p) ]3 K1 h* b
  57.             mask,6 T9 n: ?( F5 Y, k, W' s
  58.             objects
    ) T1 V- ]2 @0 z
  59.             );
    0 t; o; j! d6 [( \+ e* ^
  60. ; n0 E$ {2 o5 U5 i$ M5 G$ X
  61.         if (objects.size())
    - b1 ?8 M' A! i" [0 ?% Q
  62.         {) ~8 ?9 ]% R, }
  63.             Annotations::Note *note;
    4 I  ]6 ^8 e3 t
  64.             std::vector<NXString> messages;
    0 K. z7 _5 u7 R: d! F
  65.             std::vector<NXString> texts;
    ; v: n  B$ _! E8 ?3 r
  66.             for (unsigned int ii = 0; ii < objects.size(); ii++)
    4 E, I' A6 W- W+ S; Z8 q
  67.             {
    ) X1 y8 g8 s5 I# ?
  68.                 note = dynamic_cast<Annotations::Note *>(objects[ii]);
    % d' X8 |3 G" X
  69.                 texts = note->GetText();
    ' g# k# y% G0 d& m" e" F" J
  70.                 for(unsigned int jj=0; jj<texts.size(); jj++)
      i- R% q# c; h+ ?. K1 E; i' B
  71.                 {! Z8 N0 r4 @- V) h* {7 v5 }1 P5 F
  72.                     messages.push_back(texts[jj]);' K5 o! _" s, K  j
  73.                 }
    9 x6 e' m9 f) g
  74.             }! g' d+ j3 J! H7 H. ]4 j1 q0 \4 i
  75.             // NXMessageBox works as of NX5
      t  w  n7 a  w; t. R# ~
  76.             mb->Show("Selected Notes", NXMessageBox::DialogTypeInformation, messages);+ m, s5 c4 n3 o5 i; e
  77.             // otherwise simply write to the listing window3 z/ {) R2 K4 y' W" H
  78.             // ListingWindow *lw = theSession->GetListingWindow();
      n$ ?2 @; y9 f1 w: p
  79.             // lw->Open();
    ! h# Q+ _4 T* R1 A0 s
  80.             // for (unsigned int kk = 0; kk < messages.size(); kk++)
    ' |% ]. {6 ]) v6 E: m+ y* @
  81.             // {
    * V& L2 B! `: I: P$ F
  82.             //  lw->WriteLine(messages[kk].getText());& I5 {8 v1 i& V- p: x8 N
  83.             // }
    % }! A/ {8 {+ F9 V; k6 O
  84.   N1 i/ }5 I8 {- I# k
  85.         }7 D8 O& w- N3 Q" G% M
  86.     }
    7 y, T% J: U8 i) q* g
  87. $ C+ j. n4 w: m2 C; k
  88.     /* Handle errors */* B, v* p$ d8 ~6 d
  89.     caTCh ( const NXOpen::NXException& ex )
    $ o2 Y, q0 |3 D: R# m
  90.     {5 X& z& o0 k) N
  91.         // NXMessageBox works as of NX5
    * a3 b: p( L  d
  92.         UI::GetUI()->NXMessageBox()->Show("Error", NXMessageBox::DialogTypeInformation, ex.Message());
    7 f1 J9 F) L% p, @
  93.         // Until NX4 simply write to the listing window1 e% n% V8 L# i) q- y4 Z
  94.         // theSession->GetListingWindow()->WriteLine(ex.GetMessage());# ]6 f6 w) B2 ]4 U' x
  95.     }
    ) |+ {0 h7 h/ D7 d' M  i
  96. }
    " E  p2 C9 w( F( X6 v" Y( J

  97. 6 {, o* Y" f) `) i9 n4 |' X
  98. /*****************************************************************************
    7 `* j  n9 b% G' O+ ~4 D
  99. **  Utilities3 S+ L3 @! d3 t( E( z4 ]
  100. *****************************************************************************/
    ) y8 ]  Y0 U/ B, E; r* n
  101. : M3 z! h/ N! z  r
  102. /* Unload Handler( E  g" X# A+ Z. H3 s5 |
  103. **    This function specifies when to unload your application from Unigraphics.
    3 S) d# s, v5 d# [0 n. K
  104. **    If your application registers a callback (from a MenuScript item or a3 q" }7 H" ?) U6 r: |; i
  105. **    User Defined Object for example), this function MUST return
    6 K6 B1 y( Q; `4 ]
  106. **    "UF_UNLOAD_UG_TERMINATE". */
    : h5 `5 n+ S* E" c+ u
  107. extern "C" DllExport int ufusr_ask_unload()
    , ^* |0 K8 N2 u# V' c5 \
  108. {  [$ i  ^) M, H' e* ^" i8 y1 X
  109. return (int)NXOpen::Session::LibraryUnloadOptionImmediately;
    ! J$ O' m5 u# q3 r" E' H3 H
  110. }
    # o9 f8 P) R* u2 m$ H

  111. 1 E  G1 W7 v% C$ b# D1 d6 _# ^6 _
复制代码
: S/ ]) r4 h, B0 t# v

5 g! |; f' O4 B2 t' 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二次开发专题模块培训报名开始啦

    我知道了