PLM之家PLMHome-工业软件与AI结合践行者

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

  [复制链接]

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

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

admin 楼主

2013-11-6 19:00:16

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

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

x
在集成环境中,NXTeamcenter的集成中,获取当前用户的组group 和角色 role。
( E5 T' g% H4 Q  @- p( F. x. G" X, v8 }& J; \% X
  1. #include <stdio.h>' Z9 V' H( ]7 b8 B
  2. #include <string.h>0 M  D( n. R+ k2 a3 ^% H0 R2 |+ n
  3. #include <uf.h>' h  T8 `) i! y
  4. #include <uf_ui.h>
    9 ?8 Y2 y  L2 E- `. B8 L: b

  5. 6 q2 R( r! d+ `3 w5 s
  6. #include <NXOpen/NXException.hxx>, }9 q5 N3 h; i+ b" |
  7. #include <NXOpen/Session.hxx>
    . W/ M; p8 k# C2 [0 O* t5 g
  8. #include <NXOpen/ListingWindow.hxx>& k3 ^) i. l7 N: L
  9. #include <NXOpen/LogFile.hxx>
    ; `7 [& b$ b" h# [2 F
  10. #include <NXOpen/PDM_SessionSettings.hxx>- Y8 i! ]- g  i; V# p4 x2 H; i( w
  11. #include <NXOpen/Part.hxx>7 t9 G( O2 k# l) b: T! [
  12. #include <NXOpen/ParTCollection.hxx>
    % o+ L& `) ^6 j% s! ^! M& w  S
  13. #include <NXOpen/Session.hxx>4 X+ X, X* B8 v. L$ k9 O

  14. 4 U1 \0 b! }6 c
  15. using namespace NXOpen; // <== Very Important!* Y! b$ M% I: a$ @7 m7 R. b0 t

  16. $ q' n7 ~6 l$ ^/ s+ |9 `
  17. #include <stdarg.h>
    8 T( w: Y/ O$ f$ y3 d% X
  18. ) ~4 C7 j& S" {9 w& M1 \% Q- K: q
  19. static void ECHO(char *format, ...)
    # m% p& @) y) ]  y. P
  20. {0 Z" N- w9 v) S( Q
  21.     char msg[UF_UI_MAX_STRING_LEN+1];8 C9 \+ f: A8 F7 R8 y$ H  U2 ^& d2 J2 _
  22.     va_list args;
    / i6 o, F5 [+ k
  23.     va_start(args, format);
      R; l) U7 N. x, @1 F" L- p
  24.     vsprintf(msg, format, args);9 P2 n- x0 q" }# h# {
  25.     va_end(args);) S' E6 d% r( C0 ?  }( _: p$ A, k; q
  26.     UF_UI_open_listing_window();
    $ f4 @9 [0 R' W  e0 M
  27.     UF_UI_write_listing_window(msg);
    ! \& m; B% k3 N4 K
  28.     UF_print_syslog(msg, FALSE);( m" j( x7 j6 E% Z# P7 a4 I( k; P5 g( C
  29. }; f7 M0 k: k4 M( P+ X, Z; ]
  30. 0 G+ j8 n. k  R6 M- d8 L& }
  31. #define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))0 ~( R0 l+ W' p* U, C0 D) ~. v

  32. # H4 d3 b9 b& O' {
  33. static int report_error( char *file, int line, char *call, int irc)5 F. r- N8 h6 ^# A' n0 y
  34. {6 h* H% v9 w( y# a7 A* y
  35.     if (irc)/ k# ]/ O" k- N6 ]$ z4 u% V0 Z
  36.     {& }4 D7 M4 k* ^
  37.         char err[133];/ D0 r, g" a) @2 F+ p8 ~2 k# W

  38. ! p6 d9 K7 }: S- ~0 b- a: E) t
  39.         UF_get_fail_message(irc, err);
      G" [- Q5 y$ e6 w8 O2 Y; P0 H" G
  40.         ECHO("*** ERROR code %d at line %d in %s:\n",
    3 {) ^6 Y3 ^3 ^- T! i; {9 Z
  41.             irc, line, file);' W$ c$ U- s) w$ f- Z) ?6 ?* S
  42.         ECHO("+++ %s\n", err);
    & O4 _: x+ N/ C  A
  43.         ECHO("%s;\n", call);
    ) j8 R3 |6 q$ P0 \; D4 R
  44.     }% _9 w& N# }& @* K7 T
  45. 6 w1 R5 x: L+ \9 S) k1 A
  46.     return(irc);
    / K. a! O# N  g4 Q
  47. }$ ?* h9 k; v8 P) j% S9 T) B
  48. 3 K7 |. [5 a! `+ G! A1 h. O: f' ]( l

  49. $ ~; @; s( g+ j! n* x3 }
  50. static void do_it(void)
    7 p6 l3 `6 g4 p7 w/ H( ^
  51. {) O, w- r; q4 B/ I+ K5 I
  52.     Session *theSession = Session::GetSession();
    ( `* z/ {) j5 H
  53.     Part *workPart(theSession->Parts()->Work());
    : Y1 b2 y6 R% |) I: Z, o
  54.     Part *displayPart(theSession->Parts()->Display());4 Q0 n5 C7 c% V1 E1 s9 j
  55.     ( T6 f, O, v6 h) |' e: Z0 Y) D
  56.     PDM::SessionSettings *sessionSettings1;
    + r" [( j8 y- E. y# G
  57.     sessionSettings1 = theSession->NewDatabaseSessionOptions();0 k; M0 n' t0 f
  58.     # h5 ~* a- {* r1 S
  59.     NXString CurrentGroup;
    & H1 P( B& ~7 q+ ?4 k6 |! ^
  60.     CurrentGroup = sessionSettings1->Group();# {  X5 M) u  z8 t- l
  61.     : s9 Z: K( _& M- g/ r2 I& n! S  d
  62.     NXString CurrentRole;
    % Z% S% k6 O1 d5 M0 W+ j
  63.     CurrentRole = sessionSettings1->Role();
    + s% d" @" v) v+ j+ R
  64. 9 j; _2 Q5 E* O5 I) ]1 B# s
  65.     theSession->ListingWindow()->Open();
    - F7 W9 k4 l. G/ ]
  66.       `' O2 z' x  s+ B
  67.     theSession->ListingWindow()->WriteLine("Current Group: ");
      N* V" T1 [, ]1 ]! v- p
  68.     theSession->ListingWindow()->WriteLine(CurrentGroup);9 [# `/ N0 k% e3 H5 j6 u& h
  69.         ; ~- y1 O# X* q7 f9 A! y4 E9 r
  70.     theSession->ListingWindow()->WriteLine("Current Role: ");    4 _. W( z* n: K" p' o) U
  71.     theSession->ListingWindow()->WriteLine(CurrentRole);
    5 t. W+ D& M  x  M
  72. 5 [+ o; k1 Q- X7 W, w
  73. }
    - o" F7 e0 g. b
  74. : B0 }3 K, Q6 \5 j' N
  75. /*ARGSUSED*/
    7 H6 r1 I9 [; {( ^
  76. void ufusr(char *param, int *retcode, int paramLen)  ]6 Z/ j: E3 x
  77. {
    2 ]' ?# l1 S# R$ E9 d1 Y
  78.     if (UF_CALL(UF_initialize())) return;
    & d& S( v2 a) F/ ^3 v3 h
  79.     do_it();
    ( `: W0 ^" U$ d" Z) j9 U
  80.     UF_terminate();
    0 o! o3 B: G* h
  81. }) x4 q" V4 ~! i* V  ~/ e) W1 K) [
  82. ' J2 x4 U, |9 D& s- C$ w5 O
  83. int ufusr_ask_unload(void)
    . s" F- t) e  W9 D% E- d
  84. {
    - D. c9 C/ ^8 r+ j
  85.     return (UF_UNLOAD_IMMEDIATELY);2 a. f, t# m. u: T8 x" A! Z
  86. }
      b" h6 x' w' U- r
复制代码
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了