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

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

admin 楼主

2013-10-30 14:00:47

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

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

x
NX二次开发源码:使用NX Open C++选取注释
& o& N+ `; v: S# b$ [' g
  1. #include <uf.h>
    . F' e5 C1 T" e+ y& x
  2. #include <uf_object_types.h>
    5 a0 }# V5 p. c2 X# {( ~/ E
  3. # {, d. A- r4 y: D3 d" Q/ Y
  4. #include <NXOpen/Annotations.hxx>
    3 W: ^& v; B, B0 j' ^) ~0 C
  5. #include <NXOpen/Annotations_Note.hxx>; R. U  L% W( t
  6. #include <NXOpen/NXException.hxx>( l, m0 X3 K# ^+ \* W+ O1 {! I+ Q
  7. #include <NXOpen/NXMessageBox.hxx> // as of NX5
    9 b# @0 m; U- R  b
  8. #include <NXOpen/NXObject.hxx>$ J" N, p' H  S& K
  9. #include <NXOpen/Selection.hxx>' L4 I/ A. l/ o/ ?; C
  10. #include <NXOpen/Session.hxx>
      G6 M$ L7 I5 g4 _- x7 Z
  11. #include <NXOpen/UI.hxx>
    : U$ w. Q) T3 n8 L/ f6 g% |& V
  12. , L" T# ?2 p3 i0 ]. u# O! p; M
  13. using namespace NXOpen;* T) T9 A3 y( h3 E1 ]1 }/ s
  14. using namespace std;" f! P, m% l$ ?! I/ V3 X7 F

  15. 0 p" r+ {8 w, B% A3 [
  16. /*****************************************************************************
    # O) a8 N; }( g' S
  17. **  Activation Methods
    - y9 L8 q4 Y; y$ T; E* K
  18. *****************************************************************************/
    8 N5 j. R) x6 V, B; [* v
  19. /*  Explicit Activation
    & _# {8 W, p' z& O; O
  20. **      This entry point is used to activate the application explicitly, as in6 u( D" r8 J% n
  21. **      "File->Execute UG/Open->User Function..." */+ _9 H* B; O+ u$ `
  22. extern DllExport void ufusr( char *parm, int *returnCode, int rlen )
    / S$ ~: B  `" Z# w; W  o" |
  23. {  u0 e) C0 [  t" e& w% n
  24.     /* Initialize the API environment */" H$ r7 P6 V" P/ I

  25. * }3 r; k( @# _9 G. k
  26.     Session* theSession = NXOpen::Session::GetSession();
    & E3 }" c# ?, `  e, H2 [1 k; m

  27. 5 G8 Q$ b& d1 [, J! N- s
  28.     try7 G4 P! B( N0 q
  29.     {# Q; s7 U* G0 `

  30. ' g/ S8 r- ~- W2 w
  31.         // ask user to select text" w; p& F4 M6 G  D1 H) b
  32.         UI *ui = UI::GetUI();
    ) J# m; p9 a  f: ]( P3 r
  33.         Selection *sm = ui->SelectionManager();
    2 B% o9 B( u) }& ?
  34.         NXMessageBox *mb = ui->NXMessageBox(); // as of NX5
    1 o7 s9 s$ L( S5 q! Y
  35. 7 ?8 d) J+ Q, X. c
  36.         NXString message("Select Notes:");
    : g& N$ S9 e: _! D
  37.         NXString title("Select Notes");
    . ~8 [1 e+ i% w: Z, ?
  38.         Selection::SelectionScope scope = Selection::SelectionScopeUseDefault;
    * [2 _- V& r' D4 x7 s; r
  39.         Selection::SelectionAction action = Selection::SelectionActionClearAndEnableSpecific;
    5 W) E* @3 S8 {
  40.         bool include_features = 0;
    4 m2 E* T, [7 `5 D- O2 z& ?
  41.         bool keep_highlighted = 0;
    & }8 D: B9 }9 w" H- x* z6 P0 w

  42. , F2 U/ v3 R& E2 R6 H" Q) d, L/ W! s
  43.         // Define the mask triple(s)4 ]2 Y7 c0 m! m7 Z* G
  44.         std::vector<Selection::MaskTriple> mask(1);
    0 _- U, Q0 B1 f: n6 C6 K$ ]& a
  45.         mask[0] = Selection::MaskTriple( UF_drafting_entity_type, UF_draft_note_subtype, 0 );. \/ \8 u& F% Y- x7 ^0 C" a, I

  46. & ~( q  k2 o% J
  47.         std::vector<NXObject *> objects;% p7 H4 |$ ^' z
  48. ) E8 ^- b) k& t2 n. @) U; ]
  49.         // Select objects using filter defined by mask triples- v5 [5 m0 b3 T2 I
  50.         Selection::Response res = sm->SelectObjects(
    5 Q. F( Q# X0 p
  51.             message,3 S5 H  c" {9 u# l' L" B6 Y
  52.             title,
    ; D$ {# T8 |4 W  D0 Z7 x' V
  53.             scope,
      P/ k4 l) R; u+ Q7 M, w
  54.             action,
    0 }/ R) ~) X! Y& b! _" p
  55.             include_features,9 a% c$ e# t2 ^" C- O) n, Y5 m
  56.             keep_highlighted,) n) n5 M: N9 B" ^2 [+ f. J
  57.             mask," ?& ]3 v7 O2 c( G. s
  58.             objects' m' j0 n" r$ }% u
  59.             );
    2 J) n/ P0 b! x* x7 l3 D/ t5 W

  60.   C5 ~( G  h7 O2 _- @7 u/ J
  61.         if (objects.size())" X) R9 E7 l1 c0 U6 ?
  62.         {
    ! R/ _( j* P* j  L' Q5 ]
  63.             Annotations::Note *note;
    7 M0 ~9 |2 e% i3 o5 k6 h
  64.             std::vector<NXString> messages;
    4 {$ d1 C0 y) @: M
  65.             std::vector<NXString> texts;3 }& z% Y, K3 C: x4 L2 g/ y
  66.             for (unsigned int ii = 0; ii < objects.size(); ii++)
    . {6 O0 G' [& b& V& X' `9 \
  67.             {+ |* v6 f: e3 t* U. B
  68.                 note = dynamic_cast<Annotations::Note *>(objects[ii]);
    2 i( b- h2 w: {8 o8 [, U6 |
  69.                 texts = note->GetText();! O6 J8 W- @" \% x" B
  70.                 for(unsigned int jj=0; jj<texts.size(); jj++)
    + V4 }2 i: N: c- e! Y8 O
  71.                 {
    : K8 h5 C4 I$ b& \* n- a
  72.                     messages.push_back(texts[jj]);
    $ j' L# u0 Q# W) i5 D; J
  73.                 }& t/ d6 t- Z9 f- Q, m* Q
  74.             }
    / |$ i3 a" t$ l3 n) y
  75.             // NXMessageBox works as of NX5
    / Z" N1 Q1 I' i5 K5 l$ f
  76.             mb->Show("Selected Notes", NXMessageBox::DialogTypeInformation, messages);
    ( ?% a4 n; y. U, k: z
  77.             // otherwise simply write to the listing window) D7 A5 u7 c) `$ P
  78.             // ListingWindow *lw = theSession->GetListingWindow();
    2 E7 G1 y) R$ C+ O$ s0 Q" o  g/ |
  79.             // lw->Open();. D- K5 Q7 U4 U7 d+ h: z( w% C
  80.             // for (unsigned int kk = 0; kk < messages.size(); kk++); V/ ]5 z' y- p6 _$ v8 t
  81.             // {1 i" d7 E2 H3 ^
  82.             //  lw->WriteLine(messages[kk].getText());, ?  E9 a. G7 v  e
  83.             // }" c5 `  s* G0 A7 h

  84. * Y8 P( _( S9 ]  v6 f
  85.         }
    1 U% h: G1 F5 P8 z
  86.     }9 K3 P! U, _8 h) j
  87. + a0 {: D6 ?6 l$ Q
  88.     /* Handle errors */, m) _: q! K) C3 y  K
  89.     caTCh ( const NXOpen::NXException& ex )
    & e! v! S1 I. D) Z* L: m: X) t; [& K, Y9 n
  90.     {
      Q- b% A2 l5 S$ f/ U) g
  91.         // NXMessageBox works as of NX5  E% l3 J" r/ U/ t$ f; o4 |4 ]( f6 |
  92.         UI::GetUI()->NXMessageBox()->Show("Error", NXMessageBox::DialogTypeInformation, ex.Message());
    5 B7 a" |- u7 h/ W% V0 b
  93.         // Until NX4 simply write to the listing window( e% f# G% o9 X# o2 |
  94.         // theSession->GetListingWindow()->WriteLine(ex.GetMessage());
    9 z# ]: H' s8 y3 U) |
  95.     }( Y% P! t8 \( @7 ~3 G8 x8 ^7 ~
  96. }
    ; Y$ Q8 t" ]+ e. h
  97. " ~; v. S9 H! h5 ~
  98. /*****************************************************************************( i/ i/ C/ C5 N& E, W' B8 n
  99. **  Utilities
    2 Y3 v, k& `: O: Z7 K; v
  100. *****************************************************************************/; C8 {% q  B: o3 I- `

  101. ; b+ k! i  @5 ]  c4 M! A2 _
  102. /* Unload Handler2 v: k$ Y3 @' P7 b% g' t5 _
  103. **    This function specifies when to unload your application from Unigraphics.8 w" x" s/ j: D; Z$ Y( j6 ?4 t
  104. **    If your application registers a callback (from a MenuScript item or a# x& A' g! N; C. b! {. p
  105. **    User Defined Object for example), this function MUST return
    : }  [4 G, N6 \$ _- D$ I  S% a
  106. **    "UF_UNLOAD_UG_TERMINATE". */! c2 H% T/ R: p& E7 Z8 \! p
  107. extern "C" DllExport int ufusr_ask_unload(); A0 ^7 k7 T/ G
  108. {. E% ~1 c2 h+ [
  109. return (int)NXOpen::Session::LibraryUnloadOptionImmediately;& m' n% C6 j4 m  B9 v1 c
  110. }" j8 [9 |/ j' z5 `* d

  111. & c8 ?3 Y( H  L
复制代码
, U8 G* b5 J( T( [5 A: t8 v
. ]/ f. ]" b4 O3 B3 L2 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二次开发专题模块培训报名开始啦

    我知道了