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

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

  [复制链接]

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

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

admin 楼主

2013-11-6 19:00:16

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

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

x
在集成环境中,NXTeamcenter的集成中,获取当前用户的组group 和角色 role。
: v7 S# K  k+ @* k5 g
7 I2 G9 @; R4 b+ J/ P
  1. #include <stdio.h>
    5 v& z. H1 ~$ B
  2. #include <string.h>+ S' q0 \0 b0 @5 J
  3. #include <uf.h>' N* \: o. X$ L
  4. #include <uf_ui.h>
    7 ^, l/ b* u5 b8 G4 ~/ k

  5. 9 U4 F1 g3 w8 m. P4 d
  6. #include <NXOpen/NXException.hxx># |' p  @; m; q. m5 {# p0 D
  7. #include <NXOpen/Session.hxx>' Z2 W7 A" I; {* t/ i$ {- }
  8. #include <NXOpen/ListingWindow.hxx>
    . Z: v+ x6 t$ j2 s  b; ?! C) q+ X
  9. #include <NXOpen/LogFile.hxx>
    ' _/ x+ e: L9 F2 l
  10. #include <NXOpen/PDM_SessionSettings.hxx>
    % m: O: [: H* e$ I9 ~2 y
  11. #include <NXOpen/Part.hxx>
    ) C. y( ^. P- k# k( m2 N! r
  12. #include <NXOpen/ParTCollection.hxx>
    4 \% D" n, r! Y4 |
  13. #include <NXOpen/Session.hxx>) E7 h1 W. e# L6 ^! n5 Y' N4 K9 |3 Q  L

  14. & H, l$ ~& V* E! r! t% {
  15. using namespace NXOpen; // <== Very Important!$ ?( b/ n6 F/ ^

  16. , R4 G3 I- b) r! H$ K
  17. #include <stdarg.h>
    % t4 I# U: O6 ^. d, k5 C9 b0 r

  18. $ l, @; m2 }; e
  19. static void ECHO(char *format, ...)
    8 n% f/ Q  P' T6 }# V
  20. {- N7 j. o& J) V0 j# H
  21.     char msg[UF_UI_MAX_STRING_LEN+1];' u1 f) G+ ]0 f3 [; T2 S( |
  22.     va_list args;6 D4 T) t+ P7 ]8 N" `) ]( g
  23.     va_start(args, format);
    " l. l4 P/ ?' k/ E
  24.     vsprintf(msg, format, args);
    ( l9 l& l7 x, g% `0 L
  25.     va_end(args);( x( B: T5 `) C# F' ^( _! x2 Q
  26.     UF_UI_open_listing_window();( p2 i- [- y8 m0 C5 t
  27.     UF_UI_write_listing_window(msg);
    8 a$ i* r" g6 w0 ~/ U" \% D
  28.     UF_print_syslog(msg, FALSE);
    ' H4 e: _9 p3 w
  29. }$ F9 D# I( a/ u: r4 {  \

  30. * z# E  C) j" @
  31. #define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))
    ) D3 Y" U5 B- D+ D
  32. $ A" W! V7 O) C) H* `2 N" s
  33. static int report_error( char *file, int line, char *call, int irc)8 o" j: B0 H8 X4 |0 P
  34. {9 _/ \$ G9 ~+ v/ J( S
  35.     if (irc): S5 D9 f- C& q0 @1 P/ A
  36.     {0 [  a+ O( l& q' e* U
  37.         char err[133];
    8 c8 O+ W" x# _, Z4 @3 R
  38. * b& z- X1 X# K5 _
  39.         UF_get_fail_message(irc, err);
    : d/ V, }  ~, k4 q/ l4 l6 i
  40.         ECHO("*** ERROR code %d at line %d in %s:\n",
    8 O8 H* e& |/ @
  41.             irc, line, file);
    + W3 o/ b& {7 X  u, E
  42.         ECHO("+++ %s\n", err);
    ) G* [/ p' D9 ^
  43.         ECHO("%s;\n", call);7 k8 a8 K9 _& J, o5 H& G) n
  44.     }* e) E3 E+ S& ^# e  J7 ~+ t+ I# s( ?/ A
  45. ( i" [( N& h3 k# H! v  ~
  46.     return(irc);* s9 y1 l" e* F9 p7 i$ I
  47. }2 w) C  N5 c- G$ H$ q8 [

  48. ) C9 U" W; Z& {; j! R9 W7 ^
  49. 2 Q% u: c0 H' ~. |9 i
  50. static void do_it(void)  C2 M/ \  b2 e" ~/ n+ c( }
  51. {' V. k  f, g& {' s
  52.     Session *theSession = Session::GetSession();
    0 J) k# z* a' y8 n$ i, ^* J) q( @7 g
  53.     Part *workPart(theSession->Parts()->Work());5 z- g  _+ }' x
  54.     Part *displayPart(theSession->Parts()->Display());: G+ v, j1 W1 ~1 e8 d* p
  55.    
    9 }$ L0 ]5 J7 v* W/ V; |
  56.     PDM::SessionSettings *sessionSettings1;& H  K% t4 N! u0 n
  57.     sessionSettings1 = theSession->NewDatabaseSessionOptions();
    / h6 N0 t9 r7 J& |% i
  58.     6 ~! U+ ~) {; L1 l
  59.     NXString CurrentGroup;6 w3 o; g( C8 p6 t
  60.     CurrentGroup = sessionSettings1->Group();
    1 p$ q" `5 O: J  N
  61.    
    2 S: s4 o! p) E) h. h" P  p7 |! R
  62.     NXString CurrentRole;4 H# ^' ^) C2 d: e0 l
  63.     CurrentRole = sessionSettings1->Role();3 [# ?; }& B+ R8 E' [7 X
  64. 1 k+ }7 Q" S# E; B% B) d6 m3 y8 W
  65.     theSession->ListingWindow()->Open();
    / a" Y' p' T" I
  66.     ( \) Z/ W, w5 Z4 y) F/ X1 t( Q
  67.     theSession->ListingWindow()->WriteLine("Current Group: ");
    & g3 z' k. T, u; M) p4 X3 N+ l# W# `# q
  68.     theSession->ListingWindow()->WriteLine(CurrentGroup);
    + B* o' L$ S+ s, t
  69.         
    4 C" t! [# A* |+ l2 S
  70.     theSession->ListingWindow()->WriteLine("Current Role: ");    ( c5 L' j: \6 ?) q9 U* i
  71.     theSession->ListingWindow()->WriteLine(CurrentRole);6 k4 {+ h. r+ K4 c
  72. + g9 T$ i, K& Z- ~, z3 S
  73. }; c5 ~+ `" g% T: W8 H

  74. 4 Z5 @! X) W- j9 \6 J: X
  75. /*ARGSUSED*/
    ! a/ C- c* _, U4 g, R
  76. void ufusr(char *param, int *retcode, int paramLen)
    ' L0 K, I% ~+ {1 l" F8 G
  77. {  s/ e5 P; m% U( b% `
  78.     if (UF_CALL(UF_initialize())) return;
    1 j( F; H: K/ z1 `+ Z0 f3 Q6 ]. Y1 @
  79.     do_it();
    ( Z. q4 J" i/ E) z
  80.     UF_terminate();
    . P$ W7 x& ]  X) C
  81. }
      ]: `' S) `; H, H
  82. 0 Y  K9 U7 z3 m) ?. z, f
  83. int ufusr_ask_unload(void)( e# E4 [- N5 S3 _- q
  84. {5 Z/ L, R) Q+ t, X$ j- k
  85.     return (UF_UNLOAD_IMMEDIATELY);$ i" k/ P  p: K( \$ i5 s
  86. }
    ' y# p/ M+ H$ Z( o* 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二次开发专题模块培训报名开始啦

    我知道了