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

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

admin 楼主

2013-10-30 14:00:47

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

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

x
NX二次开发源码:使用NX Open C++选取注释! c  |/ W3 [5 D# \* N# d5 [4 y& I0 E
  1. #include <uf.h>
    . T$ r* @8 k: F& p
  2. #include <uf_object_types.h>0 T$ R/ Q, q" r5 O8 ~; u+ R

  3. 8 g7 T; W# N2 E7 _5 m8 M
  4. #include <NXOpen/Annotations.hxx>6 S, Q. ~, K" W; Z, @2 |
  5. #include <NXOpen/Annotations_Note.hxx>5 y- F2 V2 ?9 N" h$ k% C3 s/ `
  6. #include <NXOpen/NXException.hxx>
    & c1 [. B( }$ N5 i* a
  7. #include <NXOpen/NXMessageBox.hxx> // as of NX5
    1 v' e0 b4 H2 A3 x+ ~  b+ z, c
  8. #include <NXOpen/NXObject.hxx>, B! z3 u" k+ Z
  9. #include <NXOpen/Selection.hxx>
    ; o; l* D2 n, A, a, x" H, k; x
  10. #include <NXOpen/Session.hxx>5 }- \) U& G- y) @& x8 [
  11. #include <NXOpen/UI.hxx>
    - B6 R5 b. E+ \0 C0 `" m; h" y5 ^

  12. + w% k/ H" u" E3 Y) m8 m  P+ {1 F
  13. using namespace NXOpen;2 T* @: Q9 \3 ^. g$ l0 L7 x
  14. using namespace std;* d' d' g' t- d$ H( {' _

  15. 1 A  J( P+ m  r$ S3 {" N6 b
  16. /*****************************************************************************
    : K' |- J+ }1 B; q" i
  17. **  Activation Methods
    2 l( \( u: |: P, w& ?- `% i  Y& z
  18. *****************************************************************************/+ O# ]3 s- @  {' v( j7 G$ Q! J) u
  19. /*  Explicit Activation
    & l6 B7 F: M2 E! _1 R8 |2 V, R  x( L
  20. **      This entry point is used to activate the application explicitly, as in' B3 z$ q7 z& N+ E7 j2 @" e, B
  21. **      "File->Execute UG/Open->User Function..." */, Z$ i/ q' K5 z, b2 V1 U+ h
  22. extern DllExport void ufusr( char *parm, int *returnCode, int rlen )  N- [  p- [8 I3 L& `0 c
  23. {
    6 J! Q- B7 ~" M
  24.     /* Initialize the API environment */( F7 ^+ H4 T: b2 z3 o$ P

  25. 0 X/ u' U7 t* m* q( Z
  26.     Session* theSession = NXOpen::Session::GetSession();
    - O4 j; r% w# n$ p$ I0 B/ l

  27. $ t* J7 q! J( F2 K
  28.     try
    1 C/ V% V( \& `' ?; l/ l' g" c
  29.     {
    # Y, @. H! q5 R
  30. 3 j! `( {$ ?( |* ]+ @( U+ p8 {
  31.         // ask user to select text5 m1 s( w* N9 L% _6 q
  32.         UI *ui = UI::GetUI();
    : x9 k9 ~4 T3 K$ U# j6 R% W
  33.         Selection *sm = ui->SelectionManager();# H/ Z1 V* n1 Q
  34.         NXMessageBox *mb = ui->NXMessageBox(); // as of NX5" u' Q* k& ], Z3 D+ j, @; R! h: f9 w
  35. - s5 }2 U! x! @4 Z7 b5 K
  36.         NXString message("Select Notes:");- x$ K( X( z+ h# l% z" ^$ z3 T( B
  37.         NXString title("Select Notes");" F- t- h$ J* F
  38.         Selection::SelectionScope scope = Selection::SelectionScopeUseDefault;
    , q, X$ x$ j' x# C: k, N* M
  39.         Selection::SelectionAction action = Selection::SelectionActionClearAndEnableSpecific;+ I/ F8 H$ s+ m, G! c+ _& a" H5 L
  40.         bool include_features = 0;3 [) W, K$ |2 g3 [% i
  41.         bool keep_highlighted = 0;
    & x, M' G% N. q( O

  42. 5 ]0 A: H! S0 B% O7 [
  43.         // Define the mask triple(s)
    ) p2 K& e3 |! w- t- R3 }
  44.         std::vector<Selection::MaskTriple> mask(1);2 A" f( b7 {; }( @' \
  45.         mask[0] = Selection::MaskTriple( UF_drafting_entity_type, UF_draft_note_subtype, 0 );
    ! W2 M# X  ~9 w. R9 Q1 \  `

  46. 3 c9 j. p0 b8 `  H
  47.         std::vector<NXObject *> objects;, S: _8 q5 q: G: N

  48. . p; @3 Q3 v  P$ X4 x3 b, p8 P
  49.         // Select objects using filter defined by mask triples9 D4 b% b- o) F; H* F
  50.         Selection::Response res = sm->SelectObjects(
    * k+ k3 `) Y+ ~& K' m
  51.             message,
    : n* Y2 J  W; L7 L5 F5 u/ Q
  52.             title,
    6 t( a; |% u; O8 r! w
  53.             scope,; i9 o5 J( _5 n0 f% T
  54.             action,
      Q' n' S5 r$ `
  55.             include_features,2 a8 x1 S, w- a# B/ s
  56.             keep_highlighted,
    $ F$ n5 s8 e9 c7 n. q
  57.             mask,9 F; k0 b5 t' F% a) q. l
  58.             objects
    2 B* p+ t) i% n# p) I* [4 X' {
  59.             );# I- N" K8 ^" y: c
  60. ' ^$ L3 g. @9 m+ q  \
  61.         if (objects.size())
    2 X  c" R, u: ]( B5 H9 P3 n1 O
  62.         {( s$ f" _+ o& n( D% ~
  63.             Annotations::Note *note;
    1 q' `6 d$ K# m8 z3 h: j
  64.             std::vector<NXString> messages;
    , P% k8 J2 `4 b
  65.             std::vector<NXString> texts;+ x3 L% U9 O% {& Z, L
  66.             for (unsigned int ii = 0; ii < objects.size(); ii++)* t' g; c! l3 b" D
  67.             {
      J8 c3 S' d9 T: h3 d
  68.                 note = dynamic_cast<Annotations::Note *>(objects[ii]);$ R8 X0 {% G: U5 `  a
  69.                 texts = note->GetText();9 h/ k) `2 H. z: }) Y/ l& ]
  70.                 for(unsigned int jj=0; jj<texts.size(); jj++)6 o! t* m& }) b: U$ E; K
  71.                 {3 }# ^$ i2 y- d
  72.                     messages.push_back(texts[jj]);9 r) r! Q" d7 ]' x% p+ C! ~
  73.                 }
    4 l: g8 E( z& T- O; X; B4 E
  74.             }9 k4 d, z: e4 L4 c1 h
  75.             // NXMessageBox works as of NX5" G: H, ^$ P4 ^9 R9 j. D
  76.             mb->Show("Selected Notes", NXMessageBox::DialogTypeInformation, messages);" e$ k' g, M9 Z+ k7 ?7 _! X. Y
  77.             // otherwise simply write to the listing window: [* ~% y! N, S; r3 Q$ @
  78.             // ListingWindow *lw = theSession->GetListingWindow();
    # n; E( S$ S, l. l& P
  79.             // lw->Open();0 r0 E- v" v; ?9 [/ d3 K
  80.             // for (unsigned int kk = 0; kk < messages.size(); kk++)
    + Z, B: X9 L! [+ I& V% p
  81.             // {! w2 N( ]& u8 E; X, A
  82.             //  lw->WriteLine(messages[kk].getText());
    : ?/ L6 \# T9 G
  83.             // }" S" m7 l. b& E: M8 T) q
  84. 1 l" ~3 M% g) [% v5 a% x. a
  85.         }
    ) J6 t$ G8 ^5 u) L$ L  Q8 T1 ~1 U
  86.     }# r1 s4 h' j5 U& k
  87. & @9 H" P0 K4 ]' j* T. V+ i3 o
  88.     /* Handle errors */: {! m& K! c; q% ~# V# S! ]# X! B
  89.     caTCh ( const NXOpen::NXException& ex )
    & k. d. {1 ~# f  T, J
  90.     {5 V' W' u4 S8 O4 i& L
  91.         // NXMessageBox works as of NX55 t( o' Y8 Q) U3 L: D! B
  92.         UI::GetUI()->NXMessageBox()->Show("Error", NXMessageBox::DialogTypeInformation, ex.Message());
    8 Q2 t( a) w$ D  n- u
  93.         // Until NX4 simply write to the listing window+ X9 [& ]3 y. _7 y3 T! W' }! i% F8 l. j
  94.         // theSession->GetListingWindow()->WriteLine(ex.GetMessage());' B7 u6 a' u1 g) n; C
  95.     }  R* i* R4 d0 m7 c/ V4 p; J
  96. }
    , A- Y; z, d4 {

  97. . c3 L8 J6 H$ {1 J0 B) k4 ~
  98. /*****************************************************************************3 X! o; s. e0 f3 O+ h+ x- ?$ K% @, q
  99. **  Utilities
    9 z. G/ z  G3 @) w4 x
  100. *****************************************************************************/! A% H, ?. Y+ A" s  O

  101. + ~# Y" G7 D* J# a3 p9 a
  102. /* Unload Handler% Z% J' f5 u6 Q' r! v
  103. **    This function specifies when to unload your application from Unigraphics.
    9 Q0 i6 b" u& g) J9 L9 ^
  104. **    If your application registers a callback (from a MenuScript item or a
    ) E3 d0 P9 ?! K' K4 z" h
  105. **    User Defined Object for example), this function MUST return" o% i9 R! z2 h9 ]
  106. **    "UF_UNLOAD_UG_TERMINATE". */
    , |+ @. y+ Q1 _
  107. extern "C" DllExport int ufusr_ask_unload()5 \! Q+ ?+ R, A2 H) X
  108. {' R  L' d* R. [. c6 b5 |* \. S# F% b
  109. return (int)NXOpen::Session::LibraryUnloadOptionImmediately;0 F) x# A* V7 A  \
  110. }
    $ F; n0 x# X! k2 ~/ A8 a; I

  111. & h8 p5 \* Q* d9 m
复制代码

4 D# j% m# k/ r% h8 G. c' x1 `0 h2 _! G- x- G5 M/ x- F9 _& ?
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了