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

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

admin 楼主

2013-10-30 14:00:47

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

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

x
NX二次开发源码:使用NX Open C++选取注释7 d9 t9 E: w5 i- z6 i) R
  1. #include <uf.h>  w: w- h8 \* T/ i  [& H. K
  2. #include <uf_object_types.h>
    / |3 q2 J. b+ Y+ }2 i) @5 ]

  3. & O; V5 X7 I, V2 ?- u. Q) P  D
  4. #include <NXOpen/Annotations.hxx>
    8 P3 }* t" o/ T' S. h& J. K. p6 S
  5. #include <NXOpen/Annotations_Note.hxx>
    0 ~% v& f% D$ o' e
  6. #include <NXOpen/NXException.hxx>
    - I- k9 d6 X9 c* Q4 f
  7. #include <NXOpen/NXMessageBox.hxx> // as of NX5
      i" D1 O5 e4 I7 V" D
  8. #include <NXOpen/NXObject.hxx>$ |* [# k# Y; A  w2 P
  9. #include <NXOpen/Selection.hxx>5 H# u& e2 `4 @/ m  h" a: l6 n  t
  10. #include <NXOpen/Session.hxx>
    + m# ?# N2 F5 d3 \/ v$ V
  11. #include <NXOpen/UI.hxx>
    , X( R" v  X7 h, W$ n- b. |

  12. : G1 |. F3 m( R# g8 g
  13. using namespace NXOpen;
    - ~/ J$ k/ G" K$ X7 R3 a5 R  ~) l
  14. using namespace std;
    # Z* p0 Y( _6 `4 q9 f- q3 `7 a0 R
  15. 2 r& ^, `% Z$ Y2 ?
  16. /*****************************************************************************2 P9 e5 n% h' M. A) h. q
  17. **  Activation Methods! |, }4 U4 F5 X4 |5 `" ^
  18. *****************************************************************************/
    0 O/ |, ]4 {* U( H; K* c7 m- b% |
  19. /*  Explicit Activation
    7 g2 @7 k8 ~" u  \
  20. **      This entry point is used to activate the application explicitly, as in
    . `( E4 k" `& l  x6 S; R; Z
  21. **      "File->Execute UG/Open->User Function..." */1 D) z8 g7 M& `0 E5 B, g0 A
  22. extern DllExport void ufusr( char *parm, int *returnCode, int rlen )1 b& y; i% L9 T- `
  23. {, O' ^  W. l) ~' v
  24.     /* Initialize the API environment */
    ) C9 ]1 E' d. F2 m& @8 a
  25. . k2 \# H; u  t! q# U
  26.     Session* theSession = NXOpen::Session::GetSession();
    & Y: e! T+ D, V' c
  27. 0 n/ f( j6 X. S6 @; {6 f2 C) Q
  28.     try
    * A* n$ x+ s9 d/ |$ D. X; X6 _
  29.     {
    * K0 \6 z8 S! {; z0 N
  30. 5 J$ c% V0 v9 P: @1 G8 e3 {" M7 i+ R
  31.         // ask user to select text- C* |( b& j* J1 Q8 j; [# P
  32.         UI *ui = UI::GetUI();$ T+ i* Z3 y% p: C4 Z' [" g( y
  33.         Selection *sm = ui->SelectionManager();
    ; h) B) c" `# o& F6 M
  34.         NXMessageBox *mb = ui->NXMessageBox(); // as of NX5
    , k- v( S4 i, ]+ V! B. u3 G# w
  35. # Q- d) F+ ?2 ?+ V  E3 [# Z
  36.         NXString message("Select Notes:");
    . A5 M. T6 v. m* ]- [
  37.         NXString title("Select Notes");5 K9 A# {  M* Q+ r
  38.         Selection::SelectionScope scope = Selection::SelectionScopeUseDefault;
    ' T; v' F9 T8 M) C! V: p/ p* J. b& F
  39.         Selection::SelectionAction action = Selection::SelectionActionClearAndEnableSpecific;, u; Y- \! i" I0 ^' a8 X
  40.         bool include_features = 0;2 n  Y0 i# l# g; _3 E0 q/ J
  41.         bool keep_highlighted = 0;3 q5 |, k- g1 h6 r5 d- Z1 ^

  42. 4 _) O  w1 j  D5 n/ ^7 `
  43.         // Define the mask triple(s)6 o# }. [' E* m. N5 g
  44.         std::vector<Selection::MaskTriple> mask(1);
    ; k5 V) b! U6 p! S, e/ C# r
  45.         mask[0] = Selection::MaskTriple( UF_drafting_entity_type, UF_draft_note_subtype, 0 );! ]% ]3 r9 s; A
  46. 4 M0 V" g8 J3 c7 u1 [4 x9 F
  47.         std::vector<NXObject *> objects;
    0 p( O& K% i& T; k3 c4 l  e% d

  48. 6 O" `3 \% I: `9 R9 h( S5 T/ s
  49.         // Select objects using filter defined by mask triples* E; T% v% x/ W4 e+ F% ]
  50.         Selection::Response res = sm->SelectObjects(
    % T' @& K$ v$ V$ d3 I6 m0 N
  51.             message,
    2 L8 _! x9 ]+ H% e, }6 q$ s
  52.             title,
    8 O7 Z, A+ R/ U' U
  53.             scope,3 ^* r3 E" ^% t
  54.             action,5 x! o. L2 |$ H
  55.             include_features,
    : x' F& b! _) a% X
  56.             keep_highlighted,+ Y# N1 T7 h6 H7 x
  57.             mask,
    7 y1 j% ^# ?3 I7 H( |
  58.             objects
    % v6 ]+ m. a8 H4 {
  59.             );* }: T7 N6 D2 E0 `; S# y9 V; ?) g6 A+ w/ E
  60. 7 }# d6 N/ w: f# U9 Z5 _& ^* y
  61.         if (objects.size()): _: V+ W( A( ^+ @* u( J8 S
  62.         {
    8 C3 _, C; r  [4 e
  63.             Annotations::Note *note;  [8 [5 H4 S* h% Z9 O2 _
  64.             std::vector<NXString> messages;, v4 |& {  e# e6 c9 k
  65.             std::vector<NXString> texts;; e% a$ k; b. l$ h6 H, u$ f+ R
  66.             for (unsigned int ii = 0; ii < objects.size(); ii++)
    9 E" a  Z# O$ t( b% X' I( C
  67.             {- m1 F# u; U! S% E5 z& r  c4 i
  68.                 note = dynamic_cast<Annotations::Note *>(objects[ii]);" |2 q1 T9 A7 W& w0 M* M
  69.                 texts = note->GetText();0 f" l6 L" i5 ?
  70.                 for(unsigned int jj=0; jj<texts.size(); jj++), m  |0 c8 `* H: b; h& }8 o6 ^
  71.                 {3 K, e3 _5 A! K  X+ g
  72.                     messages.push_back(texts[jj]);
    0 Q" v: o( t7 D" W: Y
  73.                 }
    % Q$ h: w2 t$ H( {6 B9 T! o$ A
  74.             }
    2 O( d, q& s" q# ~
  75.             // NXMessageBox works as of NX56 g! G6 A; \7 d$ h$ O. P
  76.             mb->Show("Selected Notes", NXMessageBox::DialogTypeInformation, messages);1 _% h( `: V1 a3 ^) K
  77.             // otherwise simply write to the listing window  Y, _  ?6 j  H8 `. V4 I9 z
  78.             // ListingWindow *lw = theSession->GetListingWindow();9 ^( B8 B1 p3 ?
  79.             // lw->Open();5 ^4 S5 x0 k. Y- N' `7 r
  80.             // for (unsigned int kk = 0; kk < messages.size(); kk++)
    ; v/ q$ i1 n# Z8 j2 X
  81.             // {* U0 s0 P& @- {* @$ _( l) B4 t
  82.             //  lw->WriteLine(messages[kk].getText());9 o: \% f% z# h
  83.             // }. a. j! b" O$ J8 J4 Z/ M
  84. & l4 M; ^: Q/ r5 t7 j* I
  85.         }5 s% Y7 J( }3 \& o0 {1 ^9 b
  86.     }
    : u1 l' p: i2 G% S, L6 ?9 \
  87. + j+ x, B3 C/ U, G* W+ |/ ~; i9 ~
  88.     /* Handle errors */
    7 h7 g. s6 s% C
  89.     caTCh ( const NXOpen::NXException& ex )' C/ Z4 I/ z: T& T4 F7 ?% K8 C" w& |
  90.     {
    0 N: {/ u" ^) s7 |  @8 D9 m
  91.         // NXMessageBox works as of NX5- ]& @. X( o. y0 ~
  92.         UI::GetUI()->NXMessageBox()->Show("Error", NXMessageBox::DialogTypeInformation, ex.Message());  d  R7 P! h9 L3 l+ y5 D
  93.         // Until NX4 simply write to the listing window
    % b7 d% q; }. q+ i1 B
  94.         // theSession->GetListingWindow()->WriteLine(ex.GetMessage());' k; B- f6 C  b6 V
  95.     }
    ; J* s9 k4 x, i, f4 o: J$ {& |
  96. }
      X. s8 X* w! J/ C
  97. 1 O. W: c' s; ]4 e3 e; h
  98. /*****************************************************************************
    " O' D& A9 C& V
  99. **  Utilities
    : J" S( T' m+ W  N0 T5 N: {5 E
  100. *****************************************************************************/
    , L1 _: p, s+ |9 u1 I
  101. 3 R7 u! j( q% f) J, E, |
  102. /* Unload Handler
    2 V* H! A7 F0 _+ }8 L6 ?$ S
  103. **    This function specifies when to unload your application from Unigraphics.
    . [/ {  l4 X, `1 x
  104. **    If your application registers a callback (from a MenuScript item or a; O, N2 U5 s  B+ m4 ^% B) a& D
  105. **    User Defined Object for example), this function MUST return- _1 Z. A5 c" E9 U
  106. **    "UF_UNLOAD_UG_TERMINATE". */2 N: c' S3 Q: i$ G( s+ y
  107. extern "C" DllExport int ufusr_ask_unload()
    5 O3 _. Z# Y6 c# V* W  K) a1 J0 Q
  108. {
    1 y! \8 d, X$ ^; p1 w# S
  109. return (int)NXOpen::Session::LibraryUnloadOptionImmediately;* x, _8 U( z' T" k8 I0 z* {
  110. }6 H+ `& d' W6 v9 S* s
  111. - F7 X& m, |6 |4 ?) _, A
复制代码
& L0 B& ^7 r  t  w8 z2 K: b& J

" e1 d* \/ S# [0 N& \. A% 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二次开发专题模块培训报名开始啦

    我知道了