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

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

admin 楼主

2013-10-30 14:00:47

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

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

x
NX二次开发源码:使用NX Open C++选取注释
  I! o2 Q: N% U! r" r- s
  1. #include <uf.h>0 ]  S+ s3 t" M7 X2 Q
  2. #include <uf_object_types.h>/ c. _/ I0 d- t0 F

  3. 0 |' L$ k- S- z/ [
  4. #include <NXOpen/Annotations.hxx>
    / }, n+ a, w3 T
  5. #include <NXOpen/Annotations_Note.hxx>) `/ ~* Z( Z5 j/ u9 a
  6. #include <NXOpen/NXException.hxx>' n% u* G# T( t
  7. #include <NXOpen/NXMessageBox.hxx> // as of NX5
    9 R9 A' ]$ i+ e* C3 ]( B
  8. #include <NXOpen/NXObject.hxx>
    9 I, L; ]% F1 ^) n5 `1 [
  9. #include <NXOpen/Selection.hxx>2 L# `3 s3 J9 }; E% l
  10. #include <NXOpen/Session.hxx>; @2 P3 ~  c' {- J7 o6 J
  11. #include <NXOpen/UI.hxx>: s4 z9 h6 \) h3 a8 V' z

  12. 1 i1 g+ e9 m7 G) X. R2 {
  13. using namespace NXOpen;
    7 o2 T2 Z, |* @2 @
  14. using namespace std;3 H/ V# s9 y: ~7 d
  15. 9 B  t  n' T4 }" ^' P/ t  h
  16. /****************************************************************************** D, p, G9 I8 m) ~1 i5 W& l
  17. **  Activation Methods
    + f, A6 O6 i1 `. s, g" {% m/ }
  18. *****************************************************************************/
    ! q9 L% R' x  t* X
  19. /*  Explicit Activation
    0 F( {- i1 P) [0 r3 R" O, ~
  20. **      This entry point is used to activate the application explicitly, as in
    1 m; L; b+ a) f
  21. **      "File->Execute UG/Open->User Function..." */
    ( t1 Z6 C2 i" Y/ s. I
  22. extern DllExport void ufusr( char *parm, int *returnCode, int rlen )
    4 L# q. @1 L7 s$ ?% x' K
  23. {
    ! I8 p* n! D  g  r2 u& `. P4 K
  24.     /* Initialize the API environment */# B$ i# s# ]6 F
  25. , u6 M2 {3 N4 a1 y
  26.     Session* theSession = NXOpen::Session::GetSession();9 r/ I$ }- U' m! N! J

  27. ( u9 V7 l- e+ Z
  28.     try
    $ r$ X' ^2 j# a0 h# Z0 ^9 j
  29.     {2 z4 }. I9 S; {5 }4 R

  30. / ~) H; q8 l0 g0 j, n  K& S
  31.         // ask user to select text
    , n0 @7 e! f$ Z& T
  32.         UI *ui = UI::GetUI();0 r5 \* E& V/ Q4 W
  33.         Selection *sm = ui->SelectionManager();
    ' W  B6 l- g* W# s. {
  34.         NXMessageBox *mb = ui->NXMessageBox(); // as of NX5
    & R4 ]- U( y9 E/ d

  35. % I1 e( G& q: d: m
  36.         NXString message("Select Notes:");
    & A+ D% o4 o# h$ M3 Q
  37.         NXString title("Select Notes");# g/ Y, Q3 k1 w; N2 C
  38.         Selection::SelectionScope scope = Selection::SelectionScopeUseDefault;
    * B6 y6 n7 f8 I9 Y
  39.         Selection::SelectionAction action = Selection::SelectionActionClearAndEnableSpecific;
    ) F+ F* @" ^  _% t& H: t' \
  40.         bool include_features = 0;
    4 P* X% X$ r8 x; K" ]
  41.         bool keep_highlighted = 0;( z& w# Q5 _  P0 X5 O

  42. * S4 n" \& v: K$ S4 l; f4 C% e3 U
  43.         // Define the mask triple(s)
    & J" d  h, P7 a$ E$ O5 Y% D% O) J
  44.         std::vector<Selection::MaskTriple> mask(1);
    4 v, v$ M1 s5 A; b# O$ l
  45.         mask[0] = Selection::MaskTriple( UF_drafting_entity_type, UF_draft_note_subtype, 0 );
    0 o2 `, t% k1 G% d

  46. " w& R4 _9 {/ g' }9 }  s2 q
  47.         std::vector<NXObject *> objects;
    . Z* O% c1 n0 t# \* o0 p+ p
  48. ) ?6 S; J- W4 U, X6 i9 b
  49.         // Select objects using filter defined by mask triples, v& T& B' R6 |. t& F1 M2 U
  50.         Selection::Response res = sm->SelectObjects(
    6 ^  m1 W) h" N0 V
  51.             message,* }; s8 A$ o: \' T) ?/ X
  52.             title,/ l+ |* A. ~& v; @
  53.             scope,
    ) F8 `6 T$ l2 X& g( x
  54.             action,0 i2 `/ P9 l, l3 a
  55.             include_features,- Q8 l5 _; c" W
  56.             keep_highlighted,/ n9 }$ }# N! C" ~
  57.             mask,
    , h5 w: w" |0 A2 v3 R" J8 }
  58.             objects
    3 f/ U' s) {; [
  59.             );' \' r( E, ~. h7 X& i

  60.   N& O, X. d6 g! W3 {" T0 k& i# S5 M
  61.         if (objects.size())$ @, t2 z: w  V  d" W$ h/ ^3 g
  62.         {
    * m5 ]7 k5 _) `( E0 i2 `
  63.             Annotations::Note *note;
    3 B7 M1 d& T, {, k# F8 e
  64.             std::vector<NXString> messages;% @$ I' c- K7 q( [6 D6 Y
  65.             std::vector<NXString> texts;
    1 U+ R1 S. G0 I6 S
  66.             for (unsigned int ii = 0; ii < objects.size(); ii++)
    : k, o2 b* z" q* e  U
  67.             {
    # z  w* Y. Y& q, @. Z3 ^1 s
  68.                 note = dynamic_cast<Annotations::Note *>(objects[ii]);' r# |9 b6 Q% H( z8 I/ J4 B# s  M
  69.                 texts = note->GetText();
    3 W& N# k: J3 A  m
  70.                 for(unsigned int jj=0; jj<texts.size(); jj++)) f0 [% w1 J- M. [
  71.                 {. B; @! ^1 \- [
  72.                     messages.push_back(texts[jj]);
    9 y& b5 g8 v6 d, J
  73.                 }4 w' B4 i" T6 A; ?8 H
  74.             }7 B) G/ D$ ~. K
  75.             // NXMessageBox works as of NX5) N4 |0 d7 V9 K! ^9 c
  76.             mb->Show("Selected Notes", NXMessageBox::DialogTypeInformation, messages);
    8 R: r6 |3 u* a
  77.             // otherwise simply write to the listing window
    $ k. S( e: ?; H* s4 C, O; F4 P
  78.             // ListingWindow *lw = theSession->GetListingWindow();
    0 e8 L, c; E( G2 Y
  79.             // lw->Open();
    , {  y; j  `2 L6 q% W5 \
  80.             // for (unsigned int kk = 0; kk < messages.size(); kk++)
    & b) R* ~3 f1 O/ R) K, X
  81.             // {
    * z9 n3 x: O5 O# _$ F6 l
  82.             //  lw->WriteLine(messages[kk].getText());* N0 ^% i. d' e1 Z6 ?# ?1 g
  83.             // }, N0 c- ?* U4 a7 u
  84. # H8 j8 a" G$ B9 [5 T! e( }
  85.         }, o2 ~5 S2 P& Q, f% c
  86.     }3 s, X, X9 q) s* t) S& V9 v
  87. / P8 E/ F4 T/ G! ^- O8 Q5 y$ z/ O- j
  88.     /* Handle errors */
    ; j, `$ W: W( j* s% ~9 \! c
  89.     caTCh ( const NXOpen::NXException& ex )
    % B  [3 `0 Y4 W/ N0 i
  90.     {) \1 o, \" E' _* Y4 A
  91.         // NXMessageBox works as of NX5
    . I. @6 y9 S3 B, }& B
  92.         UI::GetUI()->NXMessageBox()->Show("Error", NXMessageBox::DialogTypeInformation, ex.Message());
    1 ]% e( U9 @# P' \
  93.         // Until NX4 simply write to the listing window
    % {7 Q% |  e( m9 x' R; o6 |
  94.         // theSession->GetListingWindow()->WriteLine(ex.GetMessage());
    9 Z4 O5 T% w  h- n+ |/ l
  95.     }! Z, o4 ^, H, p+ g
  96. }
    + p1 T( y# ]- K" U# N% y  `8 [

  97. & R( k" E* F6 l% [- Y* G+ g; E
  98. /*****************************************************************************
    * x0 g4 S$ b. ~5 g0 F
  99. **  Utilities& r0 m0 R# W: Q3 E  g
  100. *****************************************************************************/
    / c# q" `# u" ?$ y& ^4 C# C! l. X* P
  101. $ i- p6 I; p0 Y3 X% w) h
  102. /* Unload Handler
    1 y2 T1 s# g0 K6 Z8 u# v9 h) ^
  103. **    This function specifies when to unload your application from Unigraphics.
    ' s- S5 f. P' ~+ }3 K3 I, I
  104. **    If your application registers a callback (from a MenuScript item or a
    + }0 ?; x- p( z# v4 E4 U2 ~
  105. **    User Defined Object for example), this function MUST return
    0 d3 D" f0 e  N; h' t8 U) O( @$ B
  106. **    "UF_UNLOAD_UG_TERMINATE". */
    0 \* o. z8 e0 e# K, P8 t  T# E/ d! T
  107. extern "C" DllExport int ufusr_ask_unload()4 b; S) V5 t( ~) f/ J
  108. {# ^/ ]3 @* j0 m
  109. return (int)NXOpen::Session::LibraryUnloadOptionImmediately;
    2 X" a2 C. n4 u# y  v- ~4 ?7 z
  110. }% I( |! t4 {" ]( H9 Z

  111. ) l% i! L, Q* G  S5 S. [" i
复制代码
) r4 x! a6 Q5 C4 ?, _  n4 @5 P1 ^

, Z, N1 N& I! R5 h
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了