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

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

  [复制链接]

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

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

admin 楼主

2013-11-6 19:00:16

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

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

x
在集成环境中,NXTeamcenter的集成中,获取当前用户的组group 和角色 role。
0 Q: x3 Q2 _$ @" T6 S, ]
/ ?/ z( B  M+ e" p* B
  1. #include <stdio.h>
    * @* C9 G' ^& @! f) y3 q, w
  2. #include <string.h>
    6 q5 c+ E4 [7 B; H4 H
  3. #include <uf.h>2 u2 z# c4 U- `6 W) L. @) b. D1 ?
  4. #include <uf_ui.h>9 S& q- e5 w8 N  [4 ?: T
  5. * P2 V1 p' v$ i9 g6 Y
  6. #include <NXOpen/NXException.hxx>; ?/ i# \2 V; g9 B' O
  7. #include <NXOpen/Session.hxx>
    " |6 U4 e+ W+ D) L
  8. #include <NXOpen/ListingWindow.hxx>
    . D: f8 `, g7 j7 c4 Q, o; q
  9. #include <NXOpen/LogFile.hxx>
    ) Z8 l. l$ {: r! m! Y7 K- B) ?
  10. #include <NXOpen/PDM_SessionSettings.hxx>9 K; n! p% }+ {& U  H* h
  11. #include <NXOpen/Part.hxx>: b' b7 T! B1 T: y
  12. #include <NXOpen/ParTCollection.hxx>
    6 W1 S- |7 ?' I, d8 x
  13. #include <NXOpen/Session.hxx>
      A4 i. W" }& n# g( C' e* C$ e
  14. : w2 \; ~, S" z' Q( f- ~
  15. using namespace NXOpen; // <== Very Important!9 q* O0 c. s: o+ [- v9 C

  16. 1 E! a" |; a& x+ [. \6 C* A# ?
  17. #include <stdarg.h>
    0 W" @. {  y' v' X

  18. : v6 B/ v! M# }9 Y9 p# ~
  19. static void ECHO(char *format, ...)* |, q; B* ?2 X4 z* ~6 R
  20. {( K0 D6 V. e/ Q, z" q! B
  21.     char msg[UF_UI_MAX_STRING_LEN+1];
    ( b: v$ X  |0 X9 q% a
  22.     va_list args;
    8 q) V- W8 c& ~! d4 k6 |/ B
  23.     va_start(args, format);" g1 ~' a. ]7 F
  24.     vsprintf(msg, format, args);
    ; c; K% r+ {6 X8 a9 s
  25.     va_end(args);
    3 R9 q1 w! c, X  j
  26.     UF_UI_open_listing_window();
      |3 p5 X5 g9 L" }
  27.     UF_UI_write_listing_window(msg);- S0 I3 |3 h9 j: }* ^- H. S
  28.     UF_print_syslog(msg, FALSE);9 v0 }2 F* ?+ U( w+ B3 O
  29. }
    0 Y5 z$ N3 i3 ~5 E* g6 x
  30. ( F9 {7 `0 M4 X" {
  31. #define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))
    / @7 T& |6 i+ O3 a" u$ h$ k, M

  32. , Q2 w) R! t( a. u- U* P
  33. static int report_error( char *file, int line, char *call, int irc)
    6 f; Y1 Z4 k* ^3 U( N& z
  34. {
    8 y# i! I! Q0 K, f7 S
  35.     if (irc)
    " V) P( ~; [' m
  36.     {0 t9 u1 _- L3 y* I3 U. Q7 `
  37.         char err[133];
    ' Y) R# i* ^% [1 e4 ~/ h% m' G3 x
  38. ) y$ x; |# f1 D! g2 t5 {
  39.         UF_get_fail_message(irc, err);! s) [2 _, w9 ]7 M% u9 I: H+ e
  40.         ECHO("*** ERROR code %d at line %d in %s:\n",1 I8 Z- c1 A+ r
  41.             irc, line, file);  g5 I8 K; q1 ?5 w/ e
  42.         ECHO("+++ %s\n", err);( C$ h% S$ J' h+ W6 |
  43.         ECHO("%s;\n", call);
    7 p8 }% Y; L% H- V: \( i) }
  44.     }" Y/ ^1 g* ?( @/ E' r

  45. + t; W! \" m3 K" o7 q% d
  46.     return(irc);0 U5 f9 m+ y7 }3 ]: x5 C
  47. }) i$ ?5 k) H; `7 O' ]
  48. : L- h" ?0 J4 q* N. r9 y: `) w

  49. / P* w$ Z, \  z' F9 [! G0 T& f" L
  50. static void do_it(void)" z1 U8 [6 }; I
  51. {
    % L; e4 C- w8 q6 l
  52.     Session *theSession = Session::GetSession();1 @4 A: \# r8 |9 O1 D- e
  53.     Part *workPart(theSession->Parts()->Work());
    2 L/ w" [% u7 h) d- b% |- v  H
  54.     Part *displayPart(theSession->Parts()->Display());  B: J! s& W' E. K
  55.     ! H# m  m- H, p/ O+ ^
  56.     PDM::SessionSettings *sessionSettings1;/ v9 T0 ^+ h4 l+ r
  57.     sessionSettings1 = theSession->NewDatabaseSessionOptions();
    # O& o$ B" a3 y: V
  58.     ! ]4 {4 H" n0 O
  59.     NXString CurrentGroup;0 }: \1 ]! [+ L0 |
  60.     CurrentGroup = sessionSettings1->Group();
    ( ]2 ]! a/ Z6 A2 \' ?1 g
  61.    
    6 b' ?8 W! ?8 k8 p6 t+ w
  62.     NXString CurrentRole;& p2 P4 r4 P+ R. I1 q
  63.     CurrentRole = sessionSettings1->Role();
    $ |+ j' W) i/ N% K7 ?) |1 x( ~
  64. / D" N5 |2 H4 U
  65.     theSession->ListingWindow()->Open();, m& k  P7 k4 i2 F. V
  66.    
    ) ^) S$ M# M+ u5 w" K/ s$ J" D
  67.     theSession->ListingWindow()->WriteLine("Current Group: ");; N3 F- _) w. o: X) y5 y" C% V
  68.     theSession->ListingWindow()->WriteLine(CurrentGroup);7 ^8 ~3 t7 F+ n. C
  69.         . q4 J: s) ~6 @" M# g
  70.     theSession->ListingWindow()->WriteLine("Current Role: ");    2 Z1 U6 c& A$ {/ s  r1 o7 i
  71.     theSession->ListingWindow()->WriteLine(CurrentRole);
    8 S& U( k$ A; g4 M
  72. + t% _% B& z: Z6 K; U+ A
  73. }
    2 N  z  d  {& @0 m1 w6 @- a
  74. " M) R+ S' e) b' P$ a" {# h( U
  75. /*ARGSUSED*/
    / T3 s7 G" N3 h! z5 T
  76. void ufusr(char *param, int *retcode, int paramLen)9 B/ ~+ ~( M7 ]0 k4 C4 }- z! O0 f8 A
  77. {
    8 c( u, p2 F% t! W9 ^% P: M* f' Y1 ?
  78.     if (UF_CALL(UF_initialize())) return;7 W6 ^$ T$ x4 l% O
  79.     do_it();
    $ i2 _/ r% `5 k) j
  80.     UF_terminate();
    ) @) V+ A9 t: u/ I" E
  81. }2 Q) F2 r2 z0 l1 R* I
  82. # w- g7 d1 T  s) B, M/ j) b1 t  ^$ ]
  83. int ufusr_ask_unload(void)
    7 t0 t; g' \/ g' S0 w  W* n
  84. {( D' [) Z' C1 H) ?: X
  85.     return (UF_UNLOAD_IMMEDIATELY);- O+ g, c. Q" t2 b; x
  86. }4 L) _  M8 n/ }7 T/ T0 q
复制代码
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了