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

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

admin 楼主

2013-10-30 14:00:47

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

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

x
NX二次开发源码:使用NX Open C++选取注释/ D* i8 F9 _0 A5 C
  1. #include <uf.h>
    1 S1 f; g  q" a# f; d, v. x6 v
  2. #include <uf_object_types.h>
    ( k6 X) D  z3 X+ v+ o: H( G
  3. % U6 l* T* `2 k4 T. A
  4. #include <NXOpen/Annotations.hxx>
    ( [! v' u* _) U! H$ z
  5. #include <NXOpen/Annotations_Note.hxx>
      V& r6 a3 Q& P7 I5 M9 ?; H
  6. #include <NXOpen/NXException.hxx>
    : _  P/ p7 `# E$ X
  7. #include <NXOpen/NXMessageBox.hxx> // as of NX50 O+ X; d& r4 E1 B+ o5 o4 a1 g
  8. #include <NXOpen/NXObject.hxx>
    ' J2 s$ l% n9 D% M% o3 f
  9. #include <NXOpen/Selection.hxx>3 u1 A$ j2 a  ^( `' N, z" N
  10. #include <NXOpen/Session.hxx>% B, d6 h  K0 U# C3 k  h0 `& T8 t
  11. #include <NXOpen/UI.hxx>
    ) G' m- O) H9 \

  12. # g9 M# q+ y5 J0 L. y3 ^2 y
  13. using namespace NXOpen;! i% @9 o$ Y( g
  14. using namespace std;
    ) b8 O. n2 a! I% J6 q% D0 f( v' x
  15. . k3 H- [! m$ U' u! @$ C4 G
  16. /*****************************************************************************. u- i6 P0 g6 J+ a, V6 }
  17. **  Activation Methods
    ) C0 H( x4 Y7 ~2 r$ M7 j8 y3 D) {$ G
  18. *****************************************************************************/
    % H7 o8 k6 X. ]; i% g8 A. T* ^
  19. /*  Explicit Activation
    6 n8 H. a! u; f1 ^' K
  20. **      This entry point is used to activate the application explicitly, as in
    ( I6 l: {/ X3 n9 \
  21. **      "File->Execute UG/Open->User Function..." */
    $ ^7 A2 _; h' w! D' r! h
  22. extern DllExport void ufusr( char *parm, int *returnCode, int rlen )- Y! t8 O3 T8 P  h8 ]7 c1 a4 Y* U
  23. {
    3 a+ O' `7 N  T) r+ E! N" p. ?
  24.     /* Initialize the API environment */3 O" L0 T! k7 P1 j

  25. # c' t  ^% T5 R( C- i
  26.     Session* theSession = NXOpen::Session::GetSession();
    . v+ q+ ]) [/ J
  27. 5 i) A% {  J+ k% Y  n
  28.     try
    ) r; T: M+ N; N& X, z
  29.     {
    8 x1 K4 F" c9 t; D0 Z  D! M

  30. 9 r7 s3 ~$ D: ?* V3 `! q1 X& d
  31.         // ask user to select text
    4 G9 R# J9 H- t" Y2 d
  32.         UI *ui = UI::GetUI();. z9 V3 W# v' A, n
  33.         Selection *sm = ui->SelectionManager();
    - H8 M7 b) {( E' t7 M
  34.         NXMessageBox *mb = ui->NXMessageBox(); // as of NX5+ o( P: n: A7 b7 F, ]
  35. / |' r8 k9 J  \  i6 q
  36.         NXString message("Select Notes:");
    / M: ^" y( c; f& ]/ z
  37.         NXString title("Select Notes");( a; {3 f$ M3 K
  38.         Selection::SelectionScope scope = Selection::SelectionScopeUseDefault;4 t' K6 o  s  m( M
  39.         Selection::SelectionAction action = Selection::SelectionActionClearAndEnableSpecific;  R; [5 G# Y3 K( K7 n
  40.         bool include_features = 0;; ^) l5 H( A( t+ X5 J
  41.         bool keep_highlighted = 0;
      o+ J" V/ T  g1 o' p

  42.   V" L- l- O$ X7 }6 J
  43.         // Define the mask triple(s)) e# F1 O" t% ]- C
  44.         std::vector<Selection::MaskTriple> mask(1);
    . _4 Q) i( y1 Z! I- I
  45.         mask[0] = Selection::MaskTriple( UF_drafting_entity_type, UF_draft_note_subtype, 0 );  p7 M) s) Q. R5 X3 c; g

  46. 9 W' u4 r, H3 T
  47.         std::vector<NXObject *> objects;
    ; n. n( f9 G& u) c# X

  48.   N6 h7 j- T5 v+ }' H
  49.         // Select objects using filter defined by mask triples
    2 R+ E$ Z2 l$ \$ S9 @3 J, @: \& _
  50.         Selection::Response res = sm->SelectObjects(
    : c9 m0 y' m9 S  R
  51.             message,
    1 x( m* O. p4 s2 y; g$ t
  52.             title,# {# n# }' j, M: Z0 L& e
  53.             scope,+ f( I9 H/ i  V* t: `5 F  X% r
  54.             action,: B: u+ L' }/ o" g. E
  55.             include_features,
    & a! F6 V' d# R1 ~3 P7 n8 e
  56.             keep_highlighted,* S# k# f8 Y1 l" X# s2 T7 D
  57.             mask,
    / m& x: t6 i8 ]# K8 @/ Y& j
  58.             objects& K- Y4 E( o" a6 c& G) w6 ~6 R( d
  59.             );- `8 R" p4 D$ _

  60. 3 C! O1 ?& o9 J5 U# s8 v; C- Z
  61.         if (objects.size())
    ' x, @1 t5 Y$ ]
  62.         {
    6 Q7 v: h& O1 A* y( L: m
  63.             Annotations::Note *note;
    7 D9 s5 Y3 K  X6 S8 y) j
  64.             std::vector<NXString> messages;
    8 u2 j0 J1 ^6 X4 v( R1 z% m5 p, ~
  65.             std::vector<NXString> texts;
    * W, j* G% h# ~4 E" F3 N7 {/ x6 I& n7 u
  66.             for (unsigned int ii = 0; ii < objects.size(); ii++)
    9 z& W4 [; R2 \1 |1 M
  67.             {7 D2 v) }* p' b4 f: @
  68.                 note = dynamic_cast<Annotations::Note *>(objects[ii]);7 ?7 W' A, `# A' S6 P
  69.                 texts = note->GetText();8 C2 y7 Q& m! y6 w8 c* |
  70.                 for(unsigned int jj=0; jj<texts.size(); jj++)
    8 H9 W; C. N6 }+ i6 J: J$ U1 }2 ?
  71.                 {
    1 n* ?: z. j1 B7 t5 {% d$ U
  72.                     messages.push_back(texts[jj]);& {" y! `' g9 i5 }2 F5 I
  73.                 }
    ! B* d1 I2 l  Y& T4 O
  74.             }
    ; W6 m1 |4 R7 ~" ]; ?
  75.             // NXMessageBox works as of NX5
    6 k- o% T5 n6 M# K+ z4 _4 J
  76.             mb->Show("Selected Notes", NXMessageBox::DialogTypeInformation, messages);
    5 I% j/ g. g8 c" O
  77.             // otherwise simply write to the listing window
    5 I; Y& h( P1 C9 T* o" v; K
  78.             // ListingWindow *lw = theSession->GetListingWindow();  V# C0 c' H# h
  79.             // lw->Open();3 s2 ^) h% ^. Y6 k
  80.             // for (unsigned int kk = 0; kk < messages.size(); kk++)5 z9 G: \# j+ g7 s
  81.             // {. X- N! ?/ x9 X7 E
  82.             //  lw->WriteLine(messages[kk].getText());
    ! E5 P$ k) t3 k% B* F2 c
  83.             // }
    0 `" K6 r3 T+ ~2 E! x$ S

  84. - {; x5 v8 ^( p+ Y% q3 N4 b
  85.         }
    ; z! R0 e! I' L7 ~. A6 p+ Q7 K
  86.     }
    , b' Y8 ^1 u1 K: E# C1 D' k1 e( N7 V
  87.   W& d6 d' V/ ~) l9 M$ i, E% y+ O
  88.     /* Handle errors */: O( r! ?. r; T- m9 j3 z
  89.     caTCh ( const NXOpen::NXException& ex )3 t- {$ c/ [8 t& {, Y- p" ^
  90.     {' d4 z+ ~) n% {- w8 F$ U1 A
  91.         // NXMessageBox works as of NX54 n$ h' Y* q/ H# ?$ O; t
  92.         UI::GetUI()->NXMessageBox()->Show("Error", NXMessageBox::DialogTypeInformation, ex.Message());
    / T) ^) Z2 p  r5 X- ?
  93.         // Until NX4 simply write to the listing window
    + {* d4 C, M9 ?
  94.         // theSession->GetListingWindow()->WriteLine(ex.GetMessage());. O2 p3 P5 }: Z- h3 h  J$ Y" w
  95.     }
    7 d: [' O( m& S% W# t2 J
  96. }
    6 D' M& o& X8 Z" K, U
  97. 4 P/ ]$ K; J/ Z
  98. /*****************************************************************************
    3 p& ]' J6 u: n. x
  99. **  Utilities2 O9 B$ x4 F" J+ ~
  100. *****************************************************************************/: q5 o% w7 x8 r2 r2 D- x5 b) l

  101. ) B( ~, j1 f3 S+ ^" \
  102. /* Unload Handler
      v& Y$ O7 J. V+ Q. d  h  [
  103. **    This function specifies when to unload your application from Unigraphics.
    - J$ ^8 P/ m  F9 M  F
  104. **    If your application registers a callback (from a MenuScript item or a+ Z7 V  @( W# O, E) E( V
  105. **    User Defined Object for example), this function MUST return9 ^( h8 V7 Q8 V
  106. **    "UF_UNLOAD_UG_TERMINATE". */+ E. b0 M( d5 V
  107. extern "C" DllExport int ufusr_ask_unload()1 O0 U6 [# K" x9 [$ G3 `8 u& U
  108. {/ r* s1 Q- {: j  R; R
  109. return (int)NXOpen::Session::LibraryUnloadOptionImmediately;
    / S0 M) L- e4 F; L6 l3 h. K5 a6 P. `
  110. }
    ; v  x! ^# O( D5 I
  111. 7 j" V' G% y, [7 D
复制代码

. r: J3 e, X( I, M  I. `# b# e5 W* B; |
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了