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

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

  [复制链接]

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

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

admin 楼主

2013-11-6 19:00:16

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

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

x
在集成环境中,NXTeamcenter的集成中,获取当前用户的组group 和角色 role。
! d3 C' b$ z; I/ ]6 k3 b2 h. ~8 Z1 p( x+ _/ J
  1. #include <stdio.h>; |' _6 Z; @/ A" w7 D0 ]
  2. #include <string.h>
    : \6 v4 N7 U" Y3 g! U, g0 ~) X( ]
  3. #include <uf.h>
    ; Z# G. A  h& Q3 C- y8 |$ {* e
  4. #include <uf_ui.h>
    1 _+ U1 G8 e6 N2 {" }
  5. . C1 l1 Y; w- g3 i4 D- Q) u6 d; W
  6. #include <NXOpen/NXException.hxx>
    2 V8 i3 m) t- E7 R
  7. #include <NXOpen/Session.hxx>1 u" s: k; d* @. [8 b
  8. #include <NXOpen/ListingWindow.hxx>
    9 g6 K6 J, E' }0 _
  9. #include <NXOpen/LogFile.hxx>
    5 O; f7 x9 U8 x7 f% I- i5 ?% f
  10. #include <NXOpen/PDM_SessionSettings.hxx>
    ( ^$ G7 p7 a1 K  m8 N+ c
  11. #include <NXOpen/Part.hxx>
    ; V2 e: q' H/ o
  12. #include <NXOpen/ParTCollection.hxx>
    $ H$ V" g+ H$ ^
  13. #include <NXOpen/Session.hxx>
    . A! U" O7 _+ |4 \" `) O& r
  14. ' G: ~  K5 q" i4 v7 w6 c" \
  15. using namespace NXOpen; // <== Very Important!/ [: o) G, C* q8 c7 [
  16. 1 u# ^0 j5 B0 V* ]* Z
  17. #include <stdarg.h>
    3 B* ~4 g& N' L! g) Z+ D1 ~( _, Q: t

  18. 4 c4 E: J' l5 z8 M. j) K
  19. static void ECHO(char *format, ...)- a8 \* d5 H8 m8 N( S. b) C# R' [
  20. {' R. D" T+ g* Y9 L
  21.     char msg[UF_UI_MAX_STRING_LEN+1];! i! I$ U% x: ?/ I7 e3 S/ P4 t
  22.     va_list args;9 p2 h/ \$ O3 c# A* W% i" Z
  23.     va_start(args, format);
    3 g# T2 _7 v/ H5 O$ B' E6 L/ J
  24.     vsprintf(msg, format, args);
      x9 F* W* _' K, R6 ?' y6 I+ N
  25.     va_end(args);
    8 E( T/ x5 q, w/ N# |* f
  26.     UF_UI_open_listing_window();6 n; p) c! T0 H* {5 B% N
  27.     UF_UI_write_listing_window(msg);
    9 q% S2 S+ L; x5 t0 z4 U- [; a2 `
  28.     UF_print_syslog(msg, FALSE);
    . ^& e0 S+ f: p  l$ g, M! R2 m
  29. }
    # C0 R$ U$ o+ p3 I5 U

  30. " d, q6 L" q% d! z& J& Y
  31. #define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))) L) P% Z) Q* g' }! o" u- A
  32. . \+ E2 f# X6 e* j
  33. static int report_error( char *file, int line, char *call, int irc)6 c7 M% `" O0 `
  34. {
    + |( h5 f* _  |; e4 u
  35.     if (irc)7 ^8 m4 Z: t2 a9 q  e6 K! |
  36.     {) X9 A7 k* Y7 j. C
  37.         char err[133];% L2 V* ]4 A. \0 X2 F+ Z4 x
  38. 6 P3 f% f* V% o. q) w- L' d% l
  39.         UF_get_fail_message(irc, err);
    5 E5 `/ U& {  m: O* H
  40.         ECHO("*** ERROR code %d at line %d in %s:\n",
      w& m2 |$ y  P! Z
  41.             irc, line, file);. @# F; c; F6 j5 ~; T/ S9 c! b% X3 K
  42.         ECHO("+++ %s\n", err);
    1 K5 R' i+ {( T7 Y( B
  43.         ECHO("%s;\n", call);
    : H0 U4 i4 M' `: ^" j0 [, f
  44.     }2 [6 Y- }7 ^2 L0 \' {3 l  S# k

  45. & d5 B% g1 I# X+ H$ w3 N
  46.     return(irc);
    & t: o; J7 l+ P
  47. }* B  d9 m/ F* }0 q

  48. " b% ]2 [) C2 _# p, @. H
  49. ( h0 \; H$ e6 k
  50. static void do_it(void)& P- [4 ], T! ^+ w: ~
  51. {
    8 u( Y# L+ D/ g6 q
  52.     Session *theSession = Session::GetSession();
    0 `  U5 p. ^0 D
  53.     Part *workPart(theSession->Parts()->Work());
    2 E9 r/ h6 I: Z" Z8 x
  54.     Part *displayPart(theSession->Parts()->Display());0 Z. N! [9 Q/ v3 Y  O4 J9 d" z
  55.     ; }. K4 c3 c( S) A. q: _
  56.     PDM::SessionSettings *sessionSettings1;
      d/ q1 z9 K" f% r: z
  57.     sessionSettings1 = theSession->NewDatabaseSessionOptions();! A/ i9 u, s( U- N
  58.     9 I9 C" r( |- U; A9 ?( I
  59.     NXString CurrentGroup;
    * ?! R* v1 m/ b# ^
  60.     CurrentGroup = sessionSettings1->Group();
      g2 o/ a0 l/ w0 \
  61.     5 {' s0 i  [6 m+ S# N- ]
  62.     NXString CurrentRole;
    4 E2 M) T' v4 j& w+ a5 I$ p
  63.     CurrentRole = sessionSettings1->Role();! N6 f0 O' V4 L1 G) T  a+ \
  64. . v* C2 B. E( }9 E/ r) X& c/ E
  65.     theSession->ListingWindow()->Open();3 O" m" X8 B* d6 _( u; p2 i& Y$ S
  66.     + A/ ~- e9 o1 `% R( }! c" D
  67.     theSession->ListingWindow()->WriteLine("Current Group: ");
    $ v/ i0 u! @- w3 T1 g" v
  68.     theSession->ListingWindow()->WriteLine(CurrentGroup);
    ' ?' b; L' T5 o3 v% ^7 v/ ?. p
  69.         * |% ^1 C5 Y$ S" H- A0 {3 N
  70.     theSession->ListingWindow()->WriteLine("Current Role: ");   
    ! f& _" h" }. P) P2 g) U* A
  71.     theSession->ListingWindow()->WriteLine(CurrentRole);& U( e8 {3 P6 W4 o
  72. % Q2 C* z8 r! Z) v1 N3 {7 ]
  73. }, l' X% {( w5 T& `: R( w' A; e
  74. , m% f, \$ B, R1 ^) G% Q; E7 H
  75. /*ARGSUSED*/" e& h; \  i: S% L& T
  76. void ufusr(char *param, int *retcode, int paramLen)
    ( x6 _3 Q* U, j7 O% V) q
  77. {
    ' ^6 z4 r9 w7 R% W; r6 i1 ^
  78.     if (UF_CALL(UF_initialize())) return;
    ) L4 w' O% p9 t9 \9 }  z
  79.     do_it();3 G+ C" g& r; |6 S) K- q) ]- e
  80.     UF_terminate();
    1 P( Y7 k/ l2 A: J
  81. }
    / Q. v! k1 c" B4 |' A' X
  82. / D' f! D( l$ t5 o9 Q) [8 s% P
  83. int ufusr_ask_unload(void)
    8 |$ {. I: |( Q2 J- {
  84. {
    5 s& m4 r; d* ~: Y- r4 H" q: |" Z
  85.     return (UF_UNLOAD_IMMEDIATELY);3 R7 E! }1 r$ {3 x* w! z
  86. }5 ]' G1 V+ M. M% d5 ?. N' o* J+ U
复制代码
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了