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

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

admin 楼主

2013-10-30 14:00:47

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

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

x
NX二次开发源码:使用NX Open C++选取注释
2 Z9 P( d4 w+ l& n
  1. #include <uf.h>
    7 e2 U. T- N2 I" {: Z" _" S+ J: a+ D
  2. #include <uf_object_types.h>
    ( e& c( H  N# G  I/ d
  3. ; J6 R( s4 u/ L
  4. #include <NXOpen/Annotations.hxx>" Z* k7 V# Y/ t3 n: F" V
  5. #include <NXOpen/Annotations_Note.hxx>" w* a" B' ~$ Q: M0 |/ x2 d2 s
  6. #include <NXOpen/NXException.hxx>
    . g6 {9 R$ f5 P: x8 V" J
  7. #include <NXOpen/NXMessageBox.hxx> // as of NX5
    # ~# v- x$ n2 f4 K3 R! y
  8. #include <NXOpen/NXObject.hxx>- t$ `7 b+ w% ^3 p6 e
  9. #include <NXOpen/Selection.hxx>9 Z8 Y6 m3 Y- M: X# l3 ^# D3 j9 D
  10. #include <NXOpen/Session.hxx>& o& x; @* H0 ~* m- d: J5 _
  11. #include <NXOpen/UI.hxx>( ^" N# Y9 o" S
  12. $ Y4 M: x, T. ?* S; F( s; r
  13. using namespace NXOpen;
    2 ~5 m: }0 e; u' X1 R/ M
  14. using namespace std;. H! e. b1 H! G  n, Y) j
  15. * T$ E! \2 Z, @1 C6 J* d2 N3 @6 d
  16. /*****************************************************************************
    / m0 B% e) a) ?
  17. **  Activation Methods! F. Q( ~5 A9 X- E# j  U
  18. *****************************************************************************/
    0 J, {5 c8 T' a1 U( M) B$ ^
  19. /*  Explicit Activation  n; `3 [& f" z; x/ c: I9 \4 f
  20. **      This entry point is used to activate the application explicitly, as in  _8 o# k4 C. z6 ^, R# m. w
  21. **      "File->Execute UG/Open->User Function..." */
    * k2 @" c% |7 g. ?
  22. extern DllExport void ufusr( char *parm, int *returnCode, int rlen )
    * n# F) R) k7 i+ q& G& N
  23. {' ?7 ?5 D& c. K
  24.     /* Initialize the API environment */# ^& U  j! b1 |
  25. 1 R( f. Y8 @  l3 }% D# E% w  |
  26.     Session* theSession = NXOpen::Session::GetSession();
    / w% w5 j/ m" A( }. M

  27. ) ?9 J" p8 o( m. ]
  28.     try
    3 l/ d0 ]" f& Z8 Z* Y  y! f
  29.     {
    1 X0 \" I" I% d6 K
  30. ( Y( f, `% Y' {' a4 z: E6 b
  31.         // ask user to select text3 ]. k  V" f: t) A" f
  32.         UI *ui = UI::GetUI();
    & s3 a3 H9 {) i  v. S
  33.         Selection *sm = ui->SelectionManager();
    7 ^: e8 @- C, K7 m2 `: L
  34.         NXMessageBox *mb = ui->NXMessageBox(); // as of NX5
    0 J$ ?! m6 E- d& s  o
  35. 1 Q& p/ _) t; S; i. Z) W6 X6 ]
  36.         NXString message("Select Notes:");0 x1 s* }% Y6 H
  37.         NXString title("Select Notes");
    # G, W7 g( y; g! x# W- m) F( x
  38.         Selection::SelectionScope scope = Selection::SelectionScopeUseDefault;# k5 W5 M& T+ x! a
  39.         Selection::SelectionAction action = Selection::SelectionActionClearAndEnableSpecific;
    ; v2 j9 B3 p: j
  40.         bool include_features = 0;
    ( K. Y3 Q$ i8 E9 W' `8 ~- }
  41.         bool keep_highlighted = 0;3 R5 L( ]' D7 x* T
  42. 5 v- }$ F1 c9 W" l  l; W
  43.         // Define the mask triple(s)
    ! N2 C5 F7 v' L
  44.         std::vector<Selection::MaskTriple> mask(1);
    / p- J. `: j6 R& o- \
  45.         mask[0] = Selection::MaskTriple( UF_drafting_entity_type, UF_draft_note_subtype, 0 );
      y& s* F. A5 v$ \8 L& i
  46. ( U4 s1 v0 h( P8 @7 Q" U
  47.         std::vector<NXObject *> objects;
    4 D9 v3 k; }5 w7 l' G2 a: G  A1 m

  48. ' F" l& G+ A% m5 g2 g, Y4 P& X. V( F
  49.         // Select objects using filter defined by mask triples, @% \" Z' \& k( {7 z4 T  c
  50.         Selection::Response res = sm->SelectObjects(# o1 `1 G1 L. o$ ^
  51.             message,. e( M$ |, @3 z8 b6 h
  52.             title,+ a$ |6 u7 |4 f# P: p% s/ C
  53.             scope,
    ) R" i" l9 Y: f2 c5 A. {* W4 K
  54.             action,
    0 g) t8 k9 ]' o3 h4 U: V2 n
  55.             include_features,
    / C7 E) T- D+ N0 Z! z
  56.             keep_highlighted,+ C" A5 l, B  B$ g3 v0 L, t) r
  57.             mask,5 O  n0 F# d2 V0 q9 k
  58.             objects  T9 n0 x( P* G6 k. r6 y7 @% |9 ?
  59.             );
    5 l5 ~6 n! e% A  w( z1 [! q

  60. ) k' X9 c; z( o* u/ i! p' ^
  61.         if (objects.size())7 I$ ]7 y1 t4 e5 j/ M  z0 N6 i. h
  62.         {
    $ Y' M& A+ ]' e2 W2 o; f
  63.             Annotations::Note *note;1 u" {1 r. p' {. C9 {- Y
  64.             std::vector<NXString> messages;
    . O; {" `" E- v% X# v% a3 O, ?: _
  65.             std::vector<NXString> texts;
    ) ?5 G5 V, u" O+ _' N9 Y9 i9 _
  66.             for (unsigned int ii = 0; ii < objects.size(); ii++)
    & Q3 _' ?8 S3 Z; E+ ^" m( V, r
  67.             {
    * n5 z5 V0 s7 [! W4 a, I, [
  68.                 note = dynamic_cast<Annotations::Note *>(objects[ii]);
    , g* j9 A: P& H1 m+ Y
  69.                 texts = note->GetText();
    0 A, ~, y  }3 |  L
  70.                 for(unsigned int jj=0; jj<texts.size(); jj++)/ x! q9 z& @* N9 ?/ S
  71.                 {# T2 L8 W* w: M  o( n
  72.                     messages.push_back(texts[jj]);
    ' o+ @: z9 L& |+ ]) m5 `
  73.                 }
    7 k( g; h* ^! o
  74.             }6 X5 X) a& T5 \: O
  75.             // NXMessageBox works as of NX5
    / N/ S4 {. P8 V0 b$ q- u+ `- `% l
  76.             mb->Show("Selected Notes", NXMessageBox::DialogTypeInformation, messages);
    ) O/ [- D0 E. C3 Q  |& X
  77.             // otherwise simply write to the listing window
    - _) ]1 E9 K- |2 B% {" v# @2 n
  78.             // ListingWindow *lw = theSession->GetListingWindow();
    0 s  i+ i! y2 O: [6 a& H
  79.             // lw->Open();
    1 `: \0 P) K( \3 N, D) k
  80.             // for (unsigned int kk = 0; kk < messages.size(); kk++)& Z8 j: W$ @+ R4 N" r3 J
  81.             // {7 S$ P' y6 Y3 L/ Z' M
  82.             //  lw->WriteLine(messages[kk].getText());
    1 M  K  ^5 {: K- D' ^7 L. a
  83.             // }" Z. w8 W' v4 x. E

  84. - H3 R7 |8 ]4 M5 w1 ~
  85.         }' V  D' t$ [, M7 V
  86.     }
    2 S. C3 t4 q" {  [2 ^2 s: i4 _
  87. " [0 d2 d' y& o% A; e
  88.     /* Handle errors */
    9 S2 ?' J5 N/ t, Y: y& k% d
  89.     caTCh ( const NXOpen::NXException& ex )
    : r) H4 |# \& Z5 K
  90.     {9 _. B, F4 B9 D
  91.         // NXMessageBox works as of NX5( e0 X5 w) M/ g# ^
  92.         UI::GetUI()->NXMessageBox()->Show("Error", NXMessageBox::DialogTypeInformation, ex.Message());
    , W) V, f% d+ E# j1 s, ^$ C
  93.         // Until NX4 simply write to the listing window
    9 k1 e, r( m! ?4 f/ N! l
  94.         // theSession->GetListingWindow()->WriteLine(ex.GetMessage());
    - \2 h0 i! z5 {# x1 n) R0 j2 K
  95.     }9 U3 v8 G* k7 F+ k, L
  96. }
    : v. Z: `4 n% [* \: Y* Z
  97. $ E! Q$ S/ J+ n6 M4 z) m
  98. /*****************************************************************************
    / l* G8 P! {, U6 T* e* J
  99. **  Utilities
    7 u( O- c* ?# o3 l- P6 q
  100. *****************************************************************************/- }. O: Q+ o& h5 V0 e! @

  101. $ `* l5 V4 m/ P: C; G1 J
  102. /* Unload Handler* e$ {5 h- L1 |( H
  103. **    This function specifies when to unload your application from Unigraphics.
    ( |/ ?: i7 ^5 D. s2 h
  104. **    If your application registers a callback (from a MenuScript item or a4 Q) B5 D" X% M. f4 p
  105. **    User Defined Object for example), this function MUST return
    3 l; Z% A. t% z' V! i$ P: u
  106. **    "UF_UNLOAD_UG_TERMINATE". */
    . k7 }- M9 ?6 C" v' |5 r
  107. extern "C" DllExport int ufusr_ask_unload()
    6 j+ W: V* d6 V, I! E: l
  108. {
    " J0 f* c% l' D
  109. return (int)NXOpen::Session::LibraryUnloadOptionImmediately;
    0 J0 E9 g0 ^/ u
  110. }
    1 D+ E6 N0 r5 M5 Y8 @) s% _

  111. 5 K% u, Q: }5 l- W9 c. N
复制代码
& Y( _* c& ], t
, x5 H5 _$ @9 M% Z/ n* j6 ]! h" a
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了