PLM之家PLMHome-工业软件践行者

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

  [复制链接]

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

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

admin 楼主

2013-11-6 19:00:16

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

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

x
在集成环境中,NXTeamcenter的集成中,获取当前用户的组group 和角色 role。  W7 V" P1 k2 z. V1 Y9 k- _
3 u& r6 R  H3 j6 }
  1. #include <stdio.h>
    1 @9 s: H% ~6 k, q8 d
  2. #include <string.h>( v3 K! V! Z+ M# V
  3. #include <uf.h>
    & S4 X5 \" e6 }$ {5 r. X
  4. #include <uf_ui.h>; \. \! ]- q% |$ O

  5. . T. b) K6 G6 K3 u( i4 p4 ~' U( _
  6. #include <NXOpen/NXException.hxx>
    0 A; ], v+ J- L6 s2 q" S7 V
  7. #include <NXOpen/Session.hxx>
    3 v, X6 X9 x2 V# V
  8. #include <NXOpen/ListingWindow.hxx>
    7 ~4 q  S, ?9 U+ ?( g
  9. #include <NXOpen/LogFile.hxx>
    3 i- q0 w* @' U: X
  10. #include <NXOpen/PDM_SessionSettings.hxx>8 x! q; b3 l8 J2 s
  11. #include <NXOpen/Part.hxx>
    8 t6 o; R* g  Z+ A- f
  12. #include <NXOpen/ParTCollection.hxx>& {* \% L, w4 m  A% y( L3 f! ~, h
  13. #include <NXOpen/Session.hxx>
      U: M2 }- n1 [' ~
  14. 1 l/ `" K. X  t3 |+ f% A
  15. using namespace NXOpen; // <== Very Important!3 t9 j/ |0 Q4 R; L7 F4 L) Y$ }& t  C

  16. ) y) T0 Q: R5 ^7 G9 S# _  e
  17. #include <stdarg.h>& M3 F) i7 l  L' ^1 L+ V( F7 Z

  18. ) ?$ y5 o, Q1 }+ _, ~! A
  19. static void ECHO(char *format, ...). ^$ U7 n# t6 f8 F
  20. {0 h# }1 E! E. W, I+ p8 x" U+ O8 o
  21.     char msg[UF_UI_MAX_STRING_LEN+1];
    * g) f8 z2 `4 e3 C' z5 {+ H
  22.     va_list args;0 z7 H" ~: V" g( ~$ o- |: r
  23.     va_start(args, format);( L" s1 F* `' |. f9 j3 n
  24.     vsprintf(msg, format, args);! {% a0 [/ s& c' |% k: y
  25.     va_end(args);
    7 [! e7 q8 o1 C
  26.     UF_UI_open_listing_window();3 B8 n; R# c9 s9 }- T- j
  27.     UF_UI_write_listing_window(msg);  Z/ Z* k! K( T; j1 v
  28.     UF_print_syslog(msg, FALSE);$ Q$ Y2 j4 D2 |* D: Q
  29. }' L. Z5 X7 `$ O7 Z

  30. 6 Z6 X+ u6 l9 ?  v4 c
  31. #define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))
    ( {" K4 h" B" r6 |' x

  32.   a6 v% Z9 i1 }+ l9 p6 C
  33. static int report_error( char *file, int line, char *call, int irc)
    8 a) B' k, m8 [$ s. ~3 ~' L
  34. {
    ( ?3 S) A3 s* N  |4 y
  35.     if (irc)0 w2 L( O! g/ R& U5 e$ R& k
  36.     {2 ~5 I) g, V3 @/ J! p
  37.         char err[133];6 D" _2 s, r, C
  38. 8 c/ J3 W& f2 V6 ~5 ~7 a$ @
  39.         UF_get_fail_message(irc, err);$ @$ l: U3 `% `( G/ l6 O) s
  40.         ECHO("*** ERROR code %d at line %d in %s:\n",
    # K# I+ T+ E6 J- T* R7 v" C
  41.             irc, line, file);+ t+ E4 _3 o; Q7 M# ^. l' j
  42.         ECHO("+++ %s\n", err);
    : @: [$ o/ B* p$ @0 c: O
  43.         ECHO("%s;\n", call);9 u# l! E' \) x
  44.     }
    7 @" E8 X) G- t* t

  45. 0 G2 [( ^. M  v4 {' |
  46.     return(irc);* `6 G" v/ d5 g  I6 U1 J  B. S
  47. }8 }& s; e+ v) `) @! V+ Z# }

  48. % C4 t) o7 [: _

  49. . }0 ]% T+ `& d' e8 d0 B
  50. static void do_it(void)3 F; |1 R4 B. {) P  a
  51. {
    , O6 ?9 z& u+ k0 `5 T4 P' l; W6 `5 J
  52.     Session *theSession = Session::GetSession();/ }1 I! T$ f3 }% _3 U, w$ @7 y
  53.     Part *workPart(theSession->Parts()->Work());# c. m& y5 A  M5 z% {" Q
  54.     Part *displayPart(theSession->Parts()->Display());
    1 i6 O7 V: o3 k; D6 L$ [5 R
  55.     5 C6 g/ O+ ?1 ]% X( M7 J+ o* p
  56.     PDM::SessionSettings *sessionSettings1;
    ( I/ R  w* S/ [1 z. H! L" k( A8 J
  57.     sessionSettings1 = theSession->NewDatabaseSessionOptions();
    : V( p3 p% {; k: H: o  V
  58.    
    4 e4 H3 @+ e% b) Z8 O
  59.     NXString CurrentGroup;7 J6 W1 ]+ k4 x
  60.     CurrentGroup = sessionSettings1->Group();
    , S7 J- b" F* j8 g9 P+ Y* F, ]+ M3 `
  61.     9 n- Z% V% g1 l% [. B
  62.     NXString CurrentRole;
    ; Y: r7 q8 O, ?4 _2 p) ]6 i
  63.     CurrentRole = sessionSettings1->Role();. ?! I% E, Z1 D' q  W# z/ v7 X

  64. & X) O) d' C( k& L& b! C
  65.     theSession->ListingWindow()->Open();
    ; g# p* s/ r  c
  66.    
    ! C8 l$ P. ~5 E) L5 N! x
  67.     theSession->ListingWindow()->WriteLine("Current Group: ");
    ) E3 R  ~  L8 [9 O
  68.     theSession->ListingWindow()->WriteLine(CurrentGroup);' p, t7 b7 b- n! U* r9 J
  69.         2 R3 C+ l3 O0 e: \: f. z1 Z
  70.     theSession->ListingWindow()->WriteLine("Current Role: ");    $ X5 |& |8 u6 C) N7 e& c
  71.     theSession->ListingWindow()->WriteLine(CurrentRole);. s9 U  A7 M1 [8 s7 r% l8 U
  72. / ~9 B3 c. P" B6 @: p  ?
  73. }
    - `: ?3 q2 F* {$ v

  74. ( @5 V3 a' {1 c# q& \
  75. /*ARGSUSED*/$ {% W, d. [4 D$ k6 r+ P0 i
  76. void ufusr(char *param, int *retcode, int paramLen)  |, n% t; D5 K. `
  77. {$ @  `" U: }; W) K$ F& |
  78.     if (UF_CALL(UF_initialize())) return;
    , N8 y3 ^' \9 v  I# |% S
  79.     do_it();
    ' n* d4 }9 w  A* y* W4 X# t
  80.     UF_terminate();& T- ?% g: b* M; Y# ~
  81. }, d4 M# U: w3 X% K" K0 e8 D

  82. 7 V/ z! E, T4 m+ l
  83. int ufusr_ask_unload(void)  N0 G4 y  u' x; u8 B. _8 a
  84. {
    . p  d  D7 |. u7 h) ?9 f
  85.     return (UF_UNLOAD_IMMEDIATELY);
    : a2 h8 r, C2 ?8 J- @8 E0 h
  86. }2 g1 G% m1 ?! Z- K* x6 D# I
复制代码
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了