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

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

  [复制链接]

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

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

admin 楼主

2013-11-6 19:00:16

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

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

x
在集成环境中,NXTeamcenter的集成中,获取当前用户的组group 和角色 role。
& j" ~5 |; ~8 m  {; Y* h' v/ y  x3 y6 L( e1 p7 h
  1. #include <stdio.h>; S" q8 u% N) G! \
  2. #include <string.h>
    8 _% G8 F. g1 t8 f
  3. #include <uf.h>
    6 V8 c: G" i; d' z; t( v
  4. #include <uf_ui.h>
    8 ]2 W* K7 Y! x5 B1 j/ v

  5. 2 N. t9 U, J2 L
  6. #include <NXOpen/NXException.hxx>1 N+ h7 E- m5 G' G- X3 s1 k$ d
  7. #include <NXOpen/Session.hxx>
    * T# V$ ?# C/ m6 N# h" R
  8. #include <NXOpen/ListingWindow.hxx>( B4 _/ A/ x* H! W
  9. #include <NXOpen/LogFile.hxx>- ?. u- d0 v2 ~' ^* o  e
  10. #include <NXOpen/PDM_SessionSettings.hxx>+ s! K8 u7 @/ P" i( y" t
  11. #include <NXOpen/Part.hxx>0 s' g, d8 Y' S% F8 m
  12. #include <NXOpen/ParTCollection.hxx>
    1 A" o. }5 N& m: _/ F4 S# N
  13. #include <NXOpen/Session.hxx>1 [- u+ X% P2 H. y4 d
  14. 9 K- w: ], b% h$ j
  15. using namespace NXOpen; // <== Very Important!
    & p9 G% N0 `5 ^8 Z  s, ~6 H! C$ _$ a6 M

  16. + t8 y" H( j8 |* y
  17. #include <stdarg.h>1 W1 p3 m$ G. Z8 D" R& h

  18. 8 _4 v7 ]/ O/ g% d
  19. static void ECHO(char *format, ...)
    * S. U; t9 k! ^
  20. {
    ; i! [, P/ N, {9 {
  21.     char msg[UF_UI_MAX_STRING_LEN+1];
    $ F4 x9 I1 W0 w. y
  22.     va_list args;% b& v8 |0 Y( _8 `/ A4 V" \8 O3 p
  23.     va_start(args, format);
    ( `  ?: x7 |$ }& S- o
  24.     vsprintf(msg, format, args);
    % r8 _9 R- o2 E5 i$ Y
  25.     va_end(args);4 Z' D3 _( L8 f0 Z) Q5 _
  26.     UF_UI_open_listing_window();7 H0 X6 V* l; H- T/ |: E
  27.     UF_UI_write_listing_window(msg);: e: M( a; P. q& U( ^$ _* O
  28.     UF_print_syslog(msg, FALSE);
    * E& J0 P! {( g6 r: r( ^
  29. }
    4 M9 `4 u' y/ s( B  p! {+ q
  30. & N, I7 @( O$ e; F7 z# n; ?; D
  31. #define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))8 Y: p5 @: r! q6 K: l$ j; x5 [
  32. ( g) q9 ~6 K1 H. W
  33. static int report_error( char *file, int line, char *call, int irc)
    2 f- r! c' S+ L  G, Y6 ~
  34. {
    3 E' U2 H& _" `7 `$ m( O$ l7 }
  35.     if (irc)
    ) Z1 M5 x" J, ~. A
  36.     {
    3 O% l- g: W/ b5 D; g6 ]
  37.         char err[133];. X2 ], B4 c# L1 v8 {  [! l/ B' b6 ^
  38. ; V) r! |1 e$ u  \5 A
  39.         UF_get_fail_message(irc, err);) b, Y) b9 N! C& t' E4 U
  40.         ECHO("*** ERROR code %d at line %d in %s:\n",
    1 h( E7 V  k1 \; Y) `/ a- _
  41.             irc, line, file);
    * z2 ]2 `1 s' V! M
  42.         ECHO("+++ %s\n", err);& A# n( V2 [- U- p2 m5 R
  43.         ECHO("%s;\n", call);
    # [. u7 u) K/ e
  44.     }
    $ c. G5 i- p+ P: |- f( K4 ]
  45. $ S4 g- a" X: B8 p
  46.     return(irc);
    - J1 [% E" q9 s7 K, m$ \
  47. }
    4 m" j/ F/ E0 y# m% j: x' Q3 d
  48. # q$ w' g) Y: D7 y: o  u

  49. 4 D/ r6 S; d3 \. D& X2 d
  50. static void do_it(void)
    , a( Z4 V  X$ ~/ L+ {
  51. {2 Y0 r/ h' u  ~+ e! O; J
  52.     Session *theSession = Session::GetSession();3 b! Z) L# k7 ?$ p; B9 C1 k
  53.     Part *workPart(theSession->Parts()->Work());" O5 b- f8 m( s, D
  54.     Part *displayPart(theSession->Parts()->Display());
    % ?0 D! ?; p! m! n7 O/ }$ ]
  55.     3 k5 l7 r7 j! B' I. [) V0 x) f
  56.     PDM::SessionSettings *sessionSettings1;  J- ~8 U9 _$ `7 ~) r! z
  57.     sessionSettings1 = theSession->NewDatabaseSessionOptions();
    - ~2 K6 I) T' h
  58.     : E6 b" ~/ P& i* i( x
  59.     NXString CurrentGroup;
    / U; s. A, P2 z2 w! \0 s
  60.     CurrentGroup = sessionSettings1->Group();( X4 J1 D' u' j3 _- q
  61.    
    % K" e/ R( x& B2 ?7 {# H
  62.     NXString CurrentRole;% L' e2 ^8 b" {2 s- M* o+ @! q8 I
  63.     CurrentRole = sessionSettings1->Role();
    * I( Q1 T* H$ b  l( N
  64. 7 ]: H) z& A* A  ~
  65.     theSession->ListingWindow()->Open();
    0 j2 `" s+ L/ Y
  66.     & R% P1 Y7 r) Q) @
  67.     theSession->ListingWindow()->WriteLine("Current Group: ");
    5 S: k6 z" q+ x! X  {- r9 ]
  68.     theSession->ListingWindow()->WriteLine(CurrentGroup);& d& I) d, `5 O% m9 Y3 R+ G
  69.         
    , b  M; \; z' A& y. f+ ]
  70.     theSession->ListingWindow()->WriteLine("Current Role: ");   
    / N; C' P' e3 e0 t
  71.     theSession->ListingWindow()->WriteLine(CurrentRole);
    6 t5 |. P% z" o; ?5 J( X
  72. 3 o9 a( V$ {2 m
  73. }
    * u- j$ ~9 O4 ?6 m/ Z
  74. 1 j% ]& Q, ?; P9 i- R
  75. /*ARGSUSED*/  N" g! Z) H0 E' k# g- `
  76. void ufusr(char *param, int *retcode, int paramLen)' G7 H$ ?! d+ M  k  m8 |
  77. {
    ( C2 f  F9 y) X' G8 H0 d! D
  78.     if (UF_CALL(UF_initialize())) return;8 u% E4 `! n6 `2 K4 n5 X' v
  79.     do_it();
    0 j. t! W$ s# o4 m, j. U- ]
  80.     UF_terminate();* L& E& I5 m$ u+ |; B5 V
  81. }
    & I+ X0 n, o. s
  82. ( ?) y/ U6 y' f% }
  83. int ufusr_ask_unload(void)4 F. y! ?4 ?2 f9 \5 ^( z
  84. {* |( s  m5 t6 ~- T
  85.     return (UF_UNLOAD_IMMEDIATELY);& n9 K/ c' H# c" h7 U
  86. }
    ; v9 v3 A! j. C4 @5 ]
复制代码
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了