|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
在集成环境中,NX和Teamcenter的集成中,获取当前用户的组group 和角色 role。
! r4 a# J* W% M7 r& [+ H$ v% A8 r8 H9 N
- #include <stdio.h>! U+ U* ]1 R' |& ^3 K2 r7 l
- #include <string.h>
; A+ d: s- U4 ^. e - #include <uf.h>* n5 j; w) Z, @: k' L6 N
- #include <uf_ui.h>3 F& {; j- P; j6 I/ D
" F/ ]/ Q) O- l) E; K- #include <NXOpen/NXException.hxx>
5 M. m9 b) i; ]& @/ l5 q7 K5 P, B8 z3 M - #include <NXOpen/Session.hxx>% J6 Z- ?' k5 T& Q: a" V
- #include <NXOpen/ListingWindow.hxx>
4 c8 S( g' {! L# M5 A, y - #include <NXOpen/LogFile.hxx>
; d6 I" B, H* I- y& ~4 i - #include <NXOpen/PDM_SessionSettings.hxx>- @7 t# p+ o' g
- #include <NXOpen/Part.hxx>
3 L, Z+ ?( H: G5 e; j k& x - #include <NXOpen/ParTCollection.hxx>5 A* ]/ [' o3 V
- #include <NXOpen/Session.hxx># L& `' x4 X9 Z) W! y
- " _9 T" x4 y, R5 r0 K0 x
- using namespace NXOpen; // <== Very Important!3 e0 e# v, g' G% I/ y* w
; x; ? D. P q# H- #include <stdarg.h>
/ s% A% ?8 P2 f
# M1 _1 d" T6 E! g& j& p7 O5 n; |, ?- static void ECHO(char *format, ...)
; z: Y: K6 ?4 ^. k: ?3 ~0 z - {
" u# O! |+ ~8 z) _7 Z" w+ G& e - char msg[UF_UI_MAX_STRING_LEN+1];
: i' ?$ R9 B. b/ X- H: { - va_list args;
! e d6 j i" Y" ]) f9 H2 o - va_start(args, format);
4 U* r6 y* [: J! o Q& p0 m - vsprintf(msg, format, args);
8 [, F* g) n3 p( `6 |$ R - va_end(args);
K; H k5 A' L4 w$ f: T; h8 ~" ?! N - UF_UI_open_listing_window();
) [; U; R& x) x& I9 R, u' N - UF_UI_write_listing_window(msg);
* \9 L$ r1 K2 d' r5 H3 d" S' B - UF_print_syslog(msg, FALSE);
% z/ {+ C; i, f! |2 q - }
6 K8 t* Z: L& B1 b - " |9 \6 }2 L" d& s7 J. ~
- #define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))2 l9 R. ~, Q7 C% o ]
# Z' T5 U( c0 r* U# w) T! H! f& I- static int report_error( char *file, int line, char *call, int irc)
2 i: [/ N5 z5 F - {* ^6 X/ G I: ?( j% o6 t; p) D# t
- if (irc); |( g0 t! ?: o4 y6 \: P
- {
+ P6 Y' o y M! D - char err[133];6 H. p9 T6 V5 i1 c: Z# J6 s4 k/ k+ J$ N
! [, N3 D. I( s6 w' g) X- UF_get_fail_message(irc, err);
+ A5 P. M* o: \' G C8 O - ECHO("*** ERROR code %d at line %d in %s:\n",
- D# O1 D. |* u; {1 n - irc, line, file);- q0 C B5 x- e
- ECHO("+++ %s\n", err);1 _9 |5 s& z1 Y- J
- ECHO("%s;\n", call);2 R9 }/ A+ |6 B2 j, G# U
- }
9 L5 I, U+ J3 m/ o: A( o2 B
. s, x7 Z3 ]4 h; ]. }5 @- return(irc);% A. q7 x o; `- l, a: O
- } Q( z/ H- L5 m7 q# _& q
- ' {- _( C5 O' \1 u: v% N
# q5 Z4 P" Z# H- static void do_it(void)
) l+ L3 P1 V7 a: ` - {
' D, {" M, O: r) t* _ - Session *theSession = Session::GetSession();
9 y, g F* B% B" J" f - Part *workPart(theSession->Parts()->Work());
, u! y1 I$ m- q - Part *displayPart(theSession->Parts()->Display());, E9 c3 p( |1 s6 Z
-
% L% F& W/ z+ F! E - PDM::SessionSettings *sessionSettings1;
9 y- k8 c+ f/ f7 q' O - sessionSettings1 = theSession->NewDatabaseSessionOptions();
# G$ F$ J1 E# J; o - 9 P3 ^0 v1 [/ l
- NXString CurrentGroup;2 Q5 V `8 D7 I6 r: @
- CurrentGroup = sessionSettings1->Group();
4 y7 X: v) b, D1 Z - # K t j+ j( p6 w ^
- NXString CurrentRole;
6 k; A. B) i. ^! U) @- | - CurrentRole = sessionSettings1->Role();
: L5 U4 t3 F j3 q3 ]7 N$ z - & ]% _5 R; K2 e p) a8 U4 s% F3 C; d
- theSession->ListingWindow()->Open();
7 f. B& J% _ H: G5 E9 h' ` -
9 k/ C {4 {+ r - theSession->ListingWindow()->WriteLine("Current Group: ");
, ?8 W, [- O7 V! U - theSession->ListingWindow()->WriteLine(CurrentGroup); s' v: k) O, i# d' R: Y
-
' X& ^9 z3 t* o. I - theSession->ListingWindow()->WriteLine("Current Role: "); ; T0 O% [' P+ t* m' l$ A' R
- theSession->ListingWindow()->WriteLine(CurrentRole);) |/ m3 b+ l& L q9 a6 T5 s1 r: p5 X
- 8 D& g6 N+ C9 X
- }
^* K8 T1 X5 B) _+ V8 h
* R- {" H' ^8 i$ q, ?2 U- }8 j4 r- /*ARGSUSED*/
# A- V; i/ l* n6 `3 D1 K4 y, B - void ufusr(char *param, int *retcode, int paramLen), c+ U8 G" @( |" F" O
- {3 d* M; D5 Y4 o6 `+ ?# ]
- if (UF_CALL(UF_initialize())) return;
& L) I6 D9 ^; i* A9 t K - do_it();- b# \3 e% `$ f; a; s8 j7 W
- UF_terminate(); k' f* \" k9 M: ^
- }
- ?% D" {; v) j( m7 b0 R( X. [
5 _* M! c( X. ]/ b- int ufusr_ask_unload(void), Y2 T2 K. i) R! n
- {% `* I E7 \) f1 K) s0 i
- return (UF_UNLOAD_IMMEDIATELY);
. s' l! x! A) t7 o9 ^1 u R - }
0 w v( g( S. F
复制代码 |
|