|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
7 d7 A& x( Y7 m T0 R$ c$ a6 S6 j. STeamcenter ITK二次开发源码分享: 创建一个工作流
) E5 ~' I9 c' \2 _& @4 S2 E( y
H8 A# A# V- N0 V: e# d+ Q- /*HEAD CREATE_A_PROCESS CCC ITK */
5 Q; A" ]# P. e( t" I) d - #include <stdlib.h>% U J! v/ M5 _- p0 K. X
- #include <TCcore/aom.h>( n8 L) i/ }) E% l
- #include <tc/emh.h># d, H) n& \ h8 ^1 p
- #include <epm/epm.h>( A* S1 N5 S( M2 _6 |+ o, n# |9 U
- #include <tc/tc.h>1 F& P+ d1 O$ P3 D& k; t6 B/ x+ ?/ q
- #include <sa/tcfile.h>; q8 K* Q x, n9 F2 {
- #include <itk/mem.h>+ v& t/ f H4 h9 M, ~
- 4 z% t3 l1 Z1 A% V6 l3 [5 V
- #define EXIT_FAILURE 1 b! B9 a \1 G9 [2 q3 W
- #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
1 T. [7 u0 g" }/ e g, g2 H, S - static void report_error( char *file, int line, char *function, int return_code): n* p: f0 K3 S( h1 z( T) x, F( U
- {
) P7 i, U9 s2 f6 f8 ^ - if (return_code != ITK_ok)/ |# ^4 @. E2 O% W R5 e
- {
6 R# w5 ?2 y$ `- c9 Z9 ^5 l - char *error_message_string;2 q+ R5 F, a2 a* u7 M% K( v
- EMH_get_error_string (NULLTAG, return_code, &error_message_string);
. g' Z, o# G7 A+ K - printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
0 N/ s9 ?3 P9 f8 x+ t. o- u - printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);2 _* V7 d$ t! B8 d1 K( Z
- if(error_message_string) MEM_free(error_message_string);5 F% ^6 c/ U. B ?' h
- printf("\nExiting program!\n");
( p- m, @* W) q7 D# ~, }+ Z - exit (EXIT_FAILURE);
+ h3 C0 l0 ^8 {, i& b - }
% O" ?* Q* |. e5 R, z2 \+ l2 G" P - }9 Y7 W- z# D- S4 j" ?( f! Y- o
& P: d) D0 \" J8 }- #define EXIT_IF_NULL(X) (check_value(#X, (X)))
, U4 W N4 k/ q q - static void check_value( char *function, int value )
" W% W- M. \) ]8 A& p - {" x4 z+ V. O) k1 p3 U7 m' M
- if (value == 0)' A0 S0 Z+ f/ q
- {5 v3 G" e$ ]. \ l
- printf ("\t%s is NULL\n", function);: ]" L7 [- p9 O, g5 ~, a c( ]
- printf("\nExiting program!\n");* c% z) O) C! Y- c" r T
- exit (EXIT_FAILURE);
4 n" Y/ y+ f. J, p# t0 d: x - }
8 {: ]5 {' j! X - }
# N5 X) w6 F/ H& { `) N. F - % v/ a5 Q' Y8 Q2 d
- 4 M5 C8 v) O# v
- static void do_it(void)1 e3 y- }3 ?- F; p7 E& ^: a
- {
, d' _1 o/ A: r0 L$ i - int ( F, }9 Z6 c7 H2 n2 H- A
- attach_types[1] = {1};( o+ Y g# F) d' S
- tag_t 3 ?6 m# K, }+ Z# P" g6 `7 H
- rev = NULLTAG, 7 ~9 ^8 Q2 o1 D) X- n
- process_template = NULLTAG,
9 y5 ~1 ~# q' t# ^) @ U" q - process = NULLTAG;- K! O) Z: L7 r' [' o6 }, u
- ! @) D8 V9 {8 d9 I7 Y9 |- T
- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
2 q. L- W- ~5 f - EXIT_IF_NULL( rev );5 S8 F/ a5 Z' {- n0 P
- 2 R( z$ f# j6 H ]
- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
( @# M* L/ o$ n' I& I- X& J - EXIT_IF_NULL( process_template );
* L8 m8 I6 E( g( D2 |% A. N5 O' |
+ ~: s+ y1 R" v+ q
! n4 ?3 E$ ]# \) L5 y- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
& s2 b8 B& k" D5 X. S - attach_types, &process) );, m. X8 h K" y+ `) j# R7 `
2 A- p$ x- }, |( A% {7 O- EXIT_IF_NULL( process );
3 z6 B6 _# J* a3 Y) g7 V/ P - }/ l0 V& V2 I6 @2 f4 K/ q* @3 u
! i% n$ g4 `/ {0 g+ \- int ITK_user_main(int argc, char* argv[])
3 t. H5 {! x: v9 S ]6 y - {
. _1 ]3 J- Z6 t# V1 J; z4 d& w - int) c( } v7 G d6 }2 V
- status = 0;
+ z- E, i5 ^% ] -
! ~" d# m* V- K& k! u% U - ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );' [" b4 s# y% X; a# l2 U
- status = ITK_auto_login();
. t! \" K1 W" _9 m -
+ z8 y: R! z& O0 v& l( s6 z6 m - if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");
4 o, {) Q0 J) _5 W- g h - else
( h, c$ r( [( y2 _- b - {5 E6 R! l8 O5 j1 K& x- R/ y# ~
- printf("\nLogin successful!\n\n");$ p, @4 {# F* e U, n$ O& y7 I9 `
- ITK_set_journalling(TRUE);
+ E* [1 u* f) }# |$ q2 e8 Z) J - do_it();
8 Q P$ Y5 y7 t4 Z& |! s n - }
1 m4 a. B" m3 M - ITK_exit_module(TRUE);6 b8 P0 e0 G& h7 h3 s
- return status;
8 ~* B" m$ h( E& [' U V# n - }
复制代码
! Q3 |$ y$ _, @5 v9 P# w$ m8 ~# R7 B. R; ? [0 a" e
4 K* _2 j) O6 T1 i6 o0 x, P
|
|