查看: 5240|回复: 0

teamcenter ITK二次开发源码分享: 创建一个工作流

[复制链接]

6

主题

4

回帖

60

积分

管理员

积分
60
发表于 2014-1-15 19:30:29 | 显示全部楼层 |阅读模式

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

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

×
; O9 m7 E, h0 l, A- Z( v; r8 R: o7 T
Teamcenter ITK二次开发源码分享: 创建一个工作流
& t1 m8 M7 p# b' h
$ W0 m* A  H8 m7 T" [6 ^
  1. /*HEAD CREATE_A_PROCESS CCC ITK */& a/ R- y+ j0 F. i: i, ^
  2. #include <stdlib.h>4 @: t* r) n9 k$ `0 o
  3. #include <TCcore/aom.h>+ ~- {- M6 }* U6 N, F
  4. #include <tc/emh.h>. }5 [5 R$ f/ l. I; M3 d6 M2 X' O
  5. #include <epm/epm.h>
    $ k" {& s: g) u* Y/ ~6 l+ K
  6. #include <tc/tc.h>; Q2 D5 v4 U# n! P( C, ~
  7. #include <sa/tcfile.h>
    8 u, O5 j+ j! F3 c4 h0 S; ~
  8. #include <itk/mem.h>
    ) n* C. d# @" K, m+ h
  9. ( M/ J4 G' o; D& ], S
  10. #define EXIT_FAILURE 1
    % T( b4 ~* `$ Z* x9 u
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))1 ?. P9 {5 t6 e% L' a) I; ~7 |
  12. static void report_error( char *file, int line, char *function, int return_code)
    ' g# ?8 o1 P) I! T! j( i! S
  13. {3 I( u  h6 d: O9 G4 c% O
  14.     if (return_code != ITK_ok)
    2 j$ |6 m) e3 W4 ?
  15.     {
    4 |; H6 x9 _6 u5 y# t+ K6 t
  16.         char *error_message_string;
    ' {0 K6 M3 m! [) [% \1 W; Q' T
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);
    + n9 c. p( R# s) A  _
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);( _5 V. i9 y5 P% J- m
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
    7 y. @2 `8 P  z6 d/ o# W- ]
  20.         if(error_message_string) MEM_free(error_message_string);. N" e' o2 o" z0 p: W% U" b
  21.         printf("\nExiting program!\n");
    # s& N/ }; `6 B
  22.         exit (EXIT_FAILURE);   
    ; e& @" r* P# K8 ]; r7 z/ R& l
  23.     }& p, s9 L# O! b# Y3 C* C
  24. }) H4 R* B; h, {5 S' L8 c
  25. # _+ F% y. N* S# {, `& L* z
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))
    7 R3 D! d7 S1 ]/ [
  27. static void check_value( char *function, int value )" n% Z) m% V+ a- b& m  F, L- R' L
  28. {
    / }: a! v9 N& o6 e! F
  29.     if (value == 0)' t/ r0 Z3 |! @7 D1 ]- x
  30.     {
    0 D% q2 g$ T5 Z1 A
  31.         printf ("\t%s is NULL\n", function);) M; [  r/ |' q/ e& O3 {& @
  32.         printf("\nExiting program!\n");
    8 f/ k: U  x- w) f, v2 x. L
  33.         exit (EXIT_FAILURE);   
    1 T! w6 K) ]6 B$ p) D
  34.     }
    % ^) V9 A( C5 r# R
  35. }
    1 P3 T: c$ t' k  m$ c; h

  36. ) a+ A7 W( U! I
  37. 8 {2 ]' Q4 L8 j6 b1 X
  38. static void do_it(void)  Q; Q; @6 i* `9 ^- q% X. g
  39. {8 p) y; a$ L$ O. `6 R  s$ \
  40.     int
    ! Y: y+ a% \% b" [2 O
  41.         attach_types[1] = {1};
    4 W! O$ t1 ~" g- {, m1 w3 k
  42.     tag_t
    ; `& ~0 {& @" Q2 G, I! I- a; e3 c
  43.         rev = NULLTAG, & K% u# S* m/ I  ^/ M
  44.         process_template = NULLTAG,
    6 d; W% u/ w9 r  r  f4 \
  45.         process = NULLTAG;
    + c7 _1 V& ~4 W

  46. % h$ ~" V( b0 Z8 W
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
    % S* z0 g$ W9 v& q) k- s% q- W
  48.     EXIT_IF_NULL( rev );
    " F6 ~( }' |: z

  49. " Z% y! y: y* A& f
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
    2 n1 z1 B2 L, U% [( B& ~  C& N
  51.     EXIT_IF_NULL( process_template );
    ( `- W5 W5 M9 o/ P2 }
  52. ! x$ \' a4 k6 Z5 }

  53. 8 w0 [* G+ `8 s+ D% ^
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
    3 \6 F3 p" ]2 H, W8 d! l# X: u
  55.         attach_types, &process) );8 l6 o: h) Z4 f( W* p" t

  56. + f& M  t$ _) U
  57.     EXIT_IF_NULL( process );' K! H. }8 Y: X0 X# p) O' y
  58. }
    ( @/ H7 \0 }; {- V8 ?
  59. 2 z2 w; W+ r) Z5 ^, R# g
  60. int ITK_user_main(int argc, char* argv[])7 b5 Q& B$ F! n2 j0 t# z
  61. {
    # q1 d& y: y. l6 O) b
  62.     int2 O& Z% B+ H  \  f- S
  63.         status = 0;
    + b8 D' u, P1 E1 n: L
  64.    
    $ Z- h9 j7 Z+ r- P
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );7 ^4 o* i* s( `" D3 O. q4 W
  66.     status = ITK_auto_login();5 F/ E' B8 k3 e1 H4 Y$ m  R" w; q
  67.    * u; I: I" s3 {( @
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");1 y0 N, U# \& @8 g: i: d2 B
  69.     else
      f' i) o+ ]8 l# H  s5 O
  70.     {6 `( r) U  @/ r! m' B/ o
  71.         printf("\nLogin successful!\n\n");
    % v; j) Q  b3 m7 u# A7 g$ A
  72.         ITK_set_journalling(TRUE);
    " `3 b6 M4 _+ x" D$ t& G
  73.         do_it();
    2 ?4 C) Q8 C3 ?% ~) z0 w
  74.     }* S+ S; e4 m9 F
  75.     ITK_exit_module(TRUE);! D8 Y/ y1 ~& w! v2 E# }, M
  76.     return status;# d5 C7 _. ?1 k1 N, Y
  77. }
复制代码
& ?# X6 F, T& E; d8 s, j$ ^1 r
. S6 J8 k* h; Y- u

$ ^# ~" p9 b) x
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.doteam.tech
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

在本版发帖
关注公众号
QQ客服返回顶部