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

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

  [复制链接]

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

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

admin 楼主

2013-11-6 19:00:16

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

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

x
在集成环境中,NXTeamcenter的集成中,获取当前用户的组group 和角色 role。
. W) q, f) v8 e2 f+ L
  }, ?; N& I; i* Z! H' j
  1. #include <stdio.h>
    ( T; h: k' U# X
  2. #include <string.h>
    4 ]" `. @3 L2 R' U5 s
  3. #include <uf.h>
    " ^! o$ h  n9 _$ ~1 M
  4. #include <uf_ui.h>6 a8 C! I6 \- h/ P4 j3 B

  5. / p: m3 q; X* R9 S* G4 M
  6. #include <NXOpen/NXException.hxx>
    * [) P: \5 G6 B0 F3 i# ?) I4 q9 @
  7. #include <NXOpen/Session.hxx>
    & F' i7 H; e, B6 x" N* u. B" V
  8. #include <NXOpen/ListingWindow.hxx># i( Q2 [' o$ x  p: x
  9. #include <NXOpen/LogFile.hxx>
    ! D& C" P" w1 B5 Z4 \3 C
  10. #include <NXOpen/PDM_SessionSettings.hxx>9 L, a1 d- M4 A: T; J! q& ?
  11. #include <NXOpen/Part.hxx>$ \# i$ o# G3 H
  12. #include <NXOpen/ParTCollection.hxx>
    2 N" `: k2 S( {( U1 n4 e, R
  13. #include <NXOpen/Session.hxx>( \/ r; {, {+ V2 r* S
  14. 5 ~; X2 I& i; p+ d1 D
  15. using namespace NXOpen; // <== Very Important!  u8 T1 m' y! d$ i
  16. 4 R1 l2 P! o! X$ s
  17. #include <stdarg.h>
    , x7 G; X+ R+ O

  18. 9 ]: `8 X" H2 w3 C9 ~* s( L
  19. static void ECHO(char *format, ...)1 D+ `4 h3 m6 f
  20. {, Q- \+ ^, _* M" ?% x2 s
  21.     char msg[UF_UI_MAX_STRING_LEN+1];8 w! j% `: Q6 J( U( |
  22.     va_list args;6 y2 j# n  i7 Z* S
  23.     va_start(args, format);- z: J. \0 G) b6 @: P, i- ], @
  24.     vsprintf(msg, format, args);
    * G' D  x% `7 I/ ]
  25.     va_end(args);
    8 ~0 [2 A  k$ c& r$ N
  26.     UF_UI_open_listing_window();
    , j; s+ K/ u8 a- h
  27.     UF_UI_write_listing_window(msg);
    0 v$ f9 n7 x0 k0 e  K  A
  28.     UF_print_syslog(msg, FALSE);' ~! x( E# v6 q& y
  29. }
    % H0 w' E! l, W  D5 P2 q* k, N2 |
  30. 8 _; R6 E# ]+ Z8 y( t) [' e
  31. #define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))7 f7 d5 a; a* M  _8 L$ z' `% w
  32. 5 T2 Q, O' U/ ^' z8 s3 Y$ U
  33. static int report_error( char *file, int line, char *call, int irc)& ^  M9 I# b8 N' S' j# w3 b& y" `) p4 o
  34. {
    , s0 h, \. C" s1 q7 Y3 L" y5 e# d
  35.     if (irc)
    ) [4 y! L9 i0 G0 J, @# D
  36.     {
    0 ?3 I' [2 i2 O5 o0 ]! C: g( N
  37.         char err[133];, j+ \* Q8 ]+ V1 J' o8 O( V& _
  38. / w' o! ~3 L9 v. U
  39.         UF_get_fail_message(irc, err);" a; b+ Q* q7 F
  40.         ECHO("*** ERROR code %d at line %d in %s:\n",
    6 }: u( C1 p9 G: |$ ?
  41.             irc, line, file);
    3 q6 N( z3 e0 l
  42.         ECHO("+++ %s\n", err);4 T9 d5 O1 O; {" a( @4 s1 n
  43.         ECHO("%s;\n", call);1 e6 @( c9 l' h# N# e# s8 E
  44.     }
    : A' O' K3 i. x- c  z
  45. % f, X6 t' @/ Z! r- p8 z
  46.     return(irc);
    ' |: o. R8 S. @
  47. }
    ' i5 Y" [' J! ^3 B7 X
  48. ! t; V. ]' f/ f# w: U" m( x5 ?
  49. + F* I. S/ g  t- |& l+ J: L# g% ^
  50. static void do_it(void)& p* P0 m" T6 }. E
  51. {
    ( b! \- f" U% |
  52.     Session *theSession = Session::GetSession();
    ( w" y3 E$ D1 L1 M0 }1 F
  53.     Part *workPart(theSession->Parts()->Work());2 B" a3 O# Q0 q  a9 c
  54.     Part *displayPart(theSession->Parts()->Display());
    # W/ z6 A9 e# @9 Z3 U, l
  55.     ! R% r4 {. b  @. H
  56.     PDM::SessionSettings *sessionSettings1;
    / r: z2 B* b# f- C( W& l
  57.     sessionSettings1 = theSession->NewDatabaseSessionOptions();7 @' I# ?; G1 q2 F, _9 f8 I: Y
  58.     0 S6 M5 l) S, ?% L% t" W/ _
  59.     NXString CurrentGroup;' z' e" |' s( a2 [" K
  60.     CurrentGroup = sessionSettings1->Group();
    5 E7 ]( ?. x* t) i
  61.     , ?+ @  X" [8 O( H! U- R* j
  62.     NXString CurrentRole;
    0 S5 |, D5 m4 i' @5 c0 }
  63.     CurrentRole = sessionSettings1->Role();
    3 Y5 r$ v  P" r$ @% f

  64. 4 L" c4 _; ^& ^- x/ I% b! ^2 s
  65.     theSession->ListingWindow()->Open();9 k; |" E& o* ^) C  S8 R5 B
  66.     ( L6 w; g& m& G& G0 G6 O
  67.     theSession->ListingWindow()->WriteLine("Current Group: ");9 j+ v# I+ c; M  t
  68.     theSession->ListingWindow()->WriteLine(CurrentGroup);
    4 t, b, l8 U- i3 O
  69.         
    4 R. [1 b- u* J$ j- Z
  70.     theSession->ListingWindow()->WriteLine("Current Role: ");   
    2 V& A3 R% B1 Y6 v# G3 K- k+ j
  71.     theSession->ListingWindow()->WriteLine(CurrentRole);! {% I% f1 k/ j& ^4 P

  72. ' Y& [6 c+ m( }( B+ i- |1 Q+ n
  73. }
    ' U; \6 S! V, l5 U# ~" F6 p
  74. 0 `7 z) L0 T; Z; X9 H
  75. /*ARGSUSED*/
    - ?' b: s3 G6 h/ e$ G' F; S. {8 d
  76. void ufusr(char *param, int *retcode, int paramLen)! Z, d0 L; l( i
  77. {1 [& a$ n6 ~3 r& z
  78.     if (UF_CALL(UF_initialize())) return;
    ; s$ I( C3 {4 K8 j2 h6 j! [' H" t6 f
  79.     do_it();
    6 x" n* Y$ M( @# i- W. G
  80.     UF_terminate();
    : T' }% a+ b. F" ], ?, x
  81. }- E0 @2 H1 H1 B

  82. " m, \" ~7 k0 r+ H7 T
  83. int ufusr_ask_unload(void)
      K* w  m/ H2 ^
  84. {
    9 b  }# @+ c5 i" ]$ W
  85.     return (UF_UNLOAD_IMMEDIATELY);" s9 i  l9 O5 b# t+ p
  86. }
    ; U- O8 o1 [6 z: i# [! V1 Z" V
复制代码
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了