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

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

  [复制链接]

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

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

admin 楼主

2013-11-6 19:00:16

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

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

x
在集成环境中,NXTeamcenter的集成中,获取当前用户的组group 和角色 role。
: v! h  @( q6 g+ x7 w- j( X5 X- G, l
  1. #include <stdio.h>
    : d6 v  J1 M8 Y1 [& O) ]
  2. #include <string.h>  Z7 J& k$ n2 U2 }3 G
  3. #include <uf.h>
      U8 Z0 ?, c+ U5 F. z
  4. #include <uf_ui.h>
    ) h$ |7 ]- r4 V& J. B, N8 ?% p1 F

  5. ' R6 H; ?) C6 C
  6. #include <NXOpen/NXException.hxx>
    $ s! T9 x/ m" k# J0 b" ~5 V4 K, T
  7. #include <NXOpen/Session.hxx>+ s) A( A# z- g# U! g
  8. #include <NXOpen/ListingWindow.hxx>* |1 I( f% Q$ g7 L
  9. #include <NXOpen/LogFile.hxx>3 E) j8 S& `/ i/ G
  10. #include <NXOpen/PDM_SessionSettings.hxx>
    ; c7 K/ t& b. p& V( g9 u
  11. #include <NXOpen/Part.hxx>2 k4 i* u# U, _
  12. #include <NXOpen/ParTCollection.hxx>& {9 J* o' t6 e7 c$ n- w/ ~
  13. #include <NXOpen/Session.hxx>- F' \, z6 c' W0 q9 t

  14. - O" \! Z# i$ a0 r& Q& |7 K. M% i
  15. using namespace NXOpen; // <== Very Important!
    8 A! k: D5 y# e6 D, N1 C

  16. $ @4 A9 e$ j, u
  17. #include <stdarg.h>
    9 a  V# X1 H- X0 ^+ K; j
  18. & a$ R' ~9 r1 u* x
  19. static void ECHO(char *format, ...)
    ! Q! L0 V3 j, |- ~' G$ I9 l
  20. {5 N7 _9 t( ], ~* A0 u  Y
  21.     char msg[UF_UI_MAX_STRING_LEN+1];
    ( e/ H% Z2 ^! c; a& w4 K
  22.     va_list args;% ~8 f) ^3 Y( P
  23.     va_start(args, format);
    6 Y$ P; K4 d2 [" C- X8 b% d
  24.     vsprintf(msg, format, args);
    + W  z* K+ n1 g
  25.     va_end(args);% ]! l7 s8 |/ b0 V0 B) W/ g/ _
  26.     UF_UI_open_listing_window();4 a4 o( e2 `' V
  27.     UF_UI_write_listing_window(msg);" y/ |7 ^# m6 E, G# o2 B
  28.     UF_print_syslog(msg, FALSE);# `5 R& d8 b; F3 k  ]. c
  29. }
    - n0 q& |- D  H2 H& n
  30. $ q+ h0 T& [: m; `' i4 a8 I" S+ P  t
  31. #define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))
    3 V3 E9 U; Q! V; n

  32. 3 g8 x* Z. q$ J9 i1 T
  33. static int report_error( char *file, int line, char *call, int irc)' S: w, r0 F3 n0 N! l0 |7 j& n$ Y& c
  34. {
    * K. j( ~+ @; E- s" }% F
  35.     if (irc)
    % Q, V% ^7 w! M! W# l0 I
  36.     {/ b6 Q) R/ d* l5 I% [) g
  37.         char err[133];
    ) b$ L5 v* \$ i3 a6 [
  38. . v5 s' V  h1 @: k1 p/ w' p; f
  39.         UF_get_fail_message(irc, err);
    2 p# W; _+ x0 P: o& {$ O$ A; L
  40.         ECHO("*** ERROR code %d at line %d in %s:\n",
    ! j8 I1 q* G6 S7 k; g) R4 H7 w
  41.             irc, line, file);
    . c, a  G6 }, @/ P3 X% Q
  42.         ECHO("+++ %s\n", err);6 ]$ B) I$ s0 ^- i7 Y: S
  43.         ECHO("%s;\n", call);
    ) J2 W# F& T! i. {0 h, e2 M! g
  44.     }; p9 s$ D* ~5 E: }0 v  y+ Z! j
  45. & s7 Z3 j! v3 ~0 G( n/ a
  46.     return(irc);1 v- ~* X# G8 |6 g4 r7 ~, d
  47. }
    5 J2 ^# q2 Z% G% @# I+ C2 w6 t% G
  48. 7 u4 J- C6 G: u4 {
  49. ; e4 o1 x) f, [# Y
  50. static void do_it(void)
    % N# \) s5 N) m( v1 f
  51. {! F7 f" m9 e, e( H. V; I% h3 x
  52.     Session *theSession = Session::GetSession();
    ' p$ @' u4 u3 S. D
  53.     Part *workPart(theSession->Parts()->Work());) P' t7 L1 F* W2 ?4 ]& X
  54.     Part *displayPart(theSession->Parts()->Display());& [, U5 m% h& @; D, k+ ]
  55.    
    ' ?. {% W% j/ `
  56.     PDM::SessionSettings *sessionSettings1;/ s/ \9 X% i' }9 T
  57.     sessionSettings1 = theSession->NewDatabaseSessionOptions();' v9 W& `7 c. @2 I5 `
  58.     $ s" i0 ]1 }$ n6 F) i( D
  59.     NXString CurrentGroup;
    4 h6 z; _8 r5 ?' n5 R
  60.     CurrentGroup = sessionSettings1->Group();3 N% ^3 \8 b/ }' `- ~
  61.     1 V+ i6 l) ~6 o
  62.     NXString CurrentRole;" y  a; a4 |" s6 \
  63.     CurrentRole = sessionSettings1->Role();( e0 r5 ]9 q6 w) R
  64. % E( u) z( L- v; r
  65.     theSession->ListingWindow()->Open();
    * W( A$ X* J- h; E" o2 ~! @4 F1 u
  66.     % t5 G# U- x$ _, T  N% q
  67.     theSession->ListingWindow()->WriteLine("Current Group: ");! c) U+ z- R; C3 K& Y( J
  68.     theSession->ListingWindow()->WriteLine(CurrentGroup);% ?+ n. M4 m* B# [8 w5 @) a, Y1 t  x
  69.         
    ) `, E, E0 c- m3 `
  70.     theSession->ListingWindow()->WriteLine("Current Role: ");   
    / I3 l5 B# C/ S3 G7 _
  71.     theSession->ListingWindow()->WriteLine(CurrentRole);/ `) `- o( B+ b# M( v- `  Y7 n6 I

  72. ' M: Q0 G" E7 R3 J. X' d
  73. }9 H7 C) t9 X3 P# c* K3 b
  74. 5 z. Y; S: r1 _9 f7 ~* Z
  75. /*ARGSUSED*/8 O( L; G4 ~3 f& R
  76. void ufusr(char *param, int *retcode, int paramLen)
    . a" J4 ~: @8 `$ k
  77. {
    0 L- s: ]4 C0 [0 M! ^) _* f  ^; U' f
  78.     if (UF_CALL(UF_initialize())) return;
    2 M2 r" W, a$ C0 O& j
  79.     do_it();$ [6 b$ g* u% o: o1 q! j' P
  80.     UF_terminate();0 p4 n$ g! i' N8 {
  81. }
    ; p4 \, h6 @* _1 `( i. w

  82. , s  l% s2 {9 `, r! N
  83. int ufusr_ask_unload(void)
    * L1 L- j2 _; C
  84. {' a1 P- J; q* w0 Z" d) q
  85.     return (UF_UNLOAD_IMMEDIATELY);  p( d8 n6 E4 Z& C( H, s% d
  86. }8 M# f- k% A' j$ P7 W
复制代码
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了