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

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

  [复制链接]

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

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

admin 楼主

2013-11-6 19:00:16

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

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

x
在集成环境中,NXTeamcenter的集成中,获取当前用户的组group 和角色 role。
0 S% F" T) m& |% c& p9 j
9 b4 c3 Y0 g7 s' g& Y$ L0 |1 ?
  1. #include <stdio.h>
    2 t# a* u' s6 V; e
  2. #include <string.h>* L$ w/ x2 d# r2 D4 L% D
  3. #include <uf.h>
    5 t' I& v5 N! u9 c& H( u" B
  4. #include <uf_ui.h>
    ! O1 F1 k8 N# b6 a, E( F) n
  5. 7 ^8 v3 B7 S1 U3 i0 }& Y9 h; q
  6. #include <NXOpen/NXException.hxx># Y& N$ J: S& Y5 g8 o; ~
  7. #include <NXOpen/Session.hxx>  v6 W( d# g2 L( T, H/ i$ |. @
  8. #include <NXOpen/ListingWindow.hxx>' E& O( o: S! o6 V2 A
  9. #include <NXOpen/LogFile.hxx>1 c' k5 G0 u' e* x7 ]( ~
  10. #include <NXOpen/PDM_SessionSettings.hxx>
    0 }. E/ r+ x4 w! m6 ]# ?8 u4 s' V
  11. #include <NXOpen/Part.hxx>0 f( a) H7 ~) y7 o& N7 D0 E5 x
  12. #include <NXOpen/ParTCollection.hxx>; Q: c2 P6 G1 V" b8 f
  13. #include <NXOpen/Session.hxx>
    : r- U- [/ r% U) j6 e  R
  14. 3 u. W1 e) d! D) ?
  15. using namespace NXOpen; // <== Very Important!9 W2 ]" a, @! ?. ~0 I
  16. 3 Q7 g0 M! {+ B
  17. #include <stdarg.h>
    ' k% D0 A9 `, l' ^7 V! [1 e5 ]) ?

  18. ( ?, V% n/ R* ~; j3 K2 t! _
  19. static void ECHO(char *format, ...)# ~1 Y$ v5 o  k% p' R( W0 M) M$ [
  20. {4 {- {0 q( ~% \+ z" h- m/ c
  21.     char msg[UF_UI_MAX_STRING_LEN+1];
    " F: B' j0 r# `
  22.     va_list args;
    % {  S5 I! B2 {% P  p' U
  23.     va_start(args, format);' ]5 ]* n3 r  {& I. g
  24.     vsprintf(msg, format, args);
    ; X' d! w. ^; E
  25.     va_end(args);
    ( e- ]; T3 A4 ?* {
  26.     UF_UI_open_listing_window();
    & j; k! s, o* H
  27.     UF_UI_write_listing_window(msg);. M. A. `) x# V( X* d, A
  28.     UF_print_syslog(msg, FALSE);* G2 b5 q- I1 b; \- ?3 E: e
  29. }
    3 q% |" W, M; O& I; O* h8 [
  30. 9 \2 L3 n1 s! T7 A, Q
  31. #define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))4 N. H: z0 N4 Z3 x6 _' C
  32. ) [- F$ c1 B% @9 w- |' f) {; [
  33. static int report_error( char *file, int line, char *call, int irc)
    , m& |- i$ r  d  d9 ~6 U. G
  34. {, g- W5 s  u" R! x( x. X4 G
  35.     if (irc)  x" j0 Q, d2 C! w- W) h% L  @
  36.     {+ y3 h) \4 O7 O0 q3 W4 O
  37.         char err[133];
    / r# y) z0 G$ ^5 J' ?- W

  38. % [) x0 a. g7 j& J. ^4 x
  39.         UF_get_fail_message(irc, err);: Z4 g* v: O- r! u
  40.         ECHO("*** ERROR code %d at line %d in %s:\n",' T- K. O0 a* p4 ^- t! g" M- d
  41.             irc, line, file);
    . t9 C7 w1 S$ I4 h: D
  42.         ECHO("+++ %s\n", err);3 v% ^! T! f  T6 }5 k- o
  43.         ECHO("%s;\n", call);
    + B% k/ k1 ?5 x% ?) q
  44.     }/ H3 S+ j$ X; K# N
  45. : j" m, x* i& }4 s
  46.     return(irc);
    + u" ^# o  M: P4 U3 p$ b
  47. }
      e' H* M# _! M  f# J! [: G6 I
  48.   N0 o' j7 L1 o% y+ P) u& Q
  49. & e: I. e+ ?( u1 i% t; O4 _
  50. static void do_it(void)6 e1 @* y8 t6 }
  51. {
    % G6 J/ Q5 c- o1 h! v
  52.     Session *theSession = Session::GetSession();
    * s6 g( n, M, i4 l( z/ |
  53.     Part *workPart(theSession->Parts()->Work());) Y  f+ M9 k! i( g
  54.     Part *displayPart(theSession->Parts()->Display());
    3 g$ y. e" {$ Q3 r6 d: c
  55.    
    9 u! ^/ e/ ?, x, \# y2 Y
  56.     PDM::SessionSettings *sessionSettings1;
    ' g0 p% S3 O! S' B) Q7 F  y
  57.     sessionSettings1 = theSession->NewDatabaseSessionOptions();6 X2 p% v8 Q0 P, V7 ?  w
  58.     8 f( K7 A$ Q, w0 A
  59.     NXString CurrentGroup;
    1 u( |) \. K% r* p$ `9 w' k
  60.     CurrentGroup = sessionSettings1->Group();
    5 f1 m$ c* `1 P7 P4 C
  61.    
    " r* {0 Y3 L! ]3 a+ p: G7 M# K& v1 m
  62.     NXString CurrentRole;
    ( l3 |$ v8 G4 k: z% z: v5 H: o
  63.     CurrentRole = sessionSettings1->Role();! {: \. x* a# S/ ~1 X# j2 X
  64. 5 @/ u) w6 B( ]% M5 B5 O' B: k
  65.     theSession->ListingWindow()->Open();, v9 b$ }' L, J
  66.    
    + j- L, g* p; Q1 j% E" ?& N$ |
  67.     theSession->ListingWindow()->WriteLine("Current Group: ");
    ) a$ O& T/ c; T) H* y  e
  68.     theSession->ListingWindow()->WriteLine(CurrentGroup);2 c( t2 @; l* y0 @; r
  69.         , u% G& D) v( k$ Y) t, o
  70.     theSession->ListingWindow()->WriteLine("Current Role: ");    ' k+ u8 P& r+ s) z
  71.     theSession->ListingWindow()->WriteLine(CurrentRole);8 F7 V& q, W  ~, T3 k
  72. % ^# `: q! ?. j, y
  73. }, l' K" r% p; C' g

  74. " T  Z; A' m& P9 Q0 D
  75. /*ARGSUSED*/% j9 D, D+ q/ g& r- r1 j
  76. void ufusr(char *param, int *retcode, int paramLen)/ b: J0 j) l0 u3 Y& l
  77. {- y7 u/ b9 y! g! U+ K9 m/ W
  78.     if (UF_CALL(UF_initialize())) return;( |) h1 ~. j* a! {2 f
  79.     do_it();0 i9 @1 m: c' A$ A; D9 A5 X
  80.     UF_terminate();( p6 f) M: u& x, E+ L& h5 N" o, |# c
  81. }; d; i) s. x7 l1 P

  82. % ]2 N7 l$ X, t9 ~; S& T
  83. int ufusr_ask_unload(void)/ \. Z( S" A/ ^3 O* Y: i
  84. {
    7 f' i0 J6 o) l0 A, _
  85.     return (UF_UNLOAD_IMMEDIATELY);
    ; z, Q0 Q. o" ]# _3 w4 t
  86. }2 J9 k& U* x4 P* s/ v. l( l
复制代码
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了