PLM之家PLMHome-工业软件与AI结合践行者

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

[复制链接]

2014-1-15 19:30:29 5100 0

admin 发表于 2014-1-15 19:30:29 |阅读模式

admin 楼主

2014-1-15 19:30:29

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

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

x

2 _5 [+ B/ L4 @5 N# z, eTeamcenter ITK二次开发源码分享: 创建一个工作流
9 U% ~) w* y; u+ |; K, N6 ~* |! b7 w1 b
  1. /*HEAD CREATE_A_PROCESS CCC ITK */
    ; R! Y7 \& p% _" c6 c9 {, N/ y
  2. #include <stdlib.h>
    : }! {, }8 a: D1 P  y% D9 j/ |
  3. #include <TCcore/aom.h>
      F. Y8 m% A" Y7 Z
  4. #include <tc/emh.h>6 S) X$ W/ T5 B* a1 ?( h2 T8 k
  5. #include <epm/epm.h>
    ; z- M2 H- S5 E. b3 h- b
  6. #include <tc/tc.h>
    * R) M* C/ N) d9 m; u5 ]/ j3 L
  7. #include <sa/tcfile.h>
    / V4 E3 ~; c. P) {* U* L
  8. #include <itk/mem.h>
    7 k+ V. v) }! H9 w# x
  9. # U% g7 z9 l. N" U* R8 O
  10. #define EXIT_FAILURE 1 # a) a; p9 q- b( m# e5 T
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
      ~0 @/ o8 j- I# S
  12. static void report_error( char *file, int line, char *function, int return_code)5 ~( e/ b' u' q
  13. {
    " m$ {* W- y. ~4 t% N
  14.     if (return_code != ITK_ok)
    # o! X- E: [$ D0 B7 I7 g. S
  15.     {( g4 n0 ]  W  c: \2 }, h9 ~! N
  16.         char *error_message_string;
    + S- G) R4 F" O  P
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);
    # }/ c3 G1 c* O$ y( m! I6 S
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);  _3 V( a( M# l3 T! A1 c) j6 N
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
    1 Y0 N7 c3 w6 ~, s* m
  20.         if(error_message_string) MEM_free(error_message_string);0 s" X. J& ]' U4 M- g* T& D
  21.         printf("\nExiting program!\n");5 b, }# {7 `1 f
  22.         exit (EXIT_FAILURE);    2 k8 x. N$ ?' n/ L
  23.     }8 K7 V! m  s' h5 y
  24. }
    9 B' G- m# Q* K5 Y" q0 _

  25. 9 t  s% Y5 e( x& f( s6 d
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))
    , Q4 V$ V- L# C+ Q( Y
  27. static void check_value( char *function, int value )
    , y+ O/ g* Q# x# [( `: X! m
  28. {
    ' n# V5 C" P4 s1 U9 i. N! g( ~
  29.     if (value == 0)7 e5 t- M  `1 a8 P- ]/ @+ q& E/ [  u
  30.     {, v" L9 Y1 Q6 t5 `: I5 D
  31.         printf ("\t%s is NULL\n", function);
    2 W! V/ m8 c9 e! C% H6 Y
  32.         printf("\nExiting program!\n");
    - F7 _% _: ^4 s2 {: V6 e
  33.         exit (EXIT_FAILURE);   
    3 r5 i' D* j5 Z+ O: q! X
  34.     }
    " w8 T7 F1 L0 n2 A+ i
  35. }5 H9 S7 U! Y; m3 J8 Q% c  ?0 A

  36. $ C* s* |# a" k: S* U- L/ S

  37. % W5 Y/ X3 R* h% Y
  38. static void do_it(void)
    % _! q$ B) a5 h5 I  O
  39. {, O4 D- w' z! Y" T5 C
  40.     int # i0 p  b  v' ~" u
  41.         attach_types[1] = {1};
    6 _7 V9 k2 D9 N) ]4 {. _8 O6 c
  42.     tag_t
    ! H$ ~& k) d1 T$ e  r
  43.         rev = NULLTAG,
    7 H6 [' V  H' o! G# U
  44.         process_template = NULLTAG,
    : F" `& W4 ~/ P
  45.         process = NULLTAG;
    0 g+ p4 r4 O( ~+ U

  46. 2 _; V6 x- [. o! W% Y& m5 _
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
    1 r. F# J( \1 W: C9 @
  48.     EXIT_IF_NULL( rev );
    * f/ U5 K5 q/ d
  49. 7 c5 y" u4 u( U, |
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); 7 _, f! Q/ u7 j2 @% x
  51.     EXIT_IF_NULL( process_template );; n% U& |7 v7 A$ C/ ~# k& K. D
  52. : w: O6 O% A( W- z
  53. % ^( e! ?/ p+ k; H
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, 9 t0 h4 y- N0 ~$ G' y9 F) b0 C
  55.         attach_types, &process) );- T+ n! j% M# x( n" @9 r
  56. " _$ O: \0 A7 b: i( v7 h
  57.     EXIT_IF_NULL( process );( Y) h$ G9 |3 h# b' f' _
  58. }
    9 S  F6 T/ a5 a1 q
  59. % J1 p/ L' u7 ^9 |
  60. int ITK_user_main(int argc, char* argv[])
    , _* X, \: \2 M- ~: P
  61. {# w1 ?8 K, q  N& L* t$ I, v
  62.     int
    , G. B7 f/ N+ ^2 n
  63.         status = 0; # ~; _# {5 W5 ]0 K) s
  64.    * l" G! i+ S# [" U$ k& }+ a
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
    1 N6 k# `6 s2 N( V5 v
  66.     status = ITK_auto_login();+ M' H: F: I& y$ |# E: k; \
  67.    . S& N' P" ]5 Q0 m( l
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");& N" Q: [1 _% R3 o  g
  69.     else
    # z; G7 Z0 `. v$ U- m0 J
  70.     {
    2 J+ [2 t) `: V! F& T8 X+ u4 ~1 f+ u
  71.         printf("\nLogin successful!\n\n");( w4 }. r8 m" ^* H# x) x
  72.         ITK_set_journalling(TRUE);) _, X, I% Z6 g# i& O
  73.         do_it();
    * r& U: W- B! H: c2 ?0 C
  74.     }$ P7 n5 _0 ?: o, _
  75.     ITK_exit_module(TRUE);( S. I. b6 y  ^
  76.     return status;5 |6 p# u/ r# x# b% o1 {. t5 ~! a7 b+ t
  77. }
复制代码

: |: i+ @1 I  D1 i4 `( n% _
4 a8 `- T$ w9 t" T) P% ~/ ]  z+ U6 F6 x4 t# B4 N; [- F; w6 W
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 doTeam.tech
回复

使用道具 举报

发表回复

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

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

    本网站(plmhome.com)为PLM之家工业软件学习官网站

    展示的视频材料全部免费,需要高清和特殊技术支持请联系 QQ: 939801026

    PLM之家NX CAM二次开发专题模块培训报名开始啦

    我知道了