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

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

  [复制链接]

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

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

admin 楼主

2013-11-6 19:00:16

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

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

x
在集成环境中,NXTeamcenter的集成中,获取当前用户的组group 和角色 role。
! r4 a# J* W% M7 r& [+ H$ v% A8 r8 H9 N
  1. #include <stdio.h>! U+ U* ]1 R' |& ^3 K2 r7 l
  2. #include <string.h>
    ; A+ d: s- U4 ^. e
  3. #include <uf.h>* n5 j; w) Z, @: k' L6 N
  4. #include <uf_ui.h>3 F& {; j- P; j6 I/ D

  5. " F/ ]/ Q) O- l) E; K
  6. #include <NXOpen/NXException.hxx>
    5 M. m9 b) i; ]& @/ l5 q7 K5 P, B8 z3 M
  7. #include <NXOpen/Session.hxx>% J6 Z- ?' k5 T& Q: a" V
  8. #include <NXOpen/ListingWindow.hxx>
    4 c8 S( g' {! L# M5 A, y
  9. #include <NXOpen/LogFile.hxx>
    ; d6 I" B, H* I- y& ~4 i
  10. #include <NXOpen/PDM_SessionSettings.hxx>- @7 t# p+ o' g
  11. #include <NXOpen/Part.hxx>
    3 L, Z+ ?( H: G5 e; j  k& x
  12. #include <NXOpen/ParTCollection.hxx>5 A* ]/ [' o3 V
  13. #include <NXOpen/Session.hxx># L& `' x4 X9 Z) W! y
  14. " _9 T" x4 y, R5 r0 K0 x
  15. using namespace NXOpen; // <== Very Important!3 e0 e# v, g' G% I/ y* w

  16. ; x; ?  D. P  q# H
  17. #include <stdarg.h>
    / s% A% ?8 P2 f

  18. # M1 _1 d" T6 E! g& j& p7 O5 n; |, ?
  19. static void ECHO(char *format, ...)
    ; z: Y: K6 ?4 ^. k: ?3 ~0 z
  20. {
    " u# O! |+ ~8 z) _7 Z" w+ G& e
  21.     char msg[UF_UI_MAX_STRING_LEN+1];
    : i' ?$ R9 B. b/ X- H: {
  22.     va_list args;
    ! e  d6 j  i" Y" ]) f9 H2 o
  23.     va_start(args, format);
    4 U* r6 y* [: J! o  Q& p0 m
  24.     vsprintf(msg, format, args);
    8 [, F* g) n3 p( `6 |$ R
  25.     va_end(args);
      K; H  k5 A' L4 w$ f: T; h8 ~" ?! N
  26.     UF_UI_open_listing_window();
    ) [; U; R& x) x& I9 R, u' N
  27.     UF_UI_write_listing_window(msg);
    * \9 L$ r1 K2 d' r5 H3 d" S' B
  28.     UF_print_syslog(msg, FALSE);
    % z/ {+ C; i, f! |2 q
  29. }
    6 K8 t* Z: L& B1 b
  30. " |9 \6 }2 L" d& s7 J. ~
  31. #define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))2 l9 R. ~, Q7 C% o  ]

  32. # Z' T5 U( c0 r* U# w) T! H! f& I
  33. static int report_error( char *file, int line, char *call, int irc)
    2 i: [/ N5 z5 F
  34. {* ^6 X/ G  I: ?( j% o6 t; p) D# t
  35.     if (irc); |( g0 t! ?: o4 y6 \: P
  36.     {
    + P6 Y' o  y  M! D
  37.         char err[133];6 H. p9 T6 V5 i1 c: Z# J6 s4 k/ k+ J$ N

  38. ! [, N3 D. I( s6 w' g) X
  39.         UF_get_fail_message(irc, err);
    + A5 P. M* o: \' G  C8 O
  40.         ECHO("*** ERROR code %d at line %d in %s:\n",
    - D# O1 D. |* u; {1 n
  41.             irc, line, file);- q0 C  B5 x- e
  42.         ECHO("+++ %s\n", err);1 _9 |5 s& z1 Y- J
  43.         ECHO("%s;\n", call);2 R9 }/ A+ |6 B2 j, G# U
  44.     }
    9 L5 I, U+ J3 m/ o: A( o2 B

  45. . s, x7 Z3 ]4 h; ]. }5 @
  46.     return(irc);% A. q7 x  o; `- l, a: O
  47. }  Q( z/ H- L5 m7 q# _& q
  48. ' {- _( C5 O' \1 u: v% N

  49. # q5 Z4 P" Z# H
  50. static void do_it(void)
    ) l+ L3 P1 V7 a: `
  51. {
    ' D, {" M, O: r) t* _
  52.     Session *theSession = Session::GetSession();
    9 y, g  F* B% B" J" f
  53.     Part *workPart(theSession->Parts()->Work());
    , u! y1 I$ m- q
  54.     Part *displayPart(theSession->Parts()->Display());, E9 c3 p( |1 s6 Z
  55.    
    % L% F& W/ z+ F! E
  56.     PDM::SessionSettings *sessionSettings1;
    9 y- k8 c+ f/ f7 q' O
  57.     sessionSettings1 = theSession->NewDatabaseSessionOptions();
    # G$ F$ J1 E# J; o
  58.     9 P3 ^0 v1 [/ l
  59.     NXString CurrentGroup;2 Q5 V  `8 D7 I6 r: @
  60.     CurrentGroup = sessionSettings1->Group();
    4 y7 X: v) b, D1 Z
  61.     # K  t  j+ j( p6 w  ^
  62.     NXString CurrentRole;
    6 k; A. B) i. ^! U) @- |
  63.     CurrentRole = sessionSettings1->Role();
    : L5 U4 t3 F  j3 q3 ]7 N$ z
  64. & ]% _5 R; K2 e  p) a8 U4 s% F3 C; d
  65.     theSession->ListingWindow()->Open();
    7 f. B& J% _  H: G5 E9 h' `
  66.    
    9 k/ C  {4 {+ r
  67.     theSession->ListingWindow()->WriteLine("Current Group: ");
    , ?8 W, [- O7 V! U
  68.     theSession->ListingWindow()->WriteLine(CurrentGroup);  s' v: k) O, i# d' R: Y
  69.         
    ' X& ^9 z3 t* o. I
  70.     theSession->ListingWindow()->WriteLine("Current Role: ");    ; T0 O% [' P+ t* m' l$ A' R
  71.     theSession->ListingWindow()->WriteLine(CurrentRole);) |/ m3 b+ l& L  q9 a6 T5 s1 r: p5 X
  72. 8 D& g6 N+ C9 X
  73. }
      ^* K8 T1 X5 B) _+ V8 h

  74. * R- {" H' ^8 i$ q, ?2 U- }8 j4 r
  75. /*ARGSUSED*/
    # A- V; i/ l* n6 `3 D1 K4 y, B
  76. void ufusr(char *param, int *retcode, int paramLen), c+ U8 G" @( |" F" O
  77. {3 d* M; D5 Y4 o6 `+ ?# ]
  78.     if (UF_CALL(UF_initialize())) return;
    & L) I6 D9 ^; i* A9 t  K
  79.     do_it();- b# \3 e% `$ f; a; s8 j7 W
  80.     UF_terminate();  k' f* \" k9 M: ^
  81. }
    - ?% D" {; v) j( m7 b0 R( X. [

  82. 5 _* M! c( X. ]/ b
  83. int ufusr_ask_unload(void), Y2 T2 K. i) R! n
  84. {% `* I  E7 \) f1 K) s0 i
  85.     return (UF_UNLOAD_IMMEDIATELY);
    . s' l! x! A) t7 o9 ^1 u  R
  86. }
    0 w  v( g( S. F
复制代码
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了