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

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

admin 楼主

2013-10-30 14:00:47

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

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

x
NX二次开发源码:使用NX Open C++选取注释' f$ O8 m' h! G. G! @+ o6 m) D  l
  1. #include <uf.h>
    $ s5 H0 T0 M- ?7 k
  2. #include <uf_object_types.h>
    ) i" C7 A. i* b9 G, t

  3. ! y% V' p* R3 o" `: F! D
  4. #include <NXOpen/Annotations.hxx>! m; T3 I) `3 o- R
  5. #include <NXOpen/Annotations_Note.hxx>
    " T! D- ^8 [& N/ X- T) c" C
  6. #include <NXOpen/NXException.hxx>
    $ F! N$ r* L: \( x8 d2 u
  7. #include <NXOpen/NXMessageBox.hxx> // as of NX52 g! A- m0 S: K5 H) S, f
  8. #include <NXOpen/NXObject.hxx>/ Q" x* Z' S5 l
  9. #include <NXOpen/Selection.hxx>
    6 N4 L& ^4 q$ L- L) Y' |+ J
  10. #include <NXOpen/Session.hxx>
    * H/ O3 g! _& U$ C
  11. #include <NXOpen/UI.hxx>
    - s1 \& `# `) m
  12. ; }* n4 _7 f3 s7 C) ^5 y2 C
  13. using namespace NXOpen;, m! t; A) k# i+ C5 ~9 n2 x
  14. using namespace std;1 c6 f% r2 K) [5 j

  15. ; |. X! F9 a6 c1 x
  16. /*****************************************************************************' w% b6 K  S% @# x- j/ K  o+ u
  17. **  Activation Methods
    0 @0 V& s4 N7 U, i/ [8 \6 b
  18. *****************************************************************************/
    8 O6 G6 p: f: W0 G
  19. /*  Explicit Activation8 ~9 W$ m/ b; j- d& C* A
  20. **      This entry point is used to activate the application explicitly, as in
    ; v( ^- R+ i; ?% d7 Z8 G1 V
  21. **      "File->Execute UG/Open->User Function..." */
    2 ~. X0 v# s2 o+ k
  22. extern DllExport void ufusr( char *parm, int *returnCode, int rlen ). {3 \8 W- ]% v+ o- J
  23. {
    - z+ B  z' I" D2 H' {
  24.     /* Initialize the API environment */
    ! L, k# b% b7 a4 Y5 s# N

  25. / x; B- d9 i% m$ T
  26.     Session* theSession = NXOpen::Session::GetSession();
    + D) N3 [3 L9 f
  27. ( C. D! v2 j) T( F7 g
  28.     try2 ~# N9 {& ~# O  E; N
  29.     {6 K1 j+ @" r8 ]
  30. % D! L+ g7 v" O* E+ O9 j
  31.         // ask user to select text
    & ]' U$ U& V9 }" ?; }/ Z
  32.         UI *ui = UI::GetUI();0 q4 }3 U- Z8 ?% `* c
  33.         Selection *sm = ui->SelectionManager();7 B! ?" C& s( n  r  Y8 [; f
  34.         NXMessageBox *mb = ui->NXMessageBox(); // as of NX5& G$ X( M& V! H& q' l' O4 J6 v
  35. . D7 K; O, K- l8 |2 r4 p: i3 S/ {/ k
  36.         NXString message("Select Notes:");* }/ U8 r  ~# X! f
  37.         NXString title("Select Notes");. F- F3 r7 R6 @* h
  38.         Selection::SelectionScope scope = Selection::SelectionScopeUseDefault;" z2 t# ?1 f0 e/ j. [7 g1 T# n
  39.         Selection::SelectionAction action = Selection::SelectionActionClearAndEnableSpecific;* ], t$ Y: u* B3 `3 p$ G
  40.         bool include_features = 0;
    7 w* y4 b  Q% D1 d3 X
  41.         bool keep_highlighted = 0;& |1 C6 g$ C7 u7 |
  42.   `1 l+ Y. _9 Q; f* l) L% |
  43.         // Define the mask triple(s)$ U& r# M3 H$ F9 O+ g9 _# I& C
  44.         std::vector<Selection::MaskTriple> mask(1);/ k! q* O& E  R
  45.         mask[0] = Selection::MaskTriple( UF_drafting_entity_type, UF_draft_note_subtype, 0 );
    2 a+ P2 Y% d& ~  C7 a
  46. # u4 o3 L  k& `
  47.         std::vector<NXObject *> objects;* Y: a& ?# F, ^1 d  D

  48. & T4 \: l) q% d% o7 X+ U
  49.         // Select objects using filter defined by mask triples
    4 {9 T0 n9 C9 X) g4 R
  50.         Selection::Response res = sm->SelectObjects(3 T* _' _) ^5 B
  51.             message,
    % |# f: ?/ l' G' s" \
  52.             title,& W- X7 r% F8 c! K
  53.             scope,! o5 w3 Q8 y8 {. p
  54.             action,* H, ]# d) N4 p/ |. c
  55.             include_features,
    8 l; x; d  ~, H/ M
  56.             keep_highlighted,9 L- r; c& n8 o4 {, h/ W# E8 j
  57.             mask,8 a+ }9 N8 g& a9 k4 Z  u
  58.             objects% l& e0 g4 Y8 ]% {" s, P2 i
  59.             );/ |/ W0 \9 W, Z& a1 l" k" n5 }( m
  60. + e, `0 x% Y, q6 V; T
  61.         if (objects.size())
      U8 Z$ i( U9 `; I7 q8 c! c
  62.         {
    % ?4 k: Q! d/ F* M0 H  e# {
  63.             Annotations::Note *note;
    5 t' |6 a4 y$ j4 }6 W
  64.             std::vector<NXString> messages;$ @8 R( E' X# h. M- q6 d& _( c& b
  65.             std::vector<NXString> texts;
    5 ~& q" n$ `* t( u0 c* d
  66.             for (unsigned int ii = 0; ii < objects.size(); ii++)
    7 }- P8 P# I+ ?4 g' r
  67.             {+ y. U) O$ Q7 t
  68.                 note = dynamic_cast<Annotations::Note *>(objects[ii]);
    + |1 }0 ]( s$ ]: `3 `; Q& z
  69.                 texts = note->GetText();
      a2 ^( L, y/ T0 g! k
  70.                 for(unsigned int jj=0; jj<texts.size(); jj++)2 c% V( {1 R9 r8 a; P% g8 z3 ]0 m
  71.                 {
    # t' N6 [1 u8 ?) ]5 e" J' J9 I. Y5 W
  72.                     messages.push_back(texts[jj]);
    3 c; X2 b6 a$ {, ]! p/ b5 ^% N1 W) p
  73.                 }5 ]' l1 f3 S2 f
  74.             }) t9 r& ~! V( _: n# c% z
  75.             // NXMessageBox works as of NX5
    . s3 r3 m0 p& ~9 U8 p2 E  ~% v& F
  76.             mb->Show("Selected Notes", NXMessageBox::DialogTypeInformation, messages);
    : d$ A" s) V! g# K
  77.             // otherwise simply write to the listing window
    3 y( X  e: b6 g& @7 d/ B
  78.             // ListingWindow *lw = theSession->GetListingWindow();$ N8 N/ Y! m6 l9 x
  79.             // lw->Open();4 o5 B0 T% P" r3 K9 h; |
  80.             // for (unsigned int kk = 0; kk < messages.size(); kk++)
    0 w0 @; Y$ d1 p
  81.             // {8 K1 `, N, ?$ N/ _& x! A' s
  82.             //  lw->WriteLine(messages[kk].getText());- N$ L) _& k6 p* G' _2 k
  83.             // }
    - P) `1 L, L  n+ x  ~
  84. % Y) e8 h' V# i$ K3 o0 L1 X
  85.         }
    : G8 K. S. l4 W
  86.     }' T. N; b4 D3 `6 a

  87. : ]% w- c+ z# a# r7 P, ^4 D
  88.     /* Handle errors */
    6 P/ C4 V% |# O$ |$ u: ]; l" [
  89.     caTCh ( const NXOpen::NXException& ex )6 k; |8 }0 x- }; E4 t; U7 w
  90.     {
    & G( `6 |* y5 F9 U) q5 O* }+ ?- M* Z
  91.         // NXMessageBox works as of NX5- B  W9 b6 V* l( ~# f2 _/ Q
  92.         UI::GetUI()->NXMessageBox()->Show("Error", NXMessageBox::DialogTypeInformation, ex.Message());8 T( g; `+ |# |$ B( p
  93.         // Until NX4 simply write to the listing window6 h$ p( A* A6 ^* ^6 [
  94.         // theSession->GetListingWindow()->WriteLine(ex.GetMessage());
    , x+ U7 r3 k  j
  95.     }
    ' o5 V) M/ n7 D2 o% ?
  96. }
    ) b4 Y# `9 S! E9 F5 M) I

  97. 7 O2 q2 @* J2 e2 I) `* F- I3 I
  98. /*****************************************************************************  W' d& G( K* V: j1 D3 f8 B
  99. **  Utilities+ O- ?$ ^1 [( U
  100. *****************************************************************************/
    4 V. ~$ z8 b( z( W' f( T
  101. % q- y5 ?6 x0 {0 m% S
  102. /* Unload Handler' Q2 z, V& _0 |) x& y) S
  103. **    This function specifies when to unload your application from Unigraphics.
    0 a9 ~  r( F* \9 ]+ T5 W+ J7 I
  104. **    If your application registers a callback (from a MenuScript item or a" z* }9 `- @4 b9 Z4 r; `
  105. **    User Defined Object for example), this function MUST return% I( {! ]: r! M* X& M/ z
  106. **    "UF_UNLOAD_UG_TERMINATE". */% L# \( H+ q9 u; Y! }
  107. extern "C" DllExport int ufusr_ask_unload()$ \+ O$ W0 N5 j" Y6 ~' H0 ]
  108. {
    ; T' z0 G" j+ K  H9 W. A! T' _
  109. return (int)NXOpen::Session::LibraryUnloadOptionImmediately;$ A7 m, v' s1 R* ?
  110. }
    + ]; E) |0 r' _
  111. ; |" D  U. h& q: k
复制代码

, z" \, n( |6 F# O
* k# v7 O* C7 i7 o; E; 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二次开发专题模块培训报名开始啦

    我知道了