PLM之家PLMHome-工业软件与AI结合践行者

[二次开发源码] NX二次开发源码分享:NXManager中,获取用户的组和角色

  [复制链接]

2019-12-10 17:53:21 4307 2

admin 发表于 2013-11-6 19:00:16 |阅读模式

admin 楼主

2013-11-6 19:00:16

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

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

x
在集成环境中,NXTeamcenter的集成中,获取当前用户的组group 和角色 role。
( X0 [1 h% o4 Y* @" p8 U: r% w8 b% ~* N
0 f9 H6 y1 Y$ B& f0 Q" Z
  1. #include <stdio.h>' f8 e' ?9 H3 y) Z/ A+ j: b
  2. #include <string.h># @2 z$ Y" X' w5 n
  3. #include <uf.h>
    + J, F1 c9 L2 x2 `: Q
  4. #include <uf_ui.h>
    3 Y, O+ f* [7 ]1 {+ W# I# h) M1 R
  5. 2 h, l! f1 [2 I% C; X. r
  6. #include <NXOpen/NXException.hxx>
    ) M  c' V. Z5 X9 ?" K
  7. #include <NXOpen/Session.hxx>
    * P; x+ l2 |# C. ~+ Z3 }
  8. #include <NXOpen/ListingWindow.hxx>
    ; }* R* c& ]  z  D1 z
  9. #include <NXOpen/LogFile.hxx>0 B: g0 E& ^7 q2 R& D, }/ e
  10. #include <NXOpen/PDM_SessionSettings.hxx>
    % E. ?  M" |% Y. T5 X8 s  }
  11. #include <NXOpen/Part.hxx>: u7 `+ o8 ?& q1 p/ Q5 W
  12. #include <NXOpen/ParTCollection.hxx>% R9 ?6 _" J* {7 K2 i
  13. #include <NXOpen/Session.hxx>
    . ^; B# H8 I' [% U+ `$ ]) r! I8 b
  14. 2 Z! n% E$ Y1 ]
  15. using namespace NXOpen; // <== Very Important!
    9 C& G; w2 z/ ]2 ~

  16. $ f% J3 O1 o  H7 f/ f9 B4 ~& E! `
  17. #include <stdarg.h>
    8 e) k" X0 F$ j

  18. . v; ^8 M3 [% U/ q, w% W0 l$ E
  19. static void ECHO(char *format, ...)/ t! c' y, k4 p
  20. {' T/ q6 p; J3 `5 h' N
  21.     char msg[UF_UI_MAX_STRING_LEN+1];, e0 h' O4 l- J! Y! K5 p
  22.     va_list args;9 p; J* {  @* ?% u  E8 w+ C0 G
  23.     va_start(args, format);
    7 ^8 |! z$ e' s
  24.     vsprintf(msg, format, args);
    # B0 o/ `+ g9 ?3 s' T
  25.     va_end(args);
    ) {, j  R$ F/ A- [' j) O
  26.     UF_UI_open_listing_window();( P% u3 h- c0 G
  27.     UF_UI_write_listing_window(msg);; p, t/ @( z% z6 q1 W8 }0 |- N
  28.     UF_print_syslog(msg, FALSE);4 I, B3 {* S% d. ?6 H) A4 ^
  29. }) J1 T7 I% z3 s- [9 D
  30. " C+ p1 z; O& B* p
  31. #define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))1 ]# D0 D7 K& i& C/ m7 O  Y! R

  32. * Y* ]0 g; Z8 O' {  }8 L; E" F( Z
  33. static int report_error( char *file, int line, char *call, int irc)0 B7 {5 Y4 g; S- k
  34. {+ I) _0 q+ k; U& E9 J
  35.     if (irc)
    4 \' V( x$ t/ P% k( z4 H# w' N
  36.     {: V3 K- s( [3 u4 C, r
  37.         char err[133];2 r7 r8 h: A/ ~, P7 e

  38. 6 t+ d& q/ y$ U9 u6 c" k
  39.         UF_get_fail_message(irc, err);
    0 i% d7 ~# A& a& C5 S: |. ?) u9 R' z
  40.         ECHO("*** ERROR code %d at line %d in %s:\n",
    ! b7 s. h# I1 \. f4 k: _
  41.             irc, line, file);
    ) K# [5 B/ |+ J8 N; X! q/ `9 ?5 m
  42.         ECHO("+++ %s\n", err);% ^" x. {& q/ z7 F3 X0 K
  43.         ECHO("%s;\n", call);
    7 Q5 G1 k* P' W3 U5 O4 }+ G4 B* p
  44.     }$ u' j8 K2 V$ W" T$ P- M6 A
  45. & \9 M, C' \  E  z5 _" T8 {
  46.     return(irc);
    2 V  Y: x( q: e4 T" C
  47. }% |$ Z( O7 r, q, s! v5 r

  48. $ P% d9 G/ c# ]+ P1 b

  49. 8 ~9 h4 o* U; ~+ {) C* u, U( E
  50. static void do_it(void)
    / ^. x. D  U5 z% N6 O1 e
  51. {
    ' V% \' N; H* g8 M
  52.     Session *theSession = Session::GetSession();# k5 }9 C( C$ W, s! h% Z! a8 T7 F
  53.     Part *workPart(theSession->Parts()->Work());6 ]6 Z9 W: ]( M1 M
  54.     Part *displayPart(theSession->Parts()->Display());1 Q; x9 k6 R, d8 `( D
  55.     : R! f6 @; m3 M' T6 f* i/ `7 t" c
  56.     PDM::SessionSettings *sessionSettings1;
    ) v9 P! K' [3 D6 k- T% G
  57.     sessionSettings1 = theSession->NewDatabaseSessionOptions();
      o& E7 f1 e3 x( z- S
  58.     6 D7 }( V* C' a1 Q
  59.     NXString CurrentGroup;
    9 d; }% `& Q$ A* J, H
  60.     CurrentGroup = sessionSettings1->Group();  q$ n$ s4 ?4 s7 m5 a' w
  61.     0 j6 r2 i! W: ^5 Z0 Q
  62.     NXString CurrentRole;' k) t7 L/ @- y
  63.     CurrentRole = sessionSettings1->Role();
    1 u; Y  A1 c4 n! }. v3 l* g

  64. 5 Q1 z% [9 t' {6 M& m
  65.     theSession->ListingWindow()->Open();
    - O- U( ~0 Y  {. N: x
  66.     , H5 U# h' x& \7 _4 c
  67.     theSession->ListingWindow()->WriteLine("Current Group: ");, p7 O: K- k$ N5 L3 W0 J' ]' c$ ?
  68.     theSession->ListingWindow()->WriteLine(CurrentGroup);# |6 P3 M$ j$ @* D- f6 X% T
  69.         9 ^: T' A( g$ ?: n3 j  @+ A
  70.     theSession->ListingWindow()->WriteLine("Current Role: ");    3 U0 J: j$ a! p2 `4 o5 w/ j
  71.     theSession->ListingWindow()->WriteLine(CurrentRole);, P8 z7 s( m3 l! \0 Q& ]- \

  72. / S5 i  W/ W! F# Q: C1 C7 h
  73. }  h0 {3 u  H3 h; @8 d/ u5 X5 c6 M' ^

  74. 1 C1 D# C& Z  k: _4 U& y
  75. /*ARGSUSED*/
    0 F1 R  h' D- Q" O7 X8 i
  76. void ufusr(char *param, int *retcode, int paramLen). C" Q5 i( F- q9 t9 s6 {2 A# Q
  77. {
    1 r. X! K+ A7 n1 h/ g% Y. G- F
  78.     if (UF_CALL(UF_initialize())) return;% }5 |+ m; g" E" r, V' W
  79.     do_it();
    / A: v: M9 S; \. X. O7 ]6 ^3 t: f
  80.     UF_terminate();
    5 `5 e* P4 ^9 E
  81. }
    + N* S: b0 A1 \2 r: L6 ^: Z
  82. # v- C8 F! b2 P. }
  83. int ufusr_ask_unload(void)
    0 j: N, ?: l3 c6 ]7 ]7 K* x4 E, g
  84. {; Q0 Z# [/ H# a: B, K
  85.     return (UF_UNLOAD_IMMEDIATELY);
    & m- ]/ @2 L  D& x5 n/ A' L
  86. }( u. O! M! M& Z0 {
复制代码
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 doTeam.tech
回复

使用道具 举报

全部回复2

yuleihz 发表于 2016-4-16 23:42:58

yuleihz 沙发

2016-4-16 23:42:58

主要体现在哪些地方吗
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复 支持 反对

使用道具 举报

licxsw 发表于 2019-12-10 17:53:21

licxsw 板凳

2019-12-10 17:53:21

为什么拷贝代码 会产生一连串乱码呢?是防止拷贝吗?
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了