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

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

  [复制链接]

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

2470

主题

1275

回帖

8万

积分

管理员

PLM之家站长

积分
82170
QQ
发表于 2013-11-6 19:00:16 | 显示全部楼层 |阅读模式

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

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

x
在集成环境中,NXTeamcenter的集成中,获取当前用户的组group 和角色 role。. [" s0 ^4 E9 m+ N: G# E" C
/ N! l) R$ g8 {5 _
  1. #include <stdio.h>
    3 l/ [2 k) r' N1 W, B* ^% T
  2. #include <string.h>
    9 l( x7 n! X# L
  3. #include <uf.h>
    / O" c9 u5 w/ L4 S9 d% }* }
  4. #include <uf_ui.h>
    . V/ T$ L  \, }" g

  5. ) s- V6 \$ D; b3 H) b5 @
  6. #include <NXOpen/NXException.hxx>9 m9 ^6 p' R; ^- ~5 ~
  7. #include <NXOpen/Session.hxx>
    2 e6 w( p& V1 d! L7 b1 {
  8. #include <NXOpen/ListingWindow.hxx>4 T& r4 {4 B# ]% h- `- k% Y
  9. #include <NXOpen/LogFile.hxx>2 G. R: v) ?% d3 A$ @) Q
  10. #include <NXOpen/PDM_SessionSettings.hxx>
    - @7 p/ Y# Z5 z7 M2 F- T  y( o/ G
  11. #include <NXOpen/Part.hxx>, U% F4 }/ j. D4 b" T( Z- |
  12. #include <NXOpen/ParTCollection.hxx>
    0 ^5 t/ @2 x; o% x6 E
  13. #include <NXOpen/Session.hxx>. ?5 `5 A+ y) \
  14. $ |) Y4 Y" V; M
  15. using namespace NXOpen; // <== Very Important!7 i% X+ Z8 F0 n, z) b( ~# L# h

  16. + Q0 H9 h, f4 k
  17. #include <stdarg.h>
    0 T* C/ _' o. P# o' n5 v& I# d

  18. , \) e/ q0 O; J4 G( t
  19. static void ECHO(char *format, ...)
    . m% p: i! L* d
  20. {* Y1 x5 z1 R: L; r/ o: h" R
  21.     char msg[UF_UI_MAX_STRING_LEN+1];' g3 C6 |+ X4 `$ n5 N- s* c: a6 z
  22.     va_list args;0 X$ j* o: B0 B  V: p3 K
  23.     va_start(args, format);
    $ J; K. m5 g" x7 Q0 Z6 r
  24.     vsprintf(msg, format, args);( G" N2 Y+ s: K7 u1 d
  25.     va_end(args);
    : s& c# R; R! B( v0 H1 u
  26.     UF_UI_open_listing_window();
    , A- k, C. Y: _; v
  27.     UF_UI_write_listing_window(msg);
    0 c* i- M4 y: X  l& y% _- J
  28.     UF_print_syslog(msg, FALSE);* B- S: a6 u3 H( ~4 ~) {3 q8 ~
  29. }" H9 l& _' `- M( e7 b) H( a

  30. 6 T2 O9 I8 A& R
  31. #define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))" a9 v* D3 u9 }+ C' m$ f# `
  32. , U# _- x6 l: k8 y) e9 y! |7 t
  33. static int report_error( char *file, int line, char *call, int irc)
    & ?/ A, m1 _, r3 K% E1 x
  34. {/ \# L& `* Q) ]9 F7 I5 r
  35.     if (irc)! s$ P, o5 k6 \0 A: a. E
  36.     {
    4 m% C: @; w  c1 B# C+ ]* {
  37.         char err[133];! e2 i; Y9 j, L' M8 @/ C  ~

  38. " P% k2 p3 j: Q3 v- ?
  39.         UF_get_fail_message(irc, err);1 d" R. u$ R6 w  Q) y& V3 Z4 m
  40.         ECHO("*** ERROR code %d at line %d in %s:\n",
    3 Y6 d+ }: Y: `5 [
  41.             irc, line, file);9 {' r1 y/ Q* q: d2 ~) C0 V
  42.         ECHO("+++ %s\n", err);
    / A* k5 p- G; W* _$ Q' O
  43.         ECHO("%s;\n", call);
    + C+ p3 \- @4 b
  44.     }7 Y" \9 E4 d" G$ |! t! B. ^+ |8 m
  45. 6 n7 T1 Y, I) {+ ^3 |
  46.     return(irc);
    1 V$ I. Y/ s/ S% K
  47. }
    . B6 K) N- w9 B( k4 }' k- h& k

  48. " Q8 `3 g- \% e

  49. 0 \$ _! w2 O! N$ i2 l4 @  |3 g
  50. static void do_it(void)
    : y! R: J% Z/ |& K" m/ T
  51. {; L- v& M  C8 `$ J' a- W
  52.     Session *theSession = Session::GetSession();
    & v) z# {" ^  r% H; k3 Z. V7 I. c
  53.     Part *workPart(theSession->Parts()->Work());, x% X* O7 c" Z- G
  54.     Part *displayPart(theSession->Parts()->Display());
    4 M: [* Q4 y* n
  55.     * D( W( K9 z/ ^. e1 |$ C
  56.     PDM::SessionSettings *sessionSettings1;, `  }! ~9 Y" G
  57.     sessionSettings1 = theSession->NewDatabaseSessionOptions();8 z# i+ u# D; n1 v! j5 B, Y( t6 Q
  58.     0 [8 k% z! [, J+ {
  59.     NXString CurrentGroup;
    - `; s+ h; k# k3 w. x: k
  60.     CurrentGroup = sessionSettings1->Group();
    , \. U" R5 V) [2 A5 q/ Z! N
  61.    
    . Z3 l" h7 `/ ]9 }% v: G
  62.     NXString CurrentRole;& L% R4 O$ T/ X
  63.     CurrentRole = sessionSettings1->Role();1 s+ V' Y; ]! T7 j, h- q4 ?
  64. " ?+ v! X* f1 x# s$ o
  65.     theSession->ListingWindow()->Open();5 W& o+ c# U2 {  q
  66.     " {2 Q# Z- T  q3 B& e7 {
  67.     theSession->ListingWindow()->WriteLine("Current Group: ");
    " [, g5 n' T3 x) z- Q) p0 v
  68.     theSession->ListingWindow()->WriteLine(CurrentGroup);# n2 G5 S& g! ~5 K
  69.         ' W6 ~: K/ ]7 z* {: B) _
  70.     theSession->ListingWindow()->WriteLine("Current Role: ");   
    7 H5 Z5 S! L$ n, S0 k# W) Q
  71.     theSession->ListingWindow()->WriteLine(CurrentRole);
    ( E# a$ {8 Y! I, H! \% `

  72. % `" W* }: b( I) x! W
  73. }. t9 ]7 H5 \0 q- E  Q; l9 M- L
  74. 2 D0 _$ e/ h& ?
  75. /*ARGSUSED*/
    ) W  |! @' A5 [# |3 A8 Y8 r
  76. void ufusr(char *param, int *retcode, int paramLen)
    % }- W) V+ {0 b; k9 j
  77. {
    ' ^/ P( j$ B" @. B% H2 K. _
  78.     if (UF_CALL(UF_initialize())) return;
    7 I8 D# ~+ X" y0 y1 x
  79.     do_it();
    & |' e* |, D9 D8 o! `+ `+ f$ _5 J9 ]
  80.     UF_terminate();
    . o- B8 U; D! \, e
  81. }
    . }/ V# y# B6 I0 I2 d6 u
  82. 8 @1 l( w8 E! O6 v
  83. int ufusr_ask_unload(void)
    + f+ C- g: F& ]# q" q
  84. {9 A; V, r  {$ g  j4 ]3 B
  85.     return (UF_UNLOAD_IMMEDIATELY);
    7 M8 S* c0 b/ M9 I) F' {5 _8 ?  b
  86. }
    . B- o* m4 t  Z6 P9 y8 a8 i- F
复制代码
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 doTeam.tech
回复

使用道具 举报

全部回复2

1

主题

62

回帖

398

积分

中级会员

积分
398
发表于 2016-4-16 23:42:58 | 显示全部楼层
主要体现在哪些地方吗
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.doteam.tech
回复 支持 反对

使用道具 举报

1

主题

45

回帖

203

积分

培训VIP会员

积分
203
发表于 2019-12-10 17:53:21 | 显示全部楼层
为什么拷贝代码 会产生一连串乱码呢?是防止拷贝吗?
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.doteam.tech
回复 支持 反对

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 注册

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

    本网站(plmhome.com)为PLM之家工业软件学习官网站

    展示的视频材料全部免费,需要高清和特殊技术支持请联系 QQ: 939801026

    PLM之家NX CAM二次开发专题模块培训报名开始啦

    我知道了