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

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

  [复制链接]

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

2470

主题

1275

回帖

8万

积分

管理员

PLM之家站长

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

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

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

x
在集成环境中,NXTeamcenter的集成中,获取当前用户的组group 和角色 role。9 u7 Y7 m- \: Q3 ]6 m

+ h- u. a0 K/ D0 a
  1. #include <stdio.h>
    * n. c" @7 A4 U6 o0 p* f# m0 W
  2. #include <string.h>1 E+ U6 a% ?& M4 Z
  3. #include <uf.h>
    % O/ l: x# [2 _! P
  4. #include <uf_ui.h>, i- V5 ~) r  `" l' R% W
  5. 6 h2 e1 Y& ~8 a$ m' H6 q% g
  6. #include <NXOpen/NXException.hxx>
    " T: j6 @8 I! F) \  e, D; W6 O
  7. #include <NXOpen/Session.hxx>
    8 q5 t/ F' m5 b
  8. #include <NXOpen/ListingWindow.hxx>8 U9 A  X" }' @
  9. #include <NXOpen/LogFile.hxx>
    , V# V/ o& @5 B9 P( O- x' v# L
  10. #include <NXOpen/PDM_SessionSettings.hxx>
    ( h. K) d4 @  y, g1 i3 `* t
  11. #include <NXOpen/Part.hxx>
    8 R9 b9 f/ D+ ~' z, r# V/ c* c2 p
  12. #include <NXOpen/ParTCollection.hxx>. L7 x9 u# R# W- [, W5 e# E8 B/ {
  13. #include <NXOpen/Session.hxx>% G* v0 q7 p. U2 d+ E: z

  14. ; ~* P/ l+ q' a
  15. using namespace NXOpen; // <== Very Important!* O' q$ _5 j3 H1 t' [# X5 Z
  16. % b: e9 f$ y/ q3 y$ b; h7 k3 O
  17. #include <stdarg.h>
    * ]% x# L) f' s( b
  18.   d7 V7 P/ f. p& \
  19. static void ECHO(char *format, ...)0 I/ @8 q" L$ c$ r
  20. {, I: d; C! ?- w: ^2 Z; k5 F5 h
  21.     char msg[UF_UI_MAX_STRING_LEN+1];
    2 {& j3 M; d8 B  M! z  h
  22.     va_list args;
    - W9 g1 V( r0 T3 D5 N, b
  23.     va_start(args, format);
    ' l" H1 r) W* ~
  24.     vsprintf(msg, format, args);" q* v( n* T2 w- b- O8 ]2 f
  25.     va_end(args);9 z" B8 d1 b1 i1 l) y( x- S
  26.     UF_UI_open_listing_window();
    - E3 l( R% L/ w1 Y1 U, E3 G/ G
  27.     UF_UI_write_listing_window(msg);( q" U& J  ]8 y2 q- _$ [& I
  28.     UF_print_syslog(msg, FALSE);
    / N% t* o9 `! `9 \- D" X
  29. }/ N" c' a: g8 W" R6 l4 Z& V4 E
  30. 0 p! Z! i+ c3 Q$ [. k& U0 h! v0 N
  31. #define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))
    * C/ c6 s6 V: ?) v

  32. * x1 Z: p2 b6 r3 L3 Y+ O$ d+ t
  33. static int report_error( char *file, int line, char *call, int irc)
    / E7 t. h( o3 G, m
  34. {
      {, c- M  R) i, r. q  J
  35.     if (irc); S, t" p. X# X- f9 d( j0 {5 }
  36.     {
    1 I% B  D7 Z# J0 b) c1 D) `
  37.         char err[133];' `" D1 R; i$ b; Y, l1 u  ]4 C% }
  38. 9 {: w; J' {9 W) l& X
  39.         UF_get_fail_message(irc, err);
      }+ H0 g9 ~6 X4 O
  40.         ECHO("*** ERROR code %d at line %d in %s:\n",. h) D* `  K3 |9 g  l/ }# n. q
  41.             irc, line, file);
    # s, e& |, o% x- u
  42.         ECHO("+++ %s\n", err);
    1 a' J( ?% Z- w) v4 K% j; m
  43.         ECHO("%s;\n", call);
    * Q" y( T* a% `5 z, L8 Y" q' V
  44.     }
    8 t8 B* |' ?+ l8 I( ~$ h
  45. 2 n* x0 T; K+ s- e7 B( O8 m
  46.     return(irc);
    3 _3 ^* m' M2 Q6 |8 S; o( y
  47. }, A1 M" `4 [8 s# _# }8 L+ }2 `. Z

  48. ( ~( X+ t6 P# R
  49. 8 N+ T# `; M4 w  y5 G
  50. static void do_it(void)
    & I8 u. x6 G: P! |& Q" E  B0 ?1 _" k7 p
  51. {
    1 \% A; l/ ~! r1 M$ G+ @2 m
  52.     Session *theSession = Session::GetSession();! \7 }6 u: Q$ N( v/ V; B, b
  53.     Part *workPart(theSession->Parts()->Work());7 x9 U& g% i' ?* R5 B
  54.     Part *displayPart(theSession->Parts()->Display());
    4 O: v) K/ e; I. A3 g2 o
  55.    
    + O% }+ l# p3 o# V4 Y
  56.     PDM::SessionSettings *sessionSettings1;6 g( o- V) M3 U: r& \0 W
  57.     sessionSettings1 = theSession->NewDatabaseSessionOptions();
    3 x5 r# h! |/ E: l7 t
  58.    
    , o, t& ]1 Y- Q0 \% N8 x' `. M/ |
  59.     NXString CurrentGroup;
    ) Z3 ^9 l, z6 b) T0 Y( b
  60.     CurrentGroup = sessionSettings1->Group();* B" v% s! _/ E
  61.     6 {6 Q6 i" P4 j; R. E; ~6 I
  62.     NXString CurrentRole;" T7 j. b6 ]. f/ H
  63.     CurrentRole = sessionSettings1->Role();
    ' U" b! ^% R% U  e9 I0 S2 H* U

  64. # b8 F, O+ T: ^; @" d: f- X8 u; t
  65.     theSession->ListingWindow()->Open();
    , g1 _( i8 {6 `2 g/ `3 N
  66.     ( {0 s0 X" O5 P7 i  `2 ]
  67.     theSession->ListingWindow()->WriteLine("Current Group: ");
    " n1 R$ X) m4 C# f$ o
  68.     theSession->ListingWindow()->WriteLine(CurrentGroup);
    1 o: G: ?% n: z
  69.         / m6 `* Y9 k) n2 h' i6 h
  70.     theSession->ListingWindow()->WriteLine("Current Role: ");   
    + J$ ?  y! V/ D/ h  e: V
  71.     theSession->ListingWindow()->WriteLine(CurrentRole);7 D4 q- U. v; p+ |

  72. 3 o+ ^8 T. P4 N' f9 u* R: ]# O
  73. }8 M' P) L3 H7 O

  74. 8 n  P* m5 S1 }! a4 Z8 Q: w6 T
  75. /*ARGSUSED*/+ l4 P/ V' k/ r
  76. void ufusr(char *param, int *retcode, int paramLen)1 N* q; ~6 R  Z4 R
  77. {. H5 v5 u% q/ s+ D' X$ m$ N$ z
  78.     if (UF_CALL(UF_initialize())) return;) F! b' L2 i4 t$ `! E+ D
  79.     do_it();/ |* ]  \9 t  _$ V; ~
  80.     UF_terminate();
    5 b$ R: r! p2 [" Q, s4 X. z8 O
  81. }, t+ l; W5 ]& T* W. I$ }
  82. ' w5 K/ N$ p$ b
  83. int ufusr_ask_unload(void)
    * R, s3 l6 r  U: \5 n9 e, q2 ]
  84. {* \7 k3 p0 l+ B8 o
  85.     return (UF_UNLOAD_IMMEDIATELY);
    6 t/ c9 Q& Q, t; q: k7 Z
  86. }
    ! Y4 {, u5 z1 u3 _9 N6 M7 p- n) n
复制代码
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了