PLM之家PLMHome-国产软件践行者

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

  [复制链接]

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

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

admin 楼主

2013-11-6 19:00:16

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

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

x
在集成环境中,NXTeamcenter的集成中,获取当前用户的组group 和角色 role。
) S4 P1 T( g8 `0 @" `; o. `4 _
$ @* R% H' _6 M: q/ h) M
  1. #include <stdio.h>  F# r3 A! S- f; S
  2. #include <string.h>4 a3 m# }. Q+ W: a6 I
  3. #include <uf.h>
    8 _6 p4 q2 q* w) A
  4. #include <uf_ui.h>
    7 L. R9 d- a, E
  5. 4 n% S6 L0 t: u8 f0 t" C3 N
  6. #include <NXOpen/NXException.hxx>/ A! v- z+ @) S4 s- t
  7. #include <NXOpen/Session.hxx>- e& M$ K* i; K
  8. #include <NXOpen/ListingWindow.hxx>
    & i8 {& s. N/ p, o
  9. #include <NXOpen/LogFile.hxx>
    / _7 c; |2 ^! _1 ~1 p
  10. #include <NXOpen/PDM_SessionSettings.hxx>+ p; K" \! `, N6 y' x+ }
  11. #include <NXOpen/Part.hxx>
    * Z2 G8 A, X" C* r' k
  12. #include <NXOpen/ParTCollection.hxx>
    5 h( o+ m* Y( Z' ?+ |& c
  13. #include <NXOpen/Session.hxx>
    % d+ O" W4 c: n+ S! z% x

  14. " E- g! F% R: n2 w. T- s6 f
  15. using namespace NXOpen; // <== Very Important!
    " j  R/ u6 R& M1 d$ a/ r/ p' C8 \9 j

  16. ; C2 y- h. W! V# {1 i& S6 f* W: @" X3 q
  17. #include <stdarg.h>
    * ~  w" M4 q) M; x9 v# U

  18. # E& O- B7 Q$ Q1 l: f( J
  19. static void ECHO(char *format, ...)
    4 B# {, W7 h* h8 C6 A9 ^5 f  i, c2 ~
  20. {
      L+ C" w* U' l
  21.     char msg[UF_UI_MAX_STRING_LEN+1];. h& G9 n8 x' T. u  `
  22.     va_list args;
    6 g' W! _: i3 f! L4 V- T9 p1 j! D
  23.     va_start(args, format);. d" ]4 ~4 Z8 D- t
  24.     vsprintf(msg, format, args);6 G6 }6 y5 s( J2 i( ^" s
  25.     va_end(args);
    9 b/ a9 e" x5 ]- }3 o  n
  26.     UF_UI_open_listing_window();/ Q( o+ M1 k! \* o  U2 a
  27.     UF_UI_write_listing_window(msg);
    ; D6 w* V% ~, p5 r4 o, v1 \
  28.     UF_print_syslog(msg, FALSE);# H+ M9 B( h8 E# L# Q4 e
  29. }
    + b) e0 }9 ]3 l5 j
  30. 7 W8 j+ j; p" c1 k. S$ Y
  31. #define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X))), x9 D+ D+ K) y0 y4 _% Q
  32. 5 z- b* t+ j7 I# L8 N) Y
  33. static int report_error( char *file, int line, char *call, int irc)
    & ?# L/ A8 x+ {* I# S) {' n
  34. {& W8 x) I. Z0 ~- A" ?0 @9 H
  35.     if (irc)$ D+ g+ i' b- m* ]5 l. C
  36.     {
      L7 s) ?. v1 k" s
  37.         char err[133];
    + |6 m( s; f0 \5 w# g2 t
  38. 7 n( ~* l" U+ y) r! M
  39.         UF_get_fail_message(irc, err);
    0 y) Y! y/ ^/ {$ r
  40.         ECHO("*** ERROR code %d at line %d in %s:\n",8 _. j3 S. p; q$ r2 X3 C' y! p' ^
  41.             irc, line, file);
    3 O* ~" [) A( t* W" I3 w4 q, J
  42.         ECHO("+++ %s\n", err);
    ) X$ {6 E; I6 D9 }( |
  43.         ECHO("%s;\n", call);
    8 y5 [+ t* X+ f' U: T! {
  44.     }
    ( O: D' S' S  Z* C. [2 _- m
  45. 7 g- P  X) A  g7 w
  46.     return(irc);
    8 s1 y7 H6 b: A
  47. }
    - x1 j/ ^9 q( H" e2 i; g# k

  48. + s/ |  a% T; ~( I) |! A" z8 |
  49. " D( A3 G- |- O: J( M* g
  50. static void do_it(void)
    - e( b4 H  S, r, y4 y
  51. {
      z" p7 p& `% |, C# i
  52.     Session *theSession = Session::GetSession();  A  K5 R: S) K% }8 d9 v0 Y% @
  53.     Part *workPart(theSession->Parts()->Work());" j2 [) y/ S# ^' C
  54.     Part *displayPart(theSession->Parts()->Display());; X5 |: g+ S/ z6 M2 b7 b# k
  55.    
    ) b# u) [: }, E+ v5 Q& N- X( G
  56.     PDM::SessionSettings *sessionSettings1;' Z9 R$ Z8 Y' t4 W
  57.     sessionSettings1 = theSession->NewDatabaseSessionOptions();* E7 L3 i/ i" r, v2 _  N, \( ^7 ?
  58.     , h9 t8 C3 ?" ^# a" w2 w# v: |
  59.     NXString CurrentGroup;& T; ]  G. j8 k
  60.     CurrentGroup = sessionSettings1->Group();
    ( }4 i+ {! p1 Z: s- Q5 M( {
  61.       F- `+ J0 P. B5 l* n
  62.     NXString CurrentRole;
    * `2 S$ I3 {9 `5 r8 z
  63.     CurrentRole = sessionSettings1->Role();- Y: B$ l: M7 Z- ]
  64. & s1 c; p4 S- J/ F
  65.     theSession->ListingWindow()->Open();* y; l! J) R( e9 ?8 r! D  @7 W
  66.     $ m, [) r6 ?! J7 P4 Z* K
  67.     theSession->ListingWindow()->WriteLine("Current Group: ");
    % U3 s. b9 c. \) I8 C; y" c
  68.     theSession->ListingWindow()->WriteLine(CurrentGroup);+ R% b& h' S2 p
  69.         # R( t& u$ N! v9 k
  70.     theSession->ListingWindow()->WriteLine("Current Role: ");    + \2 X5 k% d% _- y
  71.     theSession->ListingWindow()->WriteLine(CurrentRole);$ M8 y1 F# @- Y1 T& U

  72. & n6 W) n4 e1 k# i4 G
  73. }* e( |3 s8 C6 f0 o  v0 U" g
  74. ; b; g/ ~" U2 @* {; U8 ^
  75. /*ARGSUSED*/4 d5 u) }. ^( W, a; ]
  76. void ufusr(char *param, int *retcode, int paramLen)
    : h" y/ I5 H% F* s7 P$ t+ s
  77. {, e* G! B" s& G/ q( p& r% B
  78.     if (UF_CALL(UF_initialize())) return;
      d( Z! R7 F9 C( c
  79.     do_it();
    $ I1 b; V  N# G1 g( T0 ]
  80.     UF_terminate();- d. T0 K% g3 Z1 y0 r
  81. }
    / M; o& _' [8 M
  82. 9 T8 ~, e# |+ h
  83. int ufusr_ask_unload(void)# P+ V& e& d: r4 D8 U4 ?% S
  84. {
    * d/ \7 }/ |" |3 ]1 {* ^# Y; t
  85.     return (UF_UNLOAD_IMMEDIATELY);4 U& ~8 C6 |) e. i
  86. }3 h& Z4 L, M# w2 A) @- a
复制代码
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了